Skip to content

Iteration Workflow

Jim Brucker edited this page Feb 20, 2015 · 1 revision

Iteration Workflow

Here is a minimal workflow for our iterative software process.

Iteration Planning Meeting

At the start of each iteration, the team meets to plan the objectives and work for the iteration. In the meeting:

  • decide goal(s) for this iteration. Prioritize goals based on (a) tackling risks, (b) providing value to the customer features and use cases, (c) important architecture issues.
  • define a milestone and get agreement on it
  • define major tasks
  • if you have unfinished work from last iteration, you can move it to this iteration's task list.
  • estimate workload and time required

Output: an Iteration Plan with milestone. This should be easily visible online, and recorded in your project repository or wiki.

Tasks

Your planning meeting will result in tasks for this iteration.

  • A task should be something a team member can complete in one day of full-time work. Occasionally, a task is longer than a day.
  • If a task is too big, divide it into smaller tasks.
  • Clearly define what each task is and what is the output.
  • Rank the tasks by importance.
  • Record the tasks. Major tasks go in the Iteration Plan. All tasks are "issues" in online tool.

Unplanned Tasks

  • During work you will discover new tasks you didn't think of during iteration planning.
  • Add tasks to online issues as backlog for later reference.
    • If task doesn't have to be done this iteration, then do nothing now.
    • If it must be done this iteration, add to Iteration Plan as "unplanned work" and record your progress online as you do it.

Milestones

  • Enter milestone(s) into Github issues as Milestone.
  • For tasks that contribute to a Milestone, tag the task with the milestone.

Record Your Progress on Issues (Tasks)

  • When you take an issue (task) or are assigned to do it, assign it to yourself on Github.
  • As you work on issue (task), change status of issue to show your progress, e.g.: backlog, ready, in-process, review, done.
  • Everyone should commit their own work to version control (Github).

Weekly Review

Each week in lab we will review your progress (as time permits).
Questions we will ask are:

  • what did you accomplished this week?
  • Are there any new tasks that you need to add?
  • What problems did you encounter? What lessons learned?
  • What will you do next week?

End of Iteration Review and Retrospective

At the end of the iteration you should review what you achieved. Did you complete the milestone? Are there any unfinished tasks or features? (move them to next iteration)

Update your risk assessment:

  • What risks have were reduced or eliminated last week?
  • Do you identify any new risks? (record them)
  • What is your top risk now?

Retrospective: also reflect and discuss what you learned, and how to improve your software process for the next iteration. What practices worked well and what didn't? Should you change some practices to be more efficient?

Activity Results in... Is Recorded On... By...
Iteration Planning Meeting Goals for this iteration, features, tasks, milestone Iteration Plan Team Leader
Perform Tasks source code, document, diagrams VC, wiki assignee
Code Freeze Completed and tested code VC Team
Demonstration Demo to stakeholders Record feedback Technical Lead
Iteration Review improvement in process, practices, knowledge ? Team

Intro to Play Framework

ExceedVoting - assignment for 16-23 April.

Clone this wiki locally