Laying a Foundation for Successful Software Development
There’s a persistent belief many executives seem to have about their software development process. They think that tasks move through it linearly, from start to finish. Although it may take longer than they’d like, they believe the process is nevertheless orderly. Teams generally follow the steps as laid out and, one by one, their tasks get checked off
That’s the myth. In reality, when we model the process flow, it often looks less like a neat line and more like a Rorschach test.
Teams open and close sprints not in standard two-week intervals, but at almost random points. Instead of getting pointed and then developed, tasks are pointed, worked on, re-estimated, worked on some more, and then “trued up.” Tasks sometimes even skip whole steps like QA, then only get updated en masse at the end of the sprint.
As a result, none of these sprints are uniform, rendering any sprint-based metrics useless at best and misleading at worst. That means there’s little point in trying to introduce any meaningful improvements to your development process. Instead, what you need to do first is put in place a foundation that makes your whole process more observable, predictable and efficient.
High performing teams don’t happen by accident
In one example, we evaluated 80 different sprints across six development projects using over a dozen different metrics and found that teams are not following their own processes. We see that same pattern play out over and over again. In fact, tasks moved backwards as often as 20 percent of the time, raising serious questions about how much support these teams receive during development.
In contrast, the highest performing teams showed that the output of their processes were directly linked to their adherence to their processes. In other words, they value a consistent development lifecycle that makes it possible to objectively observe their performance, predict what will happen, and identify points of improvement. This can be broken down into our three pillars:
- Observable: Teams must understand and follow processes consistently. Otherwise, it’s impossible to accurately measure their effectiveness.
- Predictable: Teams that follow a standard process become predictable. That is, they can say when features will be delivered or when delays are likely.
- Efficient: Once teams are predictable, they can focus on areas of their process that can be improved, helping them increase and deliver value faster.
But let’s not stop there. Instead, let’s break these pillars down further and explore some common mistakes your team may be making, as well as some best practices you can follow to lay your foundation for a better process.
An observable process is a consistent process
This pillar comes first for a simple reason: if there’s any confusion around how your team should follow your process, then they’ll be much less likely to adhere to it. The result of that can be skipped tasks, uneven sprint cycles, and general inconsistency. And if that’s happening, then there’s no way you’ll even be able to measure your team’s performance as they work their way through your development process, which means you won’t be able to introduce any meaningful improvements.
What are some signs this may be an issue? You could start by considering sprint consistency. Do they begin and end on the same days of the week? If they’re all over the place, then your team may have a harder time preparing for each one, coordinating with other teams, and establishing a productive rhythm. This can keep them from properly getting their work done. The same can be said for the length of the sprints. It’s important to establish consistency throughout the process so that no one gets confused.
You should also look at how your team is handling its tasks. If any are left unfinished, your team shouldn’t just be removing those points. That creates a misleading picture of that sprint’s productivity. Instead, those tasks should be rolled over and those point estimates should be left unrevised. Likewise, you should be aware of any parts of tasks that are getting skipped over. Ideally, all of your tasks will proceed through their appropriate statuses without issue. Unfortunately, that’s not always the case. You can guard against this by setting up audits for each task to make sure each team member is appropriately adhering to the process.
Staying on top of your processes keeps you predictable
Once a team understands how to follow the development process, you’ll next want to make sure they’re operating predictably within that framework. While this definitely overlaps with the consistency emphasized above, it also takes it a step further toward building a more streamlined and efficient operation. The goal here is to have a team that not only knows the process, but can reliably tell you how long it will take them to get through each task.
There are a few ways you can accomplish this. For instance, a big red flag you should take care of quickly are any tasks that are moving backwards. This not only torpedoes predictability, but can also be a sign of other issues. A good way to get around this is to spot audit any tasks moving the wrong way and remediate. You should also be aware of the other extreme: when a large number of tasks all get marked done in a single day. This can indicate bulk updating. Again, auditing and remediation can help address this.
There is also the issue of scoping. There are two major ways this can emerge. One, if teams are changing their point estimates multiple times, they may just be bad at it or attempting to right-size the task. Either way, you should put a stop to this by establishing a policy of not changing points during a sprint. And two, if cycle times are varying widely, this can be another sign of poor scoping. You can fix this by monitoring how long each task remains as a “work in progress,” then adjusting the scoping as needed.
Supported your team to set them up for efficiency
When you reach this last pillar, you’re finally ready to start focusing on tangible improvements you can make to your process. But this isn’t really about squeezing more work out of your team or cutting out fat. Those parts are a given. Instead, ensuring a more efficient development process, along with better adherence, should be about making sure your team is set up for success.
Start out by looking at your task acceptance rate (the percentage of tasks marked completed at the end of the sprint). If this number is consistently below 60 percent, then that’s a strong sign that your team is taking on too much. Address this by reducing your team’s commitments until their acceptance rate is regularly above 80 percent. Go ahead and take this same approach when it comes to your points acceptance rate as well.
Similarly, it’s important to make sure that your team’s commitments remain similar from sprint to sprint. Anything otherwise can indicate poor process adherence, scoping, or prioritization, and will lower your efficiency. And stay aware of when a large number of points (70 percent or more) are getting added halfway through the sprint. That can be hard to handle for most teams. Try to instead add new tasks to the backlog. If you have to add something mid-sprint, only do it on a priority basis.
Just give me the key takeaways
Here are some high-impact changes you can make today to start laying your foundation:
- Begin by making your process observable. Make each sprint the same length to establish a routine, help teams prepare, and make it easier to track work.
- Smooth out your process to make it predictable. Stay on top of any tasks that aren’t being followed through documentation, monitoring, and remediation.
- Make your team efficient by setting them up for success. Make sprint commitments achievable so that teams can meet their goals. If they aren’t, it may indicate something is wrong.
There you go. Obviously, all this isn’t something you’ll do in a day. Rather, improving your development process is a bit of a process itself. Take it a step at a time by putting it all together into an action plan, reviewing your progress after a few months, then making adjustments.
And when you’re ready, reach out to us to get an even more thorough reassessment of your process.