-
Notifications
You must be signed in to change notification settings - Fork 5
Iteration Workflow
Here is a minimal workflow for our iterative software process.
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.
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.
- 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.
- Enter milestone(s) into Github issues as Milestone.
- For tasks that contribute to a Milestone, tag the task with the milestone.
- 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).
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?
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 |