In my years as a software developer, I’ve seen several methodologies primed as the next big thing, the one way that would ensure a higher success rate of all software projects.
- waterfall in large enterprise (ah, the scores of UML diagrams)
There’s an eternal hype curve, as with technology. Oh look, this will solve all our problems. Then some years laters, outcries because the results don’t match the expectations.
Recently, there’s been some backlash against dogmatic agile. Dan North’s deliberate discovery is one, Fred George’s Programming Anarchy (both good talks, both coincidentally ex-Thoughtworkers), or Zed Shaw’s macho ‘Programming, Motherfucker’, a (hopefully) less serious one.
Here’s the thing:
It’s NEVER easy to drive a project.
Every project needs to be considered on its own, the task to accomplish, the shareholders, the team. Time needs to go into pondering how to handle each of these, how to navigate the ecosystem.
I know we, as developers, would like to be given the golden receipe. Laziness is our virtue, and we would like to have a clear algorithm so that we can just concentrate on the fun parts. And this makes us easy targets.
Gurus will not tell you about complexity.
I’m sure most gurus are genuinely convinced of what they’re selling. They have worked in software, stumbled upon a good idea, and in their own context, applied it with the necessary creativity (hell, they were inventing), it works.
But they’re also in the business of convincing (and maybe to sell books, courses, talks etc). That requires one-liners, clear and simple ideas. Theories that can be grasped immediately. They won’t add multiple caveats to every simple statements, because that could be confusing and off-putting.
There are no easy receipes. Every practice needs to be assessed with a critical eye, and reassessed constantly. In some environments, with some people they’ll work, and sometimes they won’t, and then we need to think, ponder and improvise instead of sticking to the letter of any book.
Not saying that there is no value in existing methodologies. But the only methodology that works lives in the negative space between methodologies.
Read. Pick and mix. Use brains.
A bit like growing up – time to start relying on our own hearts and minds.