Leading software development often reminds me of what it must be like to ride a bucking bronco … with the added problem you have to go somewhere at the same time.
Imagine this … You mount your horse (Bessie) and set off. It all seems fine but all of a sudden Bessie gets peeved. She kicks, jumps, dances. You cling on. But you aren’t in a rodeo. You’re trying to make it to the next town. You have to make it to the next town. After some careful coaxing Bessie settles and you trot on. You’re relieved and Bessie is thinking whatever horses think. Which clearly isn’t something too nice because after another half hour Bessie strikes out again. Once again you cling on, and where ever possible, nudge her towards town.
Okay I’ve only ever ridden a horse once, can safely report I rode like a sack of potatoes, and if the horse had bucked I would have been history.
But I have led many, many software development teams. And I’ve got the bruises to prove it. Software development is never a smooth ride. Every now and then a project, any project, decides to kick and kick hard.
There are any number of things in a project that can trigger a spasm of bucking. They broadly can be lumped under Risk and Issues but in particular:
- emergent architecture
- evolving UX design
- product development
- self organising development teams
- or just people
What appeals to me about the Lean-Agile approach to software development is that is comes with tools that allow me to cope when the unexpected happens.