So I have a question, or at least I think I do, because maybe the answer is obvious and any sense of there being a question is redundant.
Why do so many articles on software development these days (and for some time) start with outlining how truly awful, and late, and expensive it always is?
I’ve said it too, often. But it’s getting boring. Statistically, if you were to parachute into a randomly selected IT development project today, the odds that it’s building the wrong thing, or the right thing badly, or that it’s hugely late and has cost more than planned are overwhelming. We know that. Saying it all the time would be boring enough, except that people who do tend to go right into “and this can be addressed by [insert tool or methodology here]”.
Boring becomes dangerous (or at best tediously annoying) when [tool or methodology] actually makes things worse.
Two of my favourite examples are SOA and Agile. Both straightforward concepts when you think about it. Both fall into that most important category of software fu - ideas that aim for simplicity, whilst requiring deep understanding, hard work, and discipline to provide that simplicity.
ReST and NoSQL databases represent two other recently popularised ideas that are also teetering on the edge of, and about to fall into, the stupid-processor. What’s maddening is these useful tools acquire a bad name at CIO level, making it devilishly difficult to adopt them when they are appropriate.
With SOA you have this neat concept of a raft of service interfaces that sit at just the right level to embody an organisation’s domain concepts. Enabling business processes, though not coupled or derived from them directly. A representation of the business as it is, not how here-today-gone-tomorrow projects might see it. Business-driven and business-governed. Reuse not just guaranteed but transparent and obvious.
And what actually happened? IT got itself into a big SOAPy lather and deployed hundreds, sometimes thousands, of WSDLs which were badly thought through and mostly represented things you could have done before, just now via the gift of a complex set of interlocking web service standards. Contracts? You want ‘em, we got ‘em.
With Agile you had what was (and I still find it relevant) a clean and simple call to action in the manifesto. It’s a bit cheesy if you take it at face value, but powerful if you believe the right thing to do with a customer when they can’t make up their mind is to say “fuck the plan. Let’s work out our best guess right now and make our mistakes together”.
It also put the focus of respect where it always belonged - on the developers. The creators of the value. What could be more useful than applying techniques to close the gap between developers, quality working code, and customers?
And what actually happened? Process, training, certification, management. As with SOA, the promise of Agile has been too tempting for most people to take the time to understand it first. The experience and required mental discipline ignored, in favour of more rigour in the process, which inevitably ends up delivering the opposite of what’s intended. Scrum is the worst, though not the only, source of this in large organisations, as described perfectly by Martin Fowler in his piece Flaccid Scrum.
Putting on some robes and eating noodle soup for lunch does not make you a Shaolin Monk.
Back to my question then. Is software development in crisis? I’m not ready to accept that, just because most projects are in crisis, software development itself is. Just because a lot of people drink and drive and crash their cars doesn’t mean there’s an issue in the automobile industry.
We have a lot of good ideas around right now. More it seems to me than we’ve ever had. We’ve had some stupid ones too that have knocked us off track for a bit but we’re human and not immune to mistakes.
So here’s my thought to start 2011. Software development is in the best shape it’s ever been.
Move along. There’s no crisis to see here.
Except and unless you’re out of your depth. In noodle soup. In which case the crisis is you. But don’t worry. There’s still time.
- The picture, used with the artists permission, is The Noodle Tree from 2008 by Julie Leuthold