I thing I have noticed with individuals that I believe are great team members is that they manage or lead based on sets of data and not just points of information. It has been noted that humans are exceptional in pattern recognition and spatial analysis of those patterns. One news item that got me re-considering this train of thought was the news item where gamers had helped to quickly solve a Protein folding problem with the HIV virus.
In thinking about how humans can recognize and manage by patterns, I think that Agile uses this pattern recognition strength to help ensure that agile projects can be successful. How does Agile do this? I believe there are three ways:
- Agile helps to create patterns for review
- Agile formalizes the review of these patterns
- Agile minimizes the use of non-pattern deliverables
1. Agile helps to create patterns for review
One thing that is implicit in the Agile processes but is not talked about overtly is that all of the Agile processes help to create patterns. Delivering in iterations, User Story Mapping, Kan Ban Boards, Story Slicing, and other practices all create visual patterns that people can review and consume easily. Many of these processes feed into the principles of Visual Project Management with Burn-Up and Burn-Down charts to help communicate project status easily with client Stake Holders. Almost all non-construction tasks on Agile projects result in the creation of Visual patterns that can be used for management and decision-making.
2. Agile formalizes the creation and review of these patterns
Agile also understands that the creation of these patterns needs to be done repetitively and according to a schedule. Like any good experiment, statistics need to be gathered in a structured way so that the numbers of factors changing at one time is minimized. Also understood is that significance of an aberration in a pattern is not after one point but after a succession of points in a larger series of data. To do this we must have multiple iterations of the same size to ensure that comparisons can be made between iterations.
Agile also understands that the creation of these patterns is just one half of the work. By scheduling retrospectives and planning meetings at consistently recurring times for every iteration, Agile ensures that the patterns will be reviewed and actions will be recommended and undertaken if required.
Agile minimizes the use of non-pattern deliverables
Just as important as the creation of these patterns are the minimization of non-pattern deliverables. Agile understands that these deliverables provide inefficient communication of information and their use should be minimized. Any large written document without patterns should be minimized and attempted to be translated into a pattern. These documents are typically the large up-front documents that defined requirements or architecture previously.
Typically you will find that any documentation that can generated patterns are encouraged in Agile. (Such as User Stories and Automated Test Cases)
What is a pattern?
To me a pattern follows these two simple rules:
- It can be displayed at a reasonable and readable size on an A3 sheet of paper or on a wall where all the stickies can be easily read and seen within an individual’s field of vision
- It is either a table, graph, diagram, collection of stickies, or a picture
The Agile Pattern Mind set
The last piece of the puzzle is the Agile Pattern Mind set that is required to use these patterns that are created. As mentioned earlier, the great team members on the Agile projects know that some actuals to estimates will be higher and some lower. The experienced team members know when something is not just a data point, but when it is a trend and an issue and requires some action to be undertaken. These team members also know that you can’t over-react on every individual issue and overage or else you will drive your team crazy.
I believe this skill of managing by trends in Project Managers applies equally to both Traditional and Agile Project Managers. The Agile methodology just has a process that creates the patterns that perhaps allows these decisions to be made easier and at the correct time.