There's a brilliant episode of Yes, Prime Minister in which the British prime minister discusses the effectiveness of a nuclear deterrent with his chief scientific adviser.
During the exchange the advisor uses the phrase "salami tactics" to describe how a hypothetical Soviet invasion might play out. I've always liked this turn of phrase and I think it's a metaphor that works equally well when applied to Agile web development. Deployment to the web is easy, so development can proceed in small achievable slices and released immediately. This iterative approach to development is why so many sites are in "perpetual beta".
The Computus Engine in 2008
Looking back over last year I think I laid down some essential groundwork for The Computus Engine project:
- The thorough audit of the AS3 Date class showed that it won't handle historical dates with any reliability beyond the 17th century. To paraphrase Jaws, I'm going to need a bigger Date.
- I'm probably most pleased with the AS3 Timekeeper class. This solved the fundamental problem of isochronism in the standard AS3 Timer class. The resulting Timekeeper is more versatile and far more reliable
- The AS3 BaseComponent class has been very helpful for quickly prototyping new UI components.
- And finally bringing it all together with a proof of concept infintely zooming timeline.
The Computus Engine in 2009
So I've made progress in a number of fundamental areas but I don't think I've been very clear about an overall plan. I know I want to build an interactive temporal plaything but the final shape of that thing is still amorphous. That said, if I'm building a plaything then I think the process should also be playful; more akin to sculpture than industrial design.
So right now I'm building up a stockpile of temporal technologies; where they don't exist I'm going to build them, and once I've got a few up and running I can join them together to see what happens. Over the next few weeks I'll be chopping up the salami into more manageable chunks. Each aspect of the plaything will be spun off into it's own project.
Each project will have a specific area of focus and a proposed set of deliverables. I'll give each one a name because naming stuff is fun and it lets me quickly tag related content together. All of the source from the individual projects will be downloadable, open source and I'll support these as best I can. Whatever the temporal plaything turns into probably won't be open, as it's likely to be a constantly evolving mashup of all those technologies.
Strap yourself in this is going to be fun!