In this episode, we continue a tour of patterns for Agile. We will see definitions we need to set as well as tools for success. A deeper review of this can be found on the DZone web site. However, this should give you a good start on a checklist of items to include. When you skip any of these, you reduce your odds of a successful Agile project.
Increments
We have talked about this before. However, it is important to call out as one of the patterns for Agile. We need to set the incremental schedule we will use for things like sprints and the related estimates. The team works better when they can plan based on set time frames. An example would be the length of a sprint. This process’s key property is a set amount of time per sprint as opposed to trying to complete stories during varying lengths of time. Think about a sports match. The players will not be happy if you tell them the match will end based on some random factor instead of a set score or time limit.
Information Radiator
Communication is key throughout this process. The information radiator is our primary means of this communication. There must be a mechanism for providing the current project status to team members. This goal is often achieved through a Kanban board, whether physically in an office or digitally on a team site. The radiator provides information on the tasks, the assignments, and the current status. It should also be kept as up-to-date as possible.
Inspect and Adapt
The team will not improve if they cannot assess where they are and where they have been. This pattern is an essential step in improving over time. The team inspects what they have done and how they accomplished objectives. Next, they make changes and adapt their processes to get better the next time. This concept leads us to the next pattern.
Iterate
Iterating, in this context, is a science. The goal is to get closer to the desired objective with each iteration. It will often go hand-in-hand with the Inspect and Adapt pattern to make changes that get us closer to the desired results. When an iteration gets further from the goal, then we need to correct it the next time.
This process is sort of like guessing a number via hi-low. You make the first guess to eliminate several possibilities. For example, to guess a number from one to twenty, you guess ten first and eliminate half the options. You then proceed to halve the options again and quickly get to the number. When we iterate smartly, we have a method similar to this.
Limiting Works In Progress
We want to complete a story with each sprint. There is also a desire to squeeze in as much work as possible. On a sprint level, we want to limit items that are in progress and pushed to the next sprint. Within a sprint, we want to complete the steps as soon as possible. Then, the next step can be taken. A common example is coding a task and marking it complete. Therefore, testing or code review can begin.
Challenge of The Week: Are you missing any of these patterns?