Iteration 0

Iteration 02017-10-12T22:05:27+00:00

Iteration 0 Workflow

Context

Summary

Provide a summary of this practice.
Iteration 0 is a special iteration carried out at the start of the release that prepares the team and environment for the development and delivery work to be carried out during the release.

Purpose

What is the overall goal or intention of this practice?

Iteration 0 (‘Iteration Zero’) ensures that the team are fully prepared to begin work on a release. It is designed:

  • To create a working environment that actively supports delivery.
  • To create a conceptual framework within which the team’s work will be efficient & effective.
  • To create a team that will work productively & reliably.

SLA

What are the schedule, cost, quality, frequency, performance or other expectations for completing this practice?

Frequency: 1 per release.

There is no fixed duration for Iteration 0. It will depend on:

  • The size and complexity of the release.
  • The complexity and novelty of the items in the Release Backlog.
  • The experience of the teams, including not only their technical abilities but also their history as a team.

An experienced product team working in a well-established area may often complete Iteration 0 in a week.

Exit conditions

What must have happened or been delivered for this practice to be considered complete?

  • The working environment that actively supports delivery.
  • An efficient & effective conceptual framework for the planned work.
  • A team that will be able to work smoothly & reliably.

Entry conditions

What pre-conditions must be met before this practice can be used?

  • The release has been identified and defined in outline (scope, objectives, timeline, etc.).
  • The release stories are reasonably mature.
  • The release team has been assembled, though they may not have been organised, briefed or prepared.
  • The necessary tools, data, environments, etc., are available (though not necessarily in a suitable form for immediate use).

Outline process

This view shows a simplified version of this process. For full details, explanation and advice, click on the ‘Detailed process’ tab. For background such as entry and exit conditions, click on the ‘Context’ tab.

#StepInstructions
1Organise team
  1. The team is mustered.
  2. The team workspace & facilities are created.
2Set up management environment.
  1. Set up & populate management tools:
    • Repositories.
    • Logs (risk, issues, dependencies, etc.).
    • Communications.
    • Work spaces.
    • Meeting spaces.
    • Task board.
  2. Set up contact with external stakeholders:
    • Identify external reviewers & approvers.
    • Agree participation & reporting.
    • Agree sign-off process.
    • Identify contacts & SMEs.
    • Schedule standard meetings.
3Agree design approach.
  1. Agree alignment with architecture.
  2. Set design goals.
  3. Review impact of critical, innovative and complex stories.
  4. Agree design standards.
4Agree technical approach.
  1. Identify outstanding technical debt.
  2. Agree automation approach.
  3. Set up technical tools, data & repositories.
  4. Set up technical environments (development, test, etc.) & support tools.
  5. Check required inputs are in place.
  6. Agree the team’s ‘Definition of done‘.
5Agree test strategy.
  1. Walk through iteration & stories.
  2. Agree Test strategy.
  3. Document agreed test strategy.
  4. Identify and schedule the creation of required test scripts and data.
6Implement foundational stories.
  1. Identify gaps in readiness for release, such as:
    • Knowledge & skills.
    • Systems, tools data.
    • Facilities.
    • Technical resources.
    • Management facilities.
    • Etc.
  2. Remove or compensate for gaps.
7Train team.
  1. Identify each team member’s training needs.
  2. Schedule training.
  3. Complete training.
  4. Liaise with SMEs to provide other skills & knowledge.
8Test drive.
  1. Test-drive the working, technical & managerial environments.

Detailed process

#StepByOutputInstructionsNotes
1Organise teamIteration Lead.

Team.

Team in place.
  1. The team is mustered.
  2. The team workspace & facilities are created.
  • Ensure that remote and distributed teams are also included in plans from the start.
  • Make sure that the team is assembled as early as possible.
  • Actively involve all team members in Iteration 0.
2Set up management environment.Iteration Lead.

Team.

Management environment.

Populated management controls.

  1. Set up & populate management tools:
    • Repositories.
    • Logs (risk, issues, dependencies, etc.).
    • Communications.
    • Work spaces.
    • Meeting spaces.
    • Task board.
  2. Set up contact with external stakeholders:
    • Identify external reviewers & approvers.
    • Agree participation & reporting.
    • Agree sign-off process.
    • Identify contacts & SMEs.
    • Schedule standard meetings.
3Agree design approach.Iteration Lead.

Team.

Architects.

Agreed iteration design goals & standards.
  1. Agree alignment with architecture.
  2. Set design goals.
  3. Review impact of critical, innovative and complex stories.
  4. Agree design standards.
4Agree technical approach.Iteration Lead.

Team.

Populated technical environment.

Operational technical tools.

  1. Identify outstanding technical debt.
  2. Agree automation approach.
  3. Set up technical tools, data & repositories.
  4. Set up technical environments (development, test, etc.) & support tools.
  5. Check required inputs are in place.
  6. Agree the team’s ‘Definition of done‘.
5Agree test strategy.Iteration Lead.

Team.

Documented & agreed Test Strategy.
  1. Walk through iteration & stories.
  2. Agree test strategy.
  3. Document test strategy.
  4. Identify and schedule the creation of the required test scripts and data.
 An Agile test strategy will generally include:

  • Scope and goals of testing.
  • New and changed areas of functionality to be tested.
    • Including non-functional requirements.
  • For each work area,:
    • Types and levels of testing.
    • Scripts.
    • Test data.
  • Test schedule and milestones.
  • Test environments, repositories & technologies.
  • Deliverables (reports, metrics, etc.).
  • Test organization and resources:
    • Test teams:
      • Iteration team testers & lead.
      • QA testers & lead.
      • UAT test lead.
    • Roles and responsibilities.
    • Interfaces & hand-offs.
  • testing risks and risk mitigation plan.
6Implement foundational stories.Iteration Lead.

Team.

Operational team and technical environment.
  1. Identify gaps in readiness for release, such as:
    • Knowledge & skills.
    • Systems, tools data.
    • Facilities.
    • Technical resources.
    • Management facilities.
    • Etc.
  2. Remove or compensate for gaps.
7Train team.Iteration Lead.

Team.

SMEs.

Fully skilled & experienced team.
  1. Identify each team member’s training needs.
  2. Schedule training.
  3. Complete training.
  4. Liaise with SMEs to provide other skills & knowledge.
  •  The Agile deal is always to have all skills & knowledge available within the team.
  • It may be preferable to adapt the team or the release to achieve this, rather than rely on external SMEs.
8Test drive.Iteration Lead.

Product Owner.

Team.

  1. Test-drive the working, technical & managerial environments.
  • Actively involve all members of the team, including:
    • Users.
    • The Product Owner.
  • E.g., by walking through the development of a sample story and/or by fixing known bugs

Issues and risks

What are the key concerns in making a success of this practice?

  1. There is no standard for Iteration 0.
    • The tasks outlined here are only examples of what may be required to achieve the exit conditions.
    • The team must identify for itself what it needs to achieve success.
  2. There may be no distinct end-point to Iteration 0.
    • As each task is completed, the team members involved may be freed to start on stories, test preparation, etc.
    • Conversely, some team members may continue to work on foundational stories for a long time after the rest of the team have begun to implement stories.
  3. Although Iteration 0 is formally a release-level process, the needs of different iteration teams are likely to be different, and likely to be met by those individual teams, possibly without much coordination with other iteration teams.
  4. In a complex release or with a relatively new team, it may be desirable to perform a second Iteration 0 later in the release:
    • To reinforce the new foundations.
    • To correct major mistakes and omissions.

Leave A Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Want to do more than just build systems?