Software Driven by Imagination
For years, it has been said that Free and Open Source Software is created when someone has an itch. That may be true, but I'd like to present a view after that initial itch has been scratched.
I'll start this entry as a question and answer session.
Question: How many times have you created a piece of software - one which scratched that initial itch - but once the initial problem had been solved you stopped working on it?
Answer: Loads. Not one or two, or even five or six. I'd say upwards of 10, maybe even 15 or 20. I even have old repositories to prove it.
Question: Why is it that once the problem is solved, work is almost immediately dropped?
Answer: Mainly it's because the challenge of fixing whatever the itch was then goes away and the itch dies down. Also because the interesting thing you wanted to solve is no longer interesting. It's sad to say that because of this no-one ever sees the beautiful code you stayed up for three or four nights crafting.
Question: So how does a project move from the initial itch stage into being a full blown development project.
Answer: Imagination.
And there you have it, it's that simple. Imagination is the driving force behind any large project. Without it, the project stalls and nothing else gets done. As proof, let me give you a few examples:
- imagine if all the computers in the world were able to talk to each other
- imagine if everyone in the world could get free access to information, including reference material and education
- imagine if anyone could run the software they choose to, for free, and be able to exchange both it's source and any documents in any way they please
Hence, from the above musings, the internet, the World Wide Web, Wikipedia, Linux and ODF all came into being. Though they might have had different thinking at the time, I suspect each of these projects stemmed from someone's first itch but only carried on because of their imagination.
Imagination is important because otherwise projects would just stop. If the itch has been scratched, even if the software is also released as Open Source, no new development will happen since there is nothing taking it anywhere. There is nowhere left to take it - it has fulfilled its destiny (think grep).
The only thing that can take that project forward is imagination. You need to be able to figure out what the next step is, where you want to go and where you want to be. Even if the original need has been fulfilled, imagination means there is always something to do next.
I was thinking about all of this on the bus on the way home from work. I'd just had a conversation in which the other person stated that various government organisations had listed Drupal and Plone as their preferred CMSs. I had been pimping http://zaapt.org.nz/ (deprecated) Zaapt as something that is ready to be used in a production site. Granted, those other CMSs have a few more features than Zaapt - and I can point to a few reasons why - but it just seemed that because these other two were the preferred CMSs that Zaapt wouldn't get a look-in. Or indeed any other CMS for that matter.
So that's why I'm glad that I have imagination. There have been many times recently that I have imagined when Zaapt will be used on big projects, hell even government ones. And the reason is because I always wonder what I can implement on Zaapt next (e.g. the list of features needed for v0.2 even though v0.1 is only just feature complete).
At first, you'd wonder if that closed thinking would put me off. Certainly, I'm disappointed but it doesn't worry me, besides, I like a challenge. Zaapt has already scratched my initial itch and fulfils all of the initial problems I set out to solve - in fact, the itch disappeared a long time ago.
But yet somehow Zaapt is now one of only a handful of projects that I have kept developing consistently over the years. The main reason for this is because I have an imagination. There are so many places to go with it, things to do, places to see, all fulfilled by the usual constraints - time and resources - but gladly not constrained by imagination.
And I imagine that Zaapt will eventually be the biggest CMS built with Perl[1], which was always one of my original intentions :-)
[1] Yes, I know that is a tall order and maybe that's not just imagination but a dream - still, we need that too.
This post originated on http://chilts.org/.
Email me on andychilton -at- gmail -dot- com.
