When people talk about why they adopt an agile approach to software development, they talk about the many benefits of delivering working software iteratively, like the nimble shaping of a product to have market-fit in the face of emergent customer needs or the realisation of early commercial reward while the development of the software is still ongoing. Rarely do we focus on an even more fundamental reason why software development teams should be taking an agile approach; agile is part of the answer to providing the people in development teams with fulfilling and rewarding work.
Getting to the point
Just to be clear what I’m saying… I don’t think the fundamental reason to take an agile approach to software development is because it’ll help you write better, maintainable, flexible code. I don’t think it’s because it’ll mean you make better software for your users. I don’t think it’s because it’ll make your company more money, as the software you build will be more likely to actually meet the needs of your customers. And I certainly don’t think the key reason to take an agile approach is because it’ll maximise shareholder value. Although, to be fair, I do think taking an agile approach can provide all of those benefits.
No, I think you should take an agile approach to software development for the reason I discovered when I first applied Scrum on a project in 2004 – because it meant I enjoyed my work more than what we did before. Much, much more. It was more engaging than just coding-out a specification written by someone else six months ago. It was more fun spit-balling with my team over exactly how we should shape the next feature we wanted to add. It was more rewarding when the software I had had a hand in innovating into existence was actually used and valued by some real people. The agile approach was better for the people that built the software – me and my team.
I think you should take an agile approach to software development because it can help make people’s working life more fulfilling. But it’s not enough on its own. Not even nearly.
The book Drive by Dan Pink explains the recipe for engagement and motivation at work. Perhaps surprisingly, money is not the magic ingredient. Employers need to pay their people fairly and enough to alleviate financial pressures, but to truly give people fulfilling work they need to give them three other things: Purpose (which speaks to our need to contribute to something bigger), Autonomy (reflecting our desire to have freedom to act and for those actions to have impact) and Mastery (providing us the opportunity to get better at what we do; to progress).
Agile’s tight loops of continuous improvement, purposeful iterations and focus on team collaboration can give us some of that. When coupled with clearly articulated and meaningful goals, a genuine focus on people’s needs and the nurturing of their potential – you’re on the right path. If the software you build is, by some agreed measure, actually good and meets its aim, this will add to the likelihood that people in the development teams that created it will feel a sense of achievement.
Which leads us to an awkward question. If adopting an agile or lean approach to software development is ultimately about making working life better but your particular flavour of agile or lean or scaled whatever doesn’t serve that aim or is not coupled with a culture that provides purpose, autonomy or mastery for you and your colleagues – then who cares if you are agile?
For companies that employ software development teams, creating an environment where people can do fulfilling work is not just altruistic (heaven forbid). People who are truly engaged in the aim of their work, have a strong hand in shaping what they do and feel as though they are improving over time, will perform better and produce better results. The book Accelerate provides some solid science to back this perspective up and goes on to show a causal relationship between high software delivery performance and high organisational performance.
Those of us working in tech are blessed by working in an industry that is most definitely a seller’s employment market. There is not enough talented people to go around, so competition between employers for software developers, designers, marketeers, sales people, and managers is high. So, if your work environment doesn’t provide fulfilling work, or at least doesn’t have the potential to provide you fulfilling work, go on the hunt for somewhere that will.