Concept: Micro-Increments
A micro-increment is a small, measurable step towards reaching the goals of an iteration. A micro-increment represents the outcome of a few hours to a few days of work performed by one or typically a few people collaborating to reach a goal.
Relationships
Main Description

Personal contribution on an OpenUP project is organized in micro-increments. A micro-increment represents the outcome of a few hours to a few days of work for one, or typically a few people collaborating to reach the goals of the iteration. The concept of a micro-increment helps the individual team member to partition their work into small units that each delivers something of measurable value to the team. Micro-increments provide an extremely short feedback loop that drives adaptive decisions within each iteration.

A micro-increment should be well defined, and you should be able to track daily progress of each micro-increment. Micro-increments are specified and tracked by a work item. Change sets represent the physical outcome in terms of the files are modified as a part of completing the work item. Let’s have a look at some sample micro-increments:

  • Identify Stakeholders. Defining the Vision is a task that can drag on for weeks, so to ensure that you make and track daily progress, divide the task into small and well-defined micro-increments. Describing and getting buy-in on what Stakeholders to put into a Vision document is a meaningful result, and may take a few hours, or at most a few days, and thus represents a suitable micro-increment.
  • Develop Solution Increment. Defining, designing, implementing, and testing a use case or even a scenario can take weeks or longer. To ensure continuous progress, we seek to divide the work into smaller increments, each of which can be done in a couple of days. A more suitable micro-increment may be to only define, design, implement, and test a subflow of a use-case or step within a scenario.
  • Agree on Technical Approach for Persistency. Agreeing on your technical solution may take quite some time, so we need to narrow the task to something that can be defined and agreed to in a short time. One way to partition the work is according to the issues you need to resolve, such as persistency or reporting. This micro-increment will probably involve defining requirements, surveying available assets, prototyping, and documentating the decisions.
  • Plan Iteration. This micro-increment could include setting up a meeting for creating the iteration plan, doing some preparation for the meeting, such as reviewing candidate work items, coaching the team through the iteration planning meeting, and posting the iteration plan for easy access. The end result is something complete and measurable, a posted plan that has buy-in from the team.

Your application evolves in micro-increments through simultaneous execution of a number of work items. By openly sharing progress on your micro-increments through daily team meetings and team collaboration tools, you achieve the transparency and insight into each other’s work required for effective teamwork. At the same time, you demonstrate continuous progress by evolving your application one micro-increment at the time.

OpenUP provides a set of activities. Each activity is captured as a set of tasks, steps within tasks, and guidance. Even thought micro-increments are not an explicit construct in the process, you will find descriptions of how to carry out a set of related micro-increments that are commonly found in projects within the activity. OpenUP does not provide a complete description of potential micro-increments, and each organization should consider adding their own ‘recipes’ for commonly occurring micro-increments.

OpenUP provides a powerful learning tool and makes it easier to find relevant guidance by outlining when you are most likely to carry out various tasks. This is done through a visualization of the delivery process which provides a time-based organization of the tasks within the context of a Project Lifecycle. As an example, you are more likely to agree on a technical approach early in the project. This doesn’t mean you wouldn’t make technical decisions late in the project. A process is like a map, use it to understand the big picture and as a reference, but when reality and map don’t match, trust reality.