The Fast Start Guide To Troubleshooting Your Iterative Development Process
I didn’t like the opening line to this article. So I iterated on it.
All of those lines I wrote were true and accurate – just not the best way to start off this article. However, they accidentally gave me the perfect example of an iterative development process. If something doesn’t work the first time (or even if it does, just not as well as it could have), you learn from your mistakes and make adjustments for your next try.
If you’re like most PMs, you probably already know that iterative development is much easier said than done, and building a successful process involves plenty of iteration in and of itself.
Visor, a project management tool that gets all your data in one place (even when your people aren’t) is here to make that easier with this quickstart guide to troubleshooting your iterative development process. No matter where you’re struggling, we’ll help get you unstuck and back on the road.
What is iterative development and why do you even need a process?
Any situation where you learn from your mistakes and try again with improvement in mind is, technically, an iterative process.
Playing the cello, pulling off an ollie, and learning to sew are all examples of iterative processes. You play a song, try the skateboard moves, or make a dress and, inevitably, you make mistakes. But you examine what you did, spot the mistakes, figure out what went wrong, and work to avoid those same mistakes the next time.
When we refer to an iterative development process, we’re talking about using this same style of trial-and-error methodology in software development. Iterative development is the core of Agile methodology, in contrast to Waterfall development, which tends to be very linear.
It can help you respond to problems much faster than a more structured approach, and fix them on the fly. It can also help your team be more aware of issues, ranging from communication problems to chronic bugs, and work to improve them in small ways over time.
But even with this agile, responsive way of creating software and writing code has downsides. One big one is that, where Waterfall offers dedicated time to note problems after a project, Agile has so many sprints, retrospectives, and after-action reports that actual improvement can get left behind or lost in the noise.
But that’s a problem that, luckily, we can help you fix.
Where Troubleshooting Helps
Below, we’ve gone through some of the broad categories where we see PMs expressing frustration in the iterative development process, and offered some troubleshooting to help you start solving the problem.
The original scope was inaccurate
Often the easiest problem to spot, but one that can completely derail all the following work. Small issues, like disconnect from objectives or unrealistic goals, are usually quick fixes. It becomes a bigger problem when you need to juggle stakeholder investment in inaccurate scopes or have systemic issues in the asking process.
Work on tackling this issue:
- Give team leads an opportunity to connect directly with stakeholders to find mutual feasibility. Detailed reporting can help you come prepared.
- Establish a more rigorous requirements gathering and management process, involving stakeholders more closely and regularly to ensure clarity and stability of requirements.
- Revisit your estimation methodology to create more accurate predictions.
You’re suffering from communication gaps
It doesn’t matter how tight your process may be: if you’re having breakdowns in communication, you’re not utilizing your process properly. This is a very common way teams accidentally undermine their own work.
Invite better communication:
- Implement regular and structured communication practices such as daily stand-ups and retrospectives. If you’re already using these methods, consider looking into them to make sure they’re doing what you need them to.
- Use tools like Visor to improve data reporting to create clarity.
Visor’s dashboard view
You can’t identify where something has gone wrong
Sometimes you see the result of a problem way before you know what the problem is. This is especially true of bug fixes, but it can crop up in unexpected situations, too (unhappy clients for surprise reasons, anyone?)
If you’re struggling with this, consider:
- Ensure that unit, integration, and system tests are comprehensive and regularly executed.
- Strengthen the testing process by incorporating automated tests, continuous integration, and continuous deployment pipelines.
- Talk to all team members: someone else may have noticed something you missed, or may not be speaking up about a problem that’s obvious to them.
You’re spotting your mistakes, but not learning from them
This particular problem comes in two forms. In the first form, you identify your mistakes but don’t know what to do about them. This may be because you’ve never needed to solve this particular issue before and feel paralyzed, or it may be because something is blocking your ability to handle it.
In the second form, you’ve identified your mistakes, you know what to do next… and that’s where your process stalls out. Usually this is the result of information silos.
In either case, you can address the problem:
- In the case of new problems, you may try to find someone outside of the team who can assist you. This is a fantastic opportunity to find a mentor in your field who can help introduce you to new ways of problem solving.
- Go on a silo hunt to try and find places where information “goes to die.” Is it a messy comment process? Maybe a document nobody reads? Follow up on anything still open.
- Create a stage of your workflow where your team documents and registers their process. Put a specific stakeholder in charge of following up on documented issues.
You’re coming to the wrong conclusions about mistakes
This can be an especially frustrating problem to have in your iterative development process, because it often feels as though you’ve already tried everything, but nothing is working.
To see your mistakes with fresh eyes:
- Tap in a different leader for this process. Deputizing more junior members often leads to big breakthroughs when the usual methods just aren’t working.
- If something feels right, maybe it is… just not for this scenario. Try putting the suggested fix on hold and then recycling it into a similar (but unique) situation later on.
You’re buried under tech debt
A final boogeyman in the iterative development closet is a familiar one. You know the issues, you know what you need to change, but you’re dealing with so much technical debt that you just don’t have the ability to implement changes.
A backlog in Visor
Start sifting through the issues:
- Spend some of the team’s time on a backlog clear out.
- Allocate time in each iteration for refactoring and addressing technical debt.
- Use tools and practices like code reviews, automated testing, and continuous integration to maintain code quality.
Iterative Development can Unlock Your True Potential
Iterative development is all about change over time. (Recognize that sentence from my rejected first lines? There’s recycling in action!) Don’t let the usual sticking points be what holds your team back from their best work yet.
If you’re looking for a way to gain more insight and clarity around your team’s processes, try Visor. We’re a spreadsheet-inspired app that helps Jira users (and non-Jira-users!) connect and develop more detailed reports with better actionability. Try it for free.
If this article helped you out, read more about improving your processes: