We enjoyed Phil Gyford’s new application Twelescreen earlier today, and the background post he wrote about how it came to be, and how he’s even somewhat unsettled that the tools of Big Brother might seem so… useful.
However, what particularly resonated with us was this part of his post about the software itself:
Not least, I’ve been reminded how much longer it takes to make something with as few rough edges as possible and that has code suitable for other people to use … even though I had something quite similar up and running very early on in that process.
This has been one of the most important lessons we’ve learned while making.
Printer is a good example of a project where – despite technologically taking users 95% of the way towards everything they need to start printing things, with almost all of the architecture and implementation already available – that last 5% is still enough of a rough edge to make it almost prohibitively hard for most people to build something for themselves on top of what we made.
Designing by making, refining and polishing, refactoring nasty code, re-working the configuration, writing documentation… it all takes so long, even after the first rough attempt is basically working.
If you want other people to actually use some software – and particularly if you want them to consider deploying it themselves – it’s not enough to just demonstrate a proof of concept, or even one specific use-case. You have expend an incredible amount of effort making your work almost trivial for other people to use.