I do ideas. I’m surrounded by people with ideas, and I have the odd one myself, and I’m well-practised at turning them into profit, of both the material and societal varieties. I know people who, when shown a sketch system design, slew out thought after thought, feature after feature, improvements on improvements.
But. Software is an art. Building systems around that software is too. And great art is rarely about how much stuff you can chuck on the page, in the ears or on the plate. Great art has restraint: it’s about knowing all the things that you *could* do, you *could* add, but chosing the ones that make the whole valuable to the user, the listener, the viewer, in their own context. Great music has coherence, has spaces between the notes that make you understand how those notes flow together, those moments where you pause and wait for the onslaught to begin. Matisse, Picasso – both masters of the line that describes, in a single flow, an arm, a bird, an emotion.
And so great software. I hang out with some of the best designers and coders in the world, and the best, the real best of them, spend a lot of time deciding what *not* to put into a design. I’m going to do this too – resist the urge to add everything I could into a system in favour of making something that just works, that (hopefully) makes people smile to use it, in any language. That’s the aspiration anyways. It make take me some time to get to that ideal, but it won’t stop me trying.
At this point, I could talk about the uncanny ability of great algorithms to look simple whilst having massively complex dynamics behind them (like the incredibly simple neural network updating rule that comes out of some horribly hairy maths, or the simple game update rules from similar). But I’ll save that for another, less cafe-relaxed, kinda day.