“Insanity is doing the same thing over and over and expecting the results to change”
We love this quote, from Albert Einstein – it’s so obvious when you think about it, however we often see software teams who are doing exactly this, and it’s destroying them!
Nothing kills morale faster than working in a team where things are going wrong, you all know things are going wrong, and yet nothing is happening to sort it out. You probably have a good idea of what the problems are, and yet they just don’t go away – instead they often grow, unchecked, week by week and month by month. Meanwhile the world doesn’t stop and wait – you still need to deliver value, and the pressure on the team will increase and increase as you struggle.
This even happens in teams that set aside time for retrospectives, the most important of the common agile ceremonies that teams adopt. The idea of retrospectives is simple enough – you reflect on what’s been happening, and identify a way to improve it – however many teams don’t get results from this, and end up with retrospectives just turning into hours of complaining about the same old things and nothing being done about it. After a few rounds of this soul-destroying nonsense, people lose interest (obviously!), and retrospectives get dropped because people don’t believe in them any more.
Software engineers very often get their job satisfaction from solving problems; when they are in an environment where this isn’t happening it is incredibly harmful not just to productivity and effectiveness, but to the well-being of the people involved as well. You can begin to doubt yourself, to lose your appetite for the job, and start to check out mentally if you feel the situation is hopeless. The best people will realise that they have options – they can easily find another job in a competitive and healthy market – and before long they will decide they’ve had enough and look for a more rewarding job elsewhere.
If you have problems that aren’t getting fixed, the problems rarely will almost certainly grow in severity. What starts off as an annoyance becomes a bigger and bigger drain on the team’s time and energy, until eventually it feels like vast portions of every day can be consumed by just trying to cope.
As a problem gets bigger, instinctively we feel that it will need a bigger solution. We start looking for things we can try that seem to have enough gravitas to match the problem. This is where the “silver bullet” solutions seem like the only option – we start thinking on a scale of things like changing programming language, or changing the architecture, or even a ground-up re-write.
There’s 2 big fallacies of these big grandiose solutions. The first is that they won’t solve your problem because you won’t ever do it – it will be too expensive, take too long, take too much effort, and even if you start you won’t be able to see it through, and the business and management will rightly question the wisdom of these extreme initiatives. The second is that they won’t solve your problem because they almost always don’t deliver the benefits in practice that you hoped they would from the theory, or will come with unintended consequences – it’s really hard to design something big perfectly without real-world feedback, so any big design like this will almost certainly be flawed, and if your mindset is one of big actions, you won’t be able to make the small adjustments that are needed.
The reality is that to deal with this we need to change at a deeper level. We need to change how we think, how we collaborate, how we treat new ideas, and how we bring them to life. We need to make it clear that we’re not just permitted to improve, but that it is necessary and required.
We know though that if we have the same inputs, we should expect the same outputs. This is where having access to people who have a track record of introducing change, a clear remit and a fresh perspective can be hugely beneficial! A good change agent will show the team how to break the cycle, giving them the techniques and – more imporantly – the mindset and paradigm to turn the vicious cycle around to one of continuous improvement. This is what we at AgileLabs are all about – so if you’d like to know more about how we could be the change agent that steers your team away from the brink of insanity get in touch!