Emergence Stages

From AgileMe
Jump to navigation Jump to search


As teams mature in their approaches to developing software solutions they can go through several stages of development, which are described below.

Stage 1: Breaking Through

This level is synonymous with dealing with ambiguity at the start of a project or product when little is known about the problem let alone what the solution might be. An ambiguous situation can be seen as being an uncomfortable one when there is little to "cling" to and rationalise. When viewed this way the tendency is to want to converge on the solution quickly in order to make sense of the ambiguity and make the unknown, known. Most people try to do this through traditional planning activities to draw up detailed specifications and plans that point to a solution on paper, which can then be implemented. This activity can lead to "analysis paralysis" especially if not enough can be known about the solution or it is too complex for it to be clearly articulated.

To break through this paralysis, the guidance is to go ahead and build something even if it will be deficient at this stage and then continually refine it based on the feedback generated. This can seem to be counter-intuitive as "how can you possibly build something if you don't know what you are building?" However, once something is created it can then be inspected and refined with successive iterations, breaking the paralysis and also guiding the way based on the needs rather than the predicted assumptions. It can also help to calm the anxieties as the team are actively building something rather than just talking about it and trying to conceptualise the solution.

The challenge here is to breakthrough the fear and do something practical, and the main activities are rapid prototyping and iterating.

Stage 2: Harmonising

At this level there seems to be 2 levels of harmonising:

  1. Harmonising At The Team Level - Team members are learning how to work and actively collaborate with each other with activities such as pair programming, mob programming and begin to build trust in the team that supports each other as a close knit social unit.
  2. Harmonising At The Multi Team Level - Teams begin to understand the other teams in the program and reconcile their respective skills and capabilities to provide harmony in a program of work. The teams begin to manage dependencies between teams and support each other as a community. This may also present as dynamic re-teaming, as groups of people in the community form small teams to tackle specific problems in the program.

Challenges here include collective code ownership and giving up personal objectives in order to support the community objectives.

Stage 3: Evolving

At this level the program of teams are becoming more proficient often generating deep insights about how to improve the work processes and tools to achieve the work more efficiently. The community of teams takes accountability for the work and develop a strong capability to experiment, seek feedback and refine products to the needs. Increases in productivity and quality are attained with a maturing approach to the work that is sustainable.

Challenges at this level include curating the product, the processes and the feedback, often making difficult decisions about what adds value and discarding what detracts from the value.

Stage 4: Transcending

This level indicates a leadership of the product and program where novel concepts and approaches are continually developed, refined and utilised that are sustainable for the longer term.

See Also

References