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 person (or typically a few people collaborating) to reach a goal.
Main Description

Personal contribution on an iterative project is organized in micro-increments. A micro-increment represents the outcome of a few hours to a few days of work for one person (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, each of which 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 that are modified as a part of completing the work item. Let's have a look at some sample micro-increments:

  • Identify Stakeholders. Defining a shared 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 which 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, 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 you 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 that you need to resolve, such as persistency or reporting. This micro-increment will probably involve defining requirements, surveying available assets, prototyping, and documenting 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 project 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 a time.

Typically, practices provide a set of activities to be performed. Each activity is captured as a set of tasks, steps within tasks, and guidance. Even thought micro-increments are not explicit constructs in the practices, within the activities you will find descriptions of how to carry out a set of related micro-increments that are commonly found in projects. This guidance does not provide a complete description of all potential micro-increments: each organization should consider adding their own "recipes" for commonly occurring micro-increments.