We often think of duplicate work as a bad thing. Is this the case in an Agile setting? Agile is a very different way of working and developing. One core concept of Agile is to avoid the idea of working in phases. There is no definite period where you do coding, testing, etc. Instead, you have a constant state where each of these phases overlaps. The goal is for all phases to happen concurrently.
Imagine someone designing a car for the first time. While the design is taking shape the builder begins to put the car together. The builder may not know what is coming next, or even what the final car will look like, but they build as they go. The design phase and building phase happen concurrently.
The same is true of an Agile work environment: every project is completed piece by piece. You have a vision in mind of what you want the end product to look like, and getting there involves designing and building parts incrementally. This allows you to review each piece of the project as it is completed, and it makes it easier to pivot depending on what the customer values at the moment.
Getting Comfortable with the Unknown
In an Agile setting, you need to be comfortable with the unknown. Imagine coding functionality while the design is still taking place. Typically, in a traditional Waterfall methodology, no coding would happen until all designs are complete. In Agile, you code while the design is still in progress. Uncertainty exists for the coder each step of the way.
In Agile, it ok for work to happen in many stages at the same time. The duplicate work is what enables the development to take place incrementally.
Starting without a Firm Answer
Team members have to be comfortable knowing they can begin working on something without having a firm answer. While you may (hopefully) have a vision of the project and an end goal in mind, you may not have an answer to every question that arises. As you work the answers will start flooding in, resolving many of the outstanding issues facing the development team.
If you are following Scrum, it is likely that most of those answers will roll in during the Sprint. As you learn to work through the uncertainty, duplicate work will occur. This is a good thing.
Building a Puzzle
Think of Agile as a large puzzle. Every member of the Development Team takes a section of the puzzle, sorting the pieces and putting them all together to complete their portion of the puzzle. Sorting and putting together the pieces is duplicated work but, in the end, the sections come together and voila! The puzzle is completed!
In an Agile setting, the design, coding, testing, and deployment of each piece of functionality eventually leads to a great final product. Overlapping work is completely acceptable in Agile. The goal is for the team to work through a Sprint in phases, finishing the puzzle chunk by chunk. We have a Sprint release burn-up template to help you keep track of what was completed in each Sprint.
Our Agile coaches and Scrum Master classes can help get your team used to working in phases and stop worrying about duplicate work. Contact us today to speak with an Agile expert!