NOTE: You can also read this in the
Mozilla@Seneca wiki Introduction
During the study week of every Seneca student, I attended to the FSOSS 2007 celebrated at Seneca which allowed members from the Open Source community to gather and listen to different speeches and workshops. I attended few speeches which I want to share my findings
Jay and David gave one of the most easy to listen to and interactive of speeches(video) that I have attended and their main focus was to let us know about what steps to follow for a better user experience. Both of them are concerned about the usability of software and their career paths have always involved bringing people and technology together, which also implies to bring developers and people together.
Their speech was divided into 12 steps that started bringing awareness of our unpreparedness to satisfy completely our user experiences by ourselves. This is due that most of us in the lecture hall were only developers (whit few exceptions) and it is totally understandable that we lack designers’ skills. Developing software does not just mean to write code, have few bugs and a nice user interface; it requires much more than just that, it requires a well organize structure on how to present the content and how to make it work smoothly for the final user.
A beautiful user interface for the developer’s eyes does not mean that it is the most intuitive for a user, in fact, it doesn’t even mean that it is the best way to get the task done. You have to understand your final users, you have to research the way they work with your software and allow them to give you feedback.
Another thing to have in mind when developing is that for different projects, we have different which they have different priorities. Having different priorities means to weight things with a different balance and what for one user is usable for another might not be. For each different project, there will be different constraints, different expectations, different likes, which the user you catch in your design the better.
How important a good design can be? Apple is a company greatly focused on design and that has allowed them to become a trend, for the robustness of their products, marketing, an important investment in a beautiful style and look of their products and an incredible easiness to use.
To complement a good design you have to find the shortcomings of your software. How can we do this? You can tackle existing bugs, get review by your user, reviews by experts, etc... All of these options are good, but getting the feedback from the users is the most important; why? Because the cheapest bugs to fix with more value for your users are the ones that can benefit you the most since you get happy users.
We were also taught how to transmit complex ideas to others by simple drawings (stick figures). Jay showed us that all of us can demonstrate concepts to other people with this technique because they can capture complex ideas with simple ideas.
Get involved the users in your software development because as Jay was letting us know, they want to give you feedback on how miserable you made their lives with your software... jokes aside, it is really important to let them let you know what they like and dislike from your software. The feedback they might give you might not always be so useful but if you let this happen you might find passionate users of your software who can give you good feedback and the more you let them get involved in the process the more passionate they became. Feeling engaged with the process makes them feel more responsible of the outcomes of your project.
A really good example on how feedback from users has improved the usability of a program is Microsoft Office 2007. Since Office 2003, four years had passed by and sixty thousand unique cases reported by users has shown amazing results and a revolutionary user interface. The problem of the user interface in previous editions was that the more functionality Microsoft wanted to add to Office the more the toolbars would grow, therefore, elements has to be hidden to fix more in the toolbar area. After studying users usage of the program for long time, they discovered to bring a context sensitive user interface using what they call “ribbon”, which shows options accordingly to the work being done. The last note to add to this is that 5 out of 10 top requested features for Office by the users, they already existed in previous versions of it. This showed that using the toolbar concept was limiting users from using features that they looked for but could not find.
A good thing to the whole community of developers and designers would be to make sure that we all understand the common patterns when designing interfaces, because there are tons of design patterns which compose part of designing interfaces. A recommended book by them is “Designing Interfaces: Patterns for Effective Interaction Design” by Jenifer Tidwell, which collects these commons interfaces to all of us and gives examples or suggested solutions, and mentioned the Yahoo! User interface library.
There are few more concepts that were spoken like do not get tired of your users, do not burn the bridges that connect them with you because they will end up going away and use competitor’s products and do not stop trying to improve the usability of your product (this process is called "iterative practitioner").
One of the best ways to get good feedback is to use low fidelity designs of your product because users will be more likely to critic it and not a high fidelity one because with a high fidelity one they feel like inappropriate to put somebody’s work down since it might have required a lot of time to make it. Another consideration about getting direct feedback is to make sure that testers do not feel that they are being tested on how good they can give feedback from the product evaluated.
The end of this presentation ends with raising the importance of giving back to the community the design knowledge that we might gain to help others and to let developers know about it. They mentioned Open Usability, contribute back to the Yahoo user interface library, use Tango icons and promote it.
From this lecture, we can extract that their main reason was to make us aware of the big importance that having a good user experience for our users is and how we can gain a great feedback from our users and they also promoted to give back knowledge to the community which is a big important point of the open source principles.
Shane came from British Columbia to let us know(video) about Active State and Open Komodo. Active State has existed since back in the late nineties and they were know as “the Perl Company” and it evolved to release their Komodo IDE that helps to develop with dynamic languages like Perl, Php, Python, Tcl and many others
Komodo is build on top the main Mozilla code and also takes advantage of the editing abilities that Scintilla brings to the editor. Komodo as we can see is based on open technologies and works with open technologies as well.
Recently a big part (around 90% or more) of Komodo Edit’s source code has been announced to be released as Open Komodo, which will be the supporting platform for Komodo Snap Dragon, before this, Komodo Edit could be used free as “free in beer” but now it is also going to be free as in “free of speech”. From it, a lot of things can be build on top of it, for instance, custom made IDEs. There is a part of the Mozilla Community that would like to have a Mozilla IDE to be able to develop XUL Runner applications, debug their applications and do everything that could help the Mozilla community of developers.
Komodo Snapdragon is an idea, a dream, which is based on top of Open Komodo and will integrate with Firefox, Mozilla and extensions like Firebug. Open Komodo is about the community, the code base, the platform and their desire is to see people gathering around it to build an open web based on open technologies.
Why choose to promote Open Web and Open Standards?
- CHOICE – It brings the possibility to choose different technologies following standards that allows every technology work in different platforms and allow different technologies to work integrated.
- FREEDOM – You are free to do and use the tools in different ways and twist them to allow you do the work you want to work on
- STANDARDS – As mentioned before, they allows a common way to develop and allow a better understanding between platforms
- INTEROPERABILITY – Code written should be able to work in another platform regardless of the IDE or the platform in which was originally developed
What Active State wants is not just to build commercial software but make a positive impact, make things that people like to use, allow development for the Open Web and the dynamic languages, but since they are going Open Source, this is not limited to the dynamic languages alone. It is up to the community on where they want to take it.
What Active State is offering is most of the source code that they have been working on to allow the community to say where to go after today and allow them to increase their market by having more people knowing about them
Comparisons
From both speeches you can hear two main principles of Open Source. The first one, highlights that giving back to a community knowledge leads to a greater awareness and further increase of knowledge and foster to contribute back more and more. From Shane, we can see an Open Source based tool going Open Source themselves and try to gather a community around them since they firmly believe that they are not the only ones who can give good ideas for their product and will allow the community to say what they have to say about Open Web and how they want to develop by contributing back to Open Komodo or twisting their code to use it in the ways they might need.
Personal View of Open Source
This first time attendance to the FSOSS has been a onetime experience in which without any doubts has expanded my picture of what software development is, what commercial software is and what things are involved with Open Source.
Firstly, I was extremely confused because everyone would be using words as: open source, open community, open commercial, open standards, open web, open technologies... which they all have the word “open” as a common denominator.
A lot of doubts came to what my understanding was of “openness”, let me explain myself. They are websites that are “open”, you can access to them without restrictions. There is content on the web which is “open” to anyone to see it, BUT not everything is “open” to be used in whichever manners you want (read, write, reuse, modify, etc...) There is software that gives you the possibility to use it (demo, trial, shareware – I know it is not good to put them in the same bag) but with a lot of restrictions. I have also seen companies that allow user to create open source projects in their servers that are completely non open source based, like Microsoft with codeplex.com, and in the other hand Source Forge with everything based in open source technologies and they both try to sell their "closed" solutions to enterprises. There is software that is “closed” but it is based on “open technologies” and there is software which you are free to use, free to modify and you are even free to contribute back! I also found out about the Open Source initiative that holds the licenses that follow the Open Source principles
After all this confusion, I realized that there are a lot of advantages to use open source, it is a great way to be in touch with people developing in our era with the latest technologies and it is needed for a better ecosystem in our economies and in our beloved freedom of speech culture