Software teams are in constant demand. There’s always something new to create, something old to fix, and everything to work on in between.
With so many priorities vying for attention, how do software teams ensure they make the best decision about what to work on? It starts by understanding both short-term gains and long-term benefits.
These short-term gains require an intentional focus on taking small steps that provide value quickly. Doing so leads to improved customer experience, higher engagement, better team collaboration, easier adaptability, and increased market competitiveness.Yet delivering value quickly can be difficult, and may sometimes feel impossible, especially when there’s a request for a feature that involves multiple teams or services. In this situation, it may only be feasible to deliver that feature after six months.
It begs the question: How can these long-term software projects show value faster?
Showing Value for Long-Term Technical Work
The best way to show value for long-term technical work is to conduct a deeper upfront analysis. Business use-cases or more in-depth research can help teams clearly communicate the return on investment (ROI) and justify the work, as well as the timeline to complete it.
For example, work associated with product features is more easily tied to revenue and, therefore, easier to justify and prioritize. This includes technical work that isn’t directly customer-facing, like adding a new database.
Small and repetitive tasks that represent a significant time commitment over the course of a project can be harder to justify through revenue. Tasks like refactoring, dependency upgrades, and unit testing are a critical part of long-term technical work that ensure the short-term gains can be successful.
Consider this: By doing this long-term technical work, software teams can build more confidence in their ability to add customer features more easily in the future.
It’s difficult to predict how much easier — and impossible to measure with current technology — as you can’t A/B test feature delivery speed. Theoretically, you could pursue two different approaches to a problem in parallel, but that would require different people to do it, so you couldn’t separate the difference in delivery speed from the individuals completing the work. If you tried to do it in series, you’d be unable to separate beneficial learnings from approach A in approach B. (In the future, there will be an AI solution for this. Two identical AI models could A/B test some solutions, but when they’re able to do that, they’ll be writing the code as well as this blog post!)
In the face of revenue-justified feature work, it can be very difficult to prioritize this technical work in a quantitative way. The result? Technical work gets prioritized when it has to be — and this usually happens when it’s too late and there’s a fire.
Making the Case for Good Software Hygiene
Nicholas Nassim Taleb outlines the concept of concave and convex decisions in his book Antifragile. The former suffer in the face of uncertainty, whereas the latter benefit. People, he says, prefer to consider the ordered, predictable nature of the world around them rather than the scary and unpredictable. In his world of economics, this manifests as a tendency toward stocks that are steady and stable but suffer in economic downturns, over volatile stocks that occasionally skyrocket.
Rather than dig into economics, let’s consider a more relatable idea: flossing your teeth. It’s largely become a cultural norm that brushing your teeth is a good thing. However, flossing hasn’t received the same cultural acceptance, with less than 25% of adults doing it. This is likely because, in the short term, the value uplift over just brushing is pretty small. First time flossers also face the prospect of bleeding gums. Despite this, most of us have been advised to floss. The reason for this is long-term gains; people who floss are statistically less likely to have gum disease and plaque buildup, and they have fresher breath.
Unlike our teeth and flossing, we don’t grow up with people telling us to “write unit tests, do the simplest thing that could possibly work, and be considerate of naming.” Many business leaders remain unaware that over time, ignoring software hygiene can lead to problems. And if leadership doesn’t see the value in something, it will always struggle to be prioritized.
Creating a Culture of Quality-Driven Behaviors
To help business leaders see the value in continuous software hygiene, development teams must define and justify the value of a set of behaviors that drives quality into a code base, instead of faster, short-term delivery. The benefit is quite simple: not losing revenue in the future when feature delivery slows and outages take longer to resolve.
Unlike gum disease, typical employee churn means the negative side effects of poor software hygiene won’t necessarily be seen by the people making the decisions.
The solution needs to be approached from multiple angles, including:
- Educating leadership on the long-term benefits, referencing books such as Accelerate for support.
- Giving teams the training they need to learn the skills and the time to implement them. A good rule of thumb is that 20% of a team's work should be focused on preventative technical efforts.
- Creating a culture of software quality, open feedback, and good software hygiene.
These three points are simple to write down, but by no means simple to implement. Changes of this size and scale, especially to culture, are difficult, but the results are worth their weight in gold.
Enabling Software Teams to Focus on Long-term Value
Leadership needs to drive organizational change by encouraging all facets of the company to embrace the benefits of long-term technical work through demonstration, not mandates. By embodying the new culture, they allow others to learn through example and start to demonstrate it themselves.
Before you know it, people will react to colleague pull request feedback about adding unit tests the same way someone does when they are the only person being offered a mint.
Contact us for additional support on your software hygiene journey.