Last Christmas, I asked Santa for an AMD Athlon 64, and an ASUS K8V-X motherboard. Don't do that: Santa sent them really late, and I couldn't get Linux installed on this board (oopses and panics with any distro).
So, this year, I've decided to forego writing to Santa, and write a (somewhat early) letter to OSS/FS developers around the world instead. Here is it:
Dear OSS/FS developer:
Linux does not need anything we've seen pushed by pundits lately.
Linux doesn't need insurance. It doesn't need lawyers. It doesn't need corporate backing. It doesn't need broader hardware compatibility.
Depending on your point of view, these items may be means to an end, or ends unto themselves. Funding, corporate backing, hardware compatibility, platform support, consortiums, world domination, eternal bliss, are all items on a checklist. The problem is, that checklist will never be finished unless there are people willing to do the most important job: write software.
And what we need to conquer the world is already here: us. Hard-working, honest, generous, community-focused people who keep improving parts of the system, in an organic fashion. We are the quintessential means to reach our collective goals.
We only need to put the extra oomph to get the details right. And here's why and how.
We are many more than a few years ago, and Open Source has gone mainstream. The OSS/FS project landscape has changed a lot. It's no longer enough to be the first to fulfill a need with an application. Nowadays, your application is measured against 20 other applications, and perhaps 2 or 3 proprietary products. This increased public exposure means that, to appeal to users, your application needs to fulfill a growing list of common requirements:
- compliance with standards,
- guaranteed stability,
- a pretty, usable and HIG-compliant user interface,
- binary packages,
...and so on. Fail in one or more of these requirements, and your user community will shrink drastically to a core group of hackers who know how to bear with your program, to get it to compile, or to "do the right thing".
That may be good enough for you, but the extra mile you go in your project may well be the difference that makes your user base grow tenfold. Let me emphasize: you need users to accelerate your application's improvement process.
A couple of tips to get there:
- Pay attention to your users. Especially to beginners; while hackers may lead you to interesting ways to solve a problem, the beginners will provide you with fresh perspectives on how to present your solution to that problem (yes, UI and HCI). Have your application be the easiest to deploy, manage and remove among your competitors' offerings. Provide accessible feedback channels for them (even directly in your application, if you can). All of this will be easiest if you...
- ...plan, in order to save time. Remember that many of these common requirements will ultimately be easier to achieve by the technical choices you make early in your project, which will...
- ...save time for creativity. Don't be afraid to reengineer, work with prototypes and write throw-away code - experimentation is paramount. But don't reinvent the wheel. Reuse commonly-deployed libraries and platforms, and follow embraced specs. Make tools program for you. Use gruntwork-saving languages, like garbage-collecting environments. Follow proven engineering practices, like object-oriented paradigms or unit tests. Hopefully, this will also buy you time to...
- ...get friends on the OSS/FS bandwagon. They are the raw material our community needs to fuel their exponential growth. Sooner than later, they will feel they "own" their applications, and start contributing in various and interesting ways to their pet projects. That will lead to a faster increase in overall OSS quality, and user-centered applications.
In closing: Be proud of your work. You've accomplished a lot so far. Now go for the polish and the (remarkably hard) ten lines of code which will get your application to critical mass. Once you get there, your good graces can only go up.
Merry Christmas for all of you!
Well, now would be a good time to call Santa's tech support (or ASUS', maybe). Oh, I hope you enjoyed reading this letter as much as I enjoyed writing it.