It appears to be the height of the political parties conference season here in the UK. It means politicians get to make many announcements about their policy choices. Now imagine one of the political parties decided to announce that during the next parliament they will work to increase the average speed of cars on the roads. In principle you can see the benefits of decreased travel time and thus earlier arrival at your destination. In practice however I suspect you would quickly discard such policy as not being sensible. You most likely understand the relationship between speed, safety, road capacity, vehicles’ capabilities, traffic, congestion, etc. We tend to understand traffic because it’s tangible and we experience it either actively or passively almost every day.
When it comes to software development however even practical experience doesn’t always create the same level of understanding. Writing software is not tangible – it’s just “bits and bytes on disc” – and hence it’s much more difficult to obtain meaningful feedback which is essential to developing a correct mental model.
Perhaps that’s one of the reasons why organisations adopting Agile jump on the bandwagon of “increasing speed of software delivery”. It makes sense to want to deliver working code more quickly and with the initial introduction of Scrum or another agile approach a step change is often experienced. However, just like increasing speed on the roads, on it’s own an understandably futile effort, so it appears to me is the common focus on lowering the cycle time.
My point here is not to draw any direct parallels between driving and building software though I hope it serves as a useful illustration. I would like to emphasise that a holistic approach which includes the understanding of all the elements involved and their interactions is essential to providing a basis for continuous improvement.
Now, a party which declares to commit to improving the road infrastructure makes far more sense in my mind. So where would you like to see improvements focused for software development?