Side projects, if you have the time, are great way to keep your coding fresh. Most places I have worked in my IT career have been single-product businesses of varying size (tiny startups to medium sized companies). That is, you work on a single product or product family, using one language or platform, year after year. Now, depending the nature of your work and the nature of you, that can be interesting or deadly boring, or both; but often you just want to do something different, and the boss won’t let you. You may limp along all day in VB.NET, but at night fly in Perl; in office hours, you write accounting software macros; in your basement, Linux DVD drivers. At the water cooler, you are just a low-paid, invisible geek; on the OSS mailing lists, you are a guru, nay, a God.
So, the side project, be it open source or not, is one way to keep your coding skills fresh and your coding ego boosted (assuming, of course, you are good at what you do). And, who knows, it may one day bring you fame and fortune.
As an aside, I did work for a boss who was dead against developers doing side projects; he thought they should be 100% focused on our product, presumably saving their spare-time brain cycles for company use. To which I say: what an ass. Side projects not only are good for you, but they may be good for whomever you work for, as you get new ideas and perspectives that may be of use to the Man.
So, I have had an idea for some time about working on the perfect business web application. To be more exact, something which allows a company to manage its projects and sales, but without complexity and bloat. I’m thinking of an app that has blogs and wikis, so people and teams can build something as much from the ground up as well as from the management down. For example, you can keep up with your project as much with a blog as with Gantt charts and milestones, tag your meetings and contacts, add YouTube videos to your product lists.
These are all rather vague, Web 2.0-ish ideas, and at the moment half-baked and in need of some originality. And yes, I know 37Signals have Basecamp and Highrise, but they have yet to combine their individually decent products under a single roof and, to be honest, their focus on “simplicity” at all costs leaves their apps a nose short of greatness.
I don’t really plan on making money out of this; I’ll probably just post it on Google Code. I’m doing it because:
a) I do Ruby all day for bread and board, and I prefer to code in Python
b) I want to do stuff in Pylons, Elixir, Mako and other cool tools I’ve been writing about
c) I think there’s a kickass framework that can be built on these tools, but I want to harvest it from something that really works (more on this later)
d) I really think that businesses and organizations need something like this ( I may be completely wrong, of course)
e) You never know, it might make me rich and/or famous.
However, I have limited time: a full time job, and family commitments. Progress will be slow and sporadic. That’s OK , if I can at least get the ball rolling, and let others with more skill and time on their hands take over, then I’ll be happy, and I’ll go and start another side project, even if that side project is just mowing the lawn.