The seven core techniques of agile development can be thought of as the moves in the game of agile development. In any game there are always just a handful of core techniques or moves. Then the players learn those techniques and use them in appropriate combinations to play the game.
For instance, in the game of basketball, the core techniques are dribbling, passing, shooting, guarding, and rebounding. All players of the game use those techniques. As players get better, they use these techniques more effectively and in more imaginative combinations.
In my previous article The 7 Core Techniques of Agile Development, I listed the core techniques that agile developers need to become skilled in and use in various combinations to develop new applications. In this article, I’ll describe the first two techniques -- brainstorming and process mapping.
The agile development team is a mix of technical and business people who use structured brainstorming to create an inclusive process to bring together the knowledge and insights of all the team members. The brainstorm technique lays down a set of rules that govern how the team leader leads, how team members interact, and how the team approaches problems. These rules stimulate the creative problem-solving abilities of the team and allow the team to generate a stream of ideas that then becomes the raw material from which the system design emerges.
Brainstorming is a direct response to the overwhelming complexity of the design tasks that we face in business today. People working individually on parts of a problem often cannot develop adequate system designs in the face of such complexity. However, using the brainstorm technique, project teams with the appropriate mix of business and technical people can pool their knowledge to come up with consistently competent system designs. A basic set of ground rules for brainstorming is:
The basic brainstorm technique uses four steps to organize the work and generate ideas and application designs. These are illustrated in the diagram below.
- Attendance of all team members is expected
- Check you baggage at the door
- Start and end sessions on time
- Every session must have an agenda
- Everyone is of equal rank while in the session
- Team member comments will be kept confidential
- Deal with issues, not personalities
- Everyone participates, no side conversations
- Reach consensus or request a decision from project sponsor
Creative thinking must come before critical thinking! Keep critical thinking separate from creative thinking or nothing will happen (creative thinking is hard, don’t let it get bogged down with critical thinking).
Process mapping defines a set of steps for identifying the work processes that occur in a company and the connections between these processes. The team first identifies the highest-level processes and then the sub-processes within each high level process. They define the data inputs required by each process and list the sources of the data. Their work also defines data outputs generated by each process and lists the destinations of the data outputs.
This technique uses diagrams to create a visual map of the tasks in any process and the data that flows between the tasks. This visual map creates a common reference framework for business and technical people to discuss issues and discover opportunities for process improvements. Process maps are far more effective than written documents because they use graphic means to communicate a lot of information quickly and accurately. The development team uses process maps to capture brainstorming ideas and designs for new workflows and system process flows. The exhibit below shows an example of a process map diagram.
These two core techniques compliment each other and are often used together. In the next article we’ll look at the next two core techniques -- data modeling and system prototyping. These next two techniques also complement each other and are also often used together.