Don’t let developer toil affect your apps’ business value
It is no surprise that the world today is driven by apps. Organisations all over the world are basing their business goals on their capacity to integrate new apps quickly, and they need to constantly reimagine how they interact with and communicate with their consumers and employees 1in order to fulfil changing expectations.
To do this effectively, businesses need to operate at a high level of speed and agility. But in many cases this isn’t happening. The phrase ‘move fast and break things’ could not be further from the truth when it comes to how enterprises approach innovation today. In fact, according to Forrester Consulting, 48% of executives say they haven't changed their applications in a year or more.
One reason for this may be that organisations are dealing with a high amount of developer toil and technical debt. Developer toil is the repetitive, predictable, constant stream of tasks that support the creation of software and how it's run, but don't actually affect the features in the software that people use. Or in other words "any activities that don't directly create business value”.
Typically, developers spend too much time on processes that could be automated or even eliminated. Ironically, this toil builds up over time as their organisations prioritise shipping features rather than addressing these problems in their overall software process. While developers can change their software quickly at first, just like debt in real life, if this toil and tech debt are neglected, it takes over and consumes the organisation's ability to grow. This results in long, infrequent release cycles. A feature that seemed simple and once took just 15 minutes now takes weeks, even months to get in front of users.
Conducting a Developer Toil Audit
Anything you can do to speed up your software release cycle will improve the quality, resilience, and business value of your software. Continuously addressing developer toil provides a significant boost to your organisation's software capabilities. For one of VMware’s customers, addressing developer toil reduced the time taken to introduce a new feature significantly – from 400 hours to just 24 by doing a developer toil audit and addressing key factors contributing to this technical debt.
So how can organisations overcome developer toil? One way to do this is through a Developer Toil Audit. This is a systematic process for finding, valuing, and prioritising fixing waste in your software process. First, the process finds wasted time and process debt in how you build and release software. Second, the process then helps you justify delaying working on features in favour of eliminating and automating your software creation process. The result is speeding up your software release cycle. The more frequently you can change and release software, even with just small changes, the more opportunities you must learn what works and put those features in front of customers, employees, and other users.
The process of conducting a Developer Toil audit includes:
- Asking the right questions: A great way to uncover developer toil is to ask about people's struggles, frustrations, and even boredom in the form of a tailored question set. We advise using questions that are specific to your organisation in addition to general questions like "how long does it take to perform a full build?". For example, highly regulated organisations should ask about tasks involving compliance. Once the survey is completed, you can do some quick analysis to locate and prioritise developer toil.
- Combine into usable metrics: You now have a single metric for each type of developer toil. And by combining all the questions you create a single metric to track overall developer toil. Extra points for creating dashboards with visualisations! As with all such aggregate metrics, these are more directional than exacting - their job is to point you to problems that should be solved.
- Link these metrics to business value: A simple ranking of developer toil is better than nothing. However, before deciding which developer toil to address, we recommend linking each type of developer toil to business value created by fixing the toil. Put briefly, the value you get will be related to the time saved, and, thus, the ability to ship more features in the future.
The less time developers spend on toil, the more time they can spend on tasks that directly benefit the business. Another way of looking at this is plain old productivity: developers can now do more with the same amount of time.
Another important outcome is increased staff morale. The less time developers spend on boring, repetitive work – toil – the happier they'll be. Stronger employee hiring ability and retention are, or should be, a strategic imperative for any organisation that depends on software. Morale also increases software quality: happier people make better software.
Slow Down to Speed Up
With the survey results in hand, you should have a pretty good idea of which developer toil to fix. The last step is to do the usual product management prioritising to weight fixing these items with other tasks you could do. These are strategic decisions that product managers need to make. To fix toil, you need to stop shipping features to free up time. You need to slow down the business. At the start, before product managers have been empowered to make these kinds of decisions, higher level management should be involved to calibrate how much slow down you're willing to put up with for future agility. The calibration you're doing is this: if I fix one item of toil and ship just one feature (instead of two) this release cycle, then in the next release cycle I can ship four features. Humans are not great at that kind of bird in the hand versus birds in the bush thinking so you'll need to figure out what works in your organisation.
Through our experience as consultants working with product teams in different industries, we’ve used Developer Toil Audits to focus and motivate product managers and developers to fix toil and speed up their release cycles and, thus, improve how their organisations build software. This directly improves the business by adding more capabilities and capacity to deliver more features, even in the short-term. Each time you fix any technical debt, you gain more capacity and capabilities to create new features and improve your software. This is how you use a modern software culture to increase business agility. Or, put more simply: less developer toil leads to better software, and better software leads to better business.