Enabling Agile Teams to Improve Software Quality
Long working days, deadlines and team pressure can impact the quality of the software that agile teams deliver. What can we do to prevent that from happening and enable teams to improve the quality of their software? Some suggestions are to arrange for scope and deadline slack, adopt pull systems, and to make sure that people can slow down and get enough sleep.
Michael Thomsen wrote on Forbes about how sleep deprivation drives the high failure rates of tech startups. According to him the tech industry is obsessed to getting things done at all times which isn’t always a good thing:
The irony of this increase in working hours is that it usually comes in service of extraordinarily bad ideas, the majority of which end in failure. While the tech industry is the subject of special fantasies of how exponential profits can spring from just a few people working together on laptops, three out of every four startups fail. Could it be that the myth of the obsessive careerist whose dedication to work follows him to bed every night is actually a grand farce of worst practices and general dysfunction? It may be that accepting the normalcy of non-stop work is encouraging a culture of unusually bad thinking, painstakingly propped up by those charged with turning thought into real product.
An earlier news item on InfoQ about sustainable pace, how to achieve and improve it provided several quotes about the impact on software quality of putting pressure on teams and working overtime:
Christoph Baudson: Several studies show a productivity boost in the first week of overtime, with productivity decreasing rapidly and ultimately falling below the productivity level of the 40 hour standard. During overtime, people fail to notice a drop in their cognitive abilities, resulting in mistakes and finally quality degradation.
Neil Killick: The more stories we ask the team to deliver, the less time they can spend on quality, the more likely shortcuts will be taken, the more likely technical debt will be incurred, the more likely team culture and effectiveness will suffer, the less fun will be had, the more fried the team’s brains will be and the less predictable we will become at delivering software.
In the blog post reflections on agile business leadership Travis Birch explained that adopting agile can improve the quality of the delivered software if teams are not put under pressure:
The investment in Agile processes and practices is essentially an investment not only in quality, but in continuous quality improvements towards the goal of being able to frequently deliver products of increasing relevance and quality (value). The ability to ship frequently allows for sustainable growth. All of this is made impossible by the deadline-driven push system mentality/culture of fear.
In stead of putting pressure on teams business leaders need to arrange for scope and deadline slack to improve software quality:
If the business leadership, with the support of the Process Facilitators and the Transformation Team, is able to foster the organizational will to create slack for the teams, then the teams will have the space they need to truly focus on continuous quality improvements. This is a critical milestone on the path to realizing the true, measurable benefits of Agile. Although the support of others is needed, the business leadership is in a unique position benefitting from an intimate relationship with both the needs of the business as well as the daily life of the team.
Pull system thinking can support in adopting self-organizing teams which use burn-down charts to manage their work and increase their productivity and quality of the delivered software:
Understanding the purpose of burn-down depends on the ability to make the shift from the push system paradigm to the pull system paradigm. In a push system, burn-down is nice but somewhat irrelevant. For an organization committed to an Agile transformation (towards a pull system of self-managed teams) it is an invaluable launch pad for powerful conversations that live at the heart of continuous quality improvements.
Olga Kuzina wrote the blog post 5 things we need for sustainable performance at work. She states that we need to get enough good sleep to perform well at work and deliver quality:
The heroic sagas about office super-achievers used to have it that sleep is an annoying waste of time, and people should cut down on sleep wherever possible. Turns out, sleep is vital for our well-being and performance (…). What matters most about sleep is that we work in offices. We are not construction workers, who are able to wake up simply by staying outside, and doing physical work. Anyone whose work involves staring at a screen and thinking will not get away with it. If your body wants to have its share of sleep in chunks, you have to attend to it. No hacks will do the trick. All our problems with health, and hence with performance, are rooted in the careless attitude to the way we sleep. The earlier in life we start taking care of our sleep, the better our chances for long-term viability at delivering good work.
The Huffington post published an item about why you should sleep your way to the top. Arianna Huffington, HuffPost President and Editor-in-Chief, explains that creating a healthy relationship with sleep is crucial to be successful in work and in life. In stead of working more hours, we should take sufficient time to sleep:
The world is in desperate need of big ideas -- and there are many, many of them locked inside of us (…) We just need to close our eyes to see them. So, ladies and gentlemen, shut down your engines and get some sleep.
What have you done to enable teams to improve the quality of their software?