DOWNTIME is an acronym that is used to describe the 8 wastes of product development:
These wastes result in longer development cycles, affect the quality of products, can lead to scope creep, and increase project risk.
This post will dive into the wastes that occur during mobile app development, why they happen, and how an effective development process is the key to avoiding them. Since we use an agile squad development process, we will speak to how this approach specifically helps eliminate DOWNTIME.
Defects are product issues or mistakes that produce incorrect or unexpected output. They are harmful to project velocity because they take extra time, resources, and money to fix. They arise from poor understanding of user stories, failing to fulfill acceptance criteria, poor processes, team misalignment, and lack of engineering or technical capabilities.
Defects are a reality of product development; teams can never guarantee that they won’t happen, but there are ways to reduce risk and correct defects quickly so they don’t significantly impact time or budget.
Bug reduction is inherently built-in to the agile squad methodology. Code reviews are done by developers, with the purpose of improving the quality of the code and identifying better ways to do things, ultimately enhancing the quality of the end product. Testing begins during development, meaning fewer defects when items are pushed to QA.
Overproduction is when you produce more than is necessary to achieve the desired outcome, or produce before there is a need. In app development, this typically manifests as extra features or functionalities. Overproduction is usually the result of inefficient planning processes or inability to prioritize effectively.
Using rolling-wave planning is one of best practices for eliminating overproduction. It involves delaying product decisions until you are in the best position to make them; consequently, you don’t build features or functionalities that are unnecessary. Ultimately, rolling wave planning allows flexibility, reduces risk, increases efficiency, and ultimately results in better quality products.
Additionally, rolling-wave planning allows teams to more effectively prioritize items in the product backlog, since they are making product decisions based on the knowledge available to them as the product evolves. When you use rolling wave planning, plan until you have visibility, implement, and then re-plan.
Waiting includes any factor that causes delays in mobile app development and/or delivery. This could be waiting for information or tasks to be completed, delays from external parties, inaccurate capacity planning, or resource gaps internally.
Implementing a squad-based agile approach is instrumental for reducing delays in development. Small, co-located teams are able to easily transfer knowledge, plan together and in relation to resource capacity, and avoid issues that arise from relying on third parties/outsourcing. Furthermore, sprints allow teams to break up development cycles to integrate efforts and reduce dependencies. Easy knowledge transfer, co-location, team alignment, and autonomy allow us to deliver better products more quickly with predictable velocity and lower risk.
This waste is particularly prevalent in the waterfall approach, but even agile teams are guilty of it. It occurs when project teams fail to take advantage of the wide range of talents, skills, ideas, and capabilities of their team members.
Agile principles, in general, are designed to help avoid this waste, but fully capitalizing on internal employee creativity requires creating a process that encourages it. To do this, each member of the project team has to be viewed as a creative contributor, rather than someone who only completes assigned tasks. We’ve found that the squad-based approach works to eliminate this waste.
Our squad model includes unique ideation sessions that bring together the insights of the entire squad – product owners, developers, QA, designers, etc.– to inform the direction and possibilities of the product. Additionally, all squad members are involved in sprint planning, delivery, and demos, allowing us to use the knowledge and perspectives of each person for the project.
In the context of agile development, transportation refers to hand-offs and the corresponding deficiency in the transfer of knowledge. This waste is also commonly described as relearning; one member of the team hands off code/tasks/etc. to another team member who then needs to re-learn what the first team member already knows.
The nature of squads ensures that every member of the project team shares knowledge and understands all aspects of the project. This reduces knowledge deficiencies from one member to the next, eliminates knowledge silos, and allows the team to retain knowledge for product maintenance or future phases.
Inventory refers to unusable work that has been partially completed or completed ineffectively based on project parameters. It affects project velocity and can result in budget inflation. Common causes of this include waiting, incomplete story information/misunderstanding of the story, dependencies between stories, and improper prioritization.
Since the squad model includes all team members in sprint planning and encourages knowledge transfer, each team member fully understands the purpose and functionality of the story, and story dependencies are identified prior to the beginning of the sprint. As a result, squad-based development offers predictable velocity, minimizes inventory, and mitigates budgetary risk.
In agile terms, motion refers to the decentralization of teams. While advances in communications tools have made remote and decentralized teams a possibility, there is still waste produced when your team needs to send emails or make phone calls to work through issues.
Co-location is an important aspect of the agile squad model. It helps streamline development time because teams can discuss issues face-to-face and more easily transfer knowledge, meaning solutions are reached more quickly. Rather than setting up a conference call or sending an email, squad members can turn to one another and talk face-to-face.
Excess processing is similar to overproduction, but is created when effort/time/resources are spent producing something that doesn’t add value; typically, unnecessary bells and whistles. It’s commonly referred to as gold plating.
One of the most important components of the squad-based development approach is the notion of team alignment. Every member of the squad is aligned towards a common goal and has full understanding of acceptance criteria. The principles of this process also encourage rapid and frequent delivery; there is an understanding that product development is an iterative process, and each release is meant to aim for a functional, viable product. Since the criteria for the viable product is the goal, and is clearly outlined and understood by the entire squad, the team avoids processing that doesn’t add value based on that criteria.
Squads are autonomous in that they decide how they are going to reach their goals within the boundaries of the overall product strategy. We’ve found that this practice makes our squads more efficient and creative, which ultimately results in better products.
The ultimate goal of agile is to greatly reduce – ideally, eliminate – waste in product development. The key to accomplishing this is creating a process that accounts for waste risk and is designed to mitigate it. With the right process in place, you can avoid these 8 wastes and achieve predictable project velocity in mobile app development.