Eliminate These 5 Wastes to Optimize Your Software Development Once and For All
Garbage in the IT systems is the opposite of value (an item delivered to the customer through which the customer obtains measurable benefit). So every feature, or functionality, or process that neither brings value nor is used will be considered garbage and should be eliminated from the system/ product/ process.
Five side issues in the software development
We will explore the meaning of five types of garbage (side issues) in the software development, which will help you to get rid of them, or to reduce their influence regarding Agile (Scrum) development. You can face these 5 side issues in the Sprint planning phase, or in the Sprint iteration.
Garbage #1: Partially done work
This includes the code that is not restructured, or is not tested (unit, or integration test), code that is not completely documented, code that can’t be deployed, etc.
Possible reasons include: the wrong story is prioritized; the problem is too complex, there is waiting time between the tasks of the story, there are false dependencies within a story, canceling an existing story that is almost done and getting a new story into the Sprint, incomplete/inadequate tasks identification etc.
You can eliminate these issues if you perform the tasks in parallel, as much as you can. If you stuck in deadlock you should ask for assistance. Your teams should be multi-disciplinary, so they can cover different assignments. You should discuss the functionality of the tasks with the Product owner, and then to prioritize the user stories in the upcoming Sprint. This means permanent cooperation between your team member and the product owner. When you will prepare the set of user stories for the upcoming Sprint, don’t change their order during the sprint. That will lower the development speed and will bring unnecessary work to the team.
Garbage #2: Extra features
This means that your team produces more items that it was being asked for. You should have in mind the Pareto principle (80% of users use only 20% of the product features).
Possible reasons include: not understanding who the target audience of the project is; wrong priorities of features and user stories; low understanding of the project goals and objectives; over-engagement of the team members.
You can eliminate these issues if you carefully plan and order the product features, based on the factors such as their cost and their value. Also – you and the product owner should determine the real target users of your project. The product owner should have the sole responsibility about the product backlog and you should prioritize the items (user stories) in the product backlog – together with the product owner.
Garbage #3: Hand-offs
This means that you need to forward the work from one person to another, after completing the first person’s work.
Possible reasons include: the information is partially hidden; the tasks can hardly be described as user stories; teams are placed in different locations.
You can resolve these issues if you place all tasks in the same location, thus reducing the transfer of items; you should keep the relevant wireframes on hand; it would be good if you have multi-functional teams that can handle different types of tasks at the same time, so the handoffs can be lowered.Garbage #4: Delays
Garbage #4: Delays
This includes all possible reasons that bring postponing of the project activities, or delays the due to the value-added activity.
Possible reasons include: not clear client requirements; a large number of features taken in development; dependencies among the new and the ongoing tasks (features); not sufficient number of personnel (team members); possible external obstructions of the Agile process.
You can resolve these issues if you take tasks (features) one by one to be developed. This will enable the team to resolve issues one by one. Also, you should determine the important processes at the start of each Sprint. E.g. you can make a review only of the high complexity code. You should ensure that you have skilled personnel as your team members for all types of tasks (features).
Garbage #5: Task switching
This means that your team switches from one task to another, without completing the first task completely.
Possible reasons include: insufficient coordination among the development team and the Product owner; the analysis of the features (user stories) is not well-done; there are disturbances in the ongoing tasks; the same team works on several different software projects.
You can resolve these issues if you have permanent teams (not shared) and they are concentrated to fix assignments. Also, if you split the user stories into several tasks – you should elaborate this in your daily Sprint meetings. Disturbances can occur due to many reasons, including lack of complete information about the task, software dependencies, etc. You should create detailed tasks in the sprint planning meeting and identify any external dependencies in advance.