If you want your average home user to use your software, it must be designed with simplicity, ease of use and the user in mind. When your average non-technically oriented user says, "Hey, that's so easy. I could never do that on Windows or Mac without 27 clicks. And they said "Linux" was hard. What's so hard about it?" Congratulations, you have fundamentally succeeded. You have spurred an interest. You have impressed a non-technical user. He'll probably send you a check in the mail for your efforts. He will join your forum and mailing list. He will advertise you software, like a zealot, to his friends and family. Others will get to use software, they will find it amazing, they will do the same. You wouldn't need to spend millions of dollars on marketing and promos. The word will spread.
Given the state of open source software at present, this is unlikely to happen. Instead, developers follow horrible design approaches used by proprietary software projects. The average user takes a look at software applications running on Linux and doesn't find it any different or easier from what they already used. Add to that the fact that their proprietary 15-button mouse will not work, and their surround sound card isn't yet supported. Their wireless network card module just won't load. Then you tell them manually edit some configuration in /etc/X11/XF86config just to get their monitor resolution right. And then you wonder why your average user says "Linux" sucks.
If I had to go through all the above, forget about it. I'll stick to windows' insecurities and limitless viruses. And even if I got all the above to work, there still needs to be a reason to keep me glued to this new environment. How about the open software community begin to develop intelligent algorithms for our application software rather than copy the dumb, stupid approaches used by other operating systems. Let me illustrate with a hypothetical example.
Sending an email with a little intelligence from the computer
Averageuser: Errr...I want to write an email. Computer: Who do you want to write to? Average user: Jack Computer: Scans address book (In less than a nano second) Computer: "Provides user with all names and nick names contain Jack" Averageuser: Oh, Jack Wane. Computer: Seamlessly launches email program To: Jack@wane.com Subject: Hello Jack, ---------------- Sincerely, Averageuser. Computer: Proceed to enter subject and body of your email. Averageuser: Types away happily. Computer: Corrects spelling mistakes, suggest alternative sentence structure, etc. provides suggestions. Averageuser: Makes necessary adjustments Computer: Secures, via encryption, and other means and sends automagically. Computer : Done, Have a nice day. Averageuser: Proceeds to do something else.
Now if I can do all the above either through voice activation or by simply clicking an icon, which then launches a wizard that takes me through all the process, I'll be impressed. Even someone who has never sent an email before can do so easily with little to no prior email using experience. The above illustration can be translated to so many other applications.
When users can use computers with no need to read a man page, or info pages, or documentation found at www.thisisosmuchstress.org, they wouldn't care whether they are working on Windows, Mac or "Linux". All they care and know is that they sent a secure email, and they did so effortlessly, painlessly, and easily. The user probably doesn't even know the name of email program he used, or the language it is or was written in.
If open source software has to be ubiquitous, you need to provide applications that are easier to use, intelligent and make Mac and Windows computers look like the stone ages of computing. And believe me, only open source software has the resources, time and the power to make this dream come true.
I'd like to contribute but to this project but it doesn't look professional. No Documentation
Developers please document your projects. And please write them in a simple language my 5 year old cousin can read and understand. If you want people to participate in your project, it has to be thoroughly documented and easy to decipher. I personally do not participate in and support projects that are designed for elitist. And I'm sure many people don't.
Coding is an art. Your fans want to know your thought process, your challenges, how you solved problems, how to use your code, how to use your program, how they can participate, how you came about the project, what plans you have for the project, how you designed the project, the mistakes you made etc. All these an perhaps more need to be documented if you want individuals, other developers, business organizations, sponsors, or nations to take an interest or help with your project.
It's not just about hacking codes that only makes sense to you. It's about being considerate to your users, your potential developers, your sponsors, your supporters, generation of scholars and so on. If Einstein didn't document his works, think about the valuable knowledge we would have lost today. Spend as much time coding as you would documenting, or get someone who is interesting in doing it for you. Of course, most elitist developers will argue that they don't have time for those who don't understand their code and they are doing it out of their freewill and for fun. My response is, "well if the code was only intended for you to understand, then don't publish it to the public. Make it proprietary and sell it to some dumb person or something. If you intend to make your code public, then you should be responsible to clearly document working innards of your project, for criticism, assistance or correction." To cut the long story short, adequate documentation can and will attract a horde of supports, followers and users. And it's sometimes even more important than coding.
The state of open source documentation is pathetic. You only need to take a look at some man pages to understand what I'm talking about. No, they couldn't have been written for the average user. At least that's not that bad. I know lots of projects that aren't even documented. No, manuals, not developers resources, no comments in code, nothing. Just a broken program and it's free source code, that doesn't even make sense to me if I wanted to fix it. Given the fact that the average users tech support will be some form of documentations in the open source software realm, how do you expect him/her do more advancing tasks without a well documented manual or FAQ or paper?
The "Who cares, its free" Attitude
Don't release half-baked attempts at hacking to the public. If your project isn't complete fundamentally, if it still contains bugs you don't know how to solve yet, if it is not properly documented, if you have no intentions to complete your project or support in the near future, just be responsible and don't release it to the public until you are sure of what you are doing. I know several people who just got tired of packages breaking their system, and went back to safer Mac or Windows.
Even if it takes 5years to get your code and algorithm right, and your project well documented, then we can wait. Nobody is chasing you. You are not under any deadlines from publishers, board of directors or whatever. You are free to do as you wish, so do as you wish and do it right. Most of us tend to think that because open source projects are open and free, it gives us and excuse to submit bug ridden, poorly hacked, irresponsible code for public consumption. That's probably the meanest thing any developer can do. If your code isn't reasonably stable or is not properly documented, just don't publish it to the public it is a considerate responsibility. I know a lot of developers who guilty of this. In the name of popularity, fame and exposure they submit code that can be potentially harmful and say, "Hey, I'm not getting paid to do it. The users can deal with it or not use it" Well, it would have been better it you didn't submit it to them to use in the first place.
When the open source software community has scaled all the above mentioned challenges, then perhaps by the year 2030 we will be purchasing Apple softwares for $10 and a copy of Microsoft Operating System will be going for around $5. But that will never happen if the open source software developers and community continue in the fashion they are at present. Unfortunately, I don't share the optimism many open source software/Linux enthusiast share about bringing Linux to the Desktop in the {1-5}years, even though I am an enthusiast myself. At least not until it is better, it is easier, it is more valuable than Mac or Windows. And not until there is popular semblance of management, control, documentation, creativity and testing in most/all open source software projects. Open source software should solve problems and not copy the failed solutions of others. (I"ll probably get flamed for that.)
I'd love to see an adoption of a variety of operating systems by users all over the world. But most importantly, I'd love to see computers and software application becoming intelligent and easier to use for just about anybody. And something inside me keeps telling me only open source software can make this happen. Our fellow proprietary cousins are more concerned about locking their customers to their products, patenting innovations for eternity and keeping the register ringing. Personally, I still thin we are yet to rip the benefits of open source software, and scaling the challenges I've mentioned is a good starting point.
About author:
Mystilleef is a computer enthusiast who believes computers are hard to use and software is diminishing in quality. He will be graduating from university this year. His field of specialization is Accounting and Finance with a minor in Computer Science and Economics. Among other things, Mystilleef enjoys arguing, reading, playing video games and outdoor sports.
- "Challenges of Open Source Software, Page 1"
- "Challenges of Open Source Software, Page 2"


