19 Timelines, Iterations, and Milestones

CONTENT

A cartoon image of a grey Gryphon. It is holding a pointer stick and pointing to something to its right.

  • Timelines, Iterations, and Milestones

SLIDE DECKS

Some of the material presented in this chapter will be discussed in class. It is your responsibility to ensure you cover all the concepts presented both in class and in this textbook.


Now that we’ve finally developed a set of requirements that formally define the problem we are trying to solve, we can begin building our plan to turn it into a reality. This includes developing a formal production timeline composed of iterations and milestones.

Since we spent so much time developing our requirements in the previous chapter, it should come as no surprise that a requirement is one thing that the system does. However, the terms iterations, milestones, and timelines might be new.

Iterations, Timelines & Milestones

Iterations – an iteration is a set of requirements that are completed in a short amount of time. The length of an iteration may vary depending on the company for which you work and the complexity of the problem but four weeks (20 working days, or approximately one month) is typical.

Milestones – are a major release of the software. Milestones are connected to software versioning.

Timelines – a timeline is a complete set of iterations.

Our goal is to arrange the requirements into a series of activities that will allow us to implement our solution as efficiently as possible. If you are the only developer, this would amount to scheduling the requirements one after another, with dependencies addressed ahead of the requirements that depend on them.

An example timeline (with the first milestone completed after the second iteration) is outlined below. Note: each coloured box represents one requirement. The box width represents the days it would take one person to fully implement the requirement.

A potential timeline of production using 3 iteration periods. Iteration 1 and 2 make up Milestone 1.0. This assumes 1 developer.
A potential timeline of production. Three iterations are shown, each with a different number of varying length requirements. Milestone 1.0 is completed once iteration 1 and 2 are completed (for this example).

However, it is very unlikely that you will be the only developer involved with implementing the solution that was planned. Instead, it’s typical that you will have a team of people who will contribute to implementation.

In this case, assigning requirements becomes slightly more involved, because implementation can take place simultaneously. This means that care must be taken to ensure that dependencies are met. It also means that there may end up being several team members who are unable to implement anything related to the current project – so gaps may appear in the timeline.

A more realistic timeline of production using 3 iteration periods. Iteration 1 and 2 make up Milestone 1.0. This assumes 4 developers.
A more realistic timeline of production. Three iterations are shown, each with a different number of varying length requirements. Milestone 1.0 is completed once iterations 1 and 2 are completed (for this example). There are four developers (one per row) working on different requirements. Gaps in the image are a result of dependencies between requirements.

Before we learn how to build our timelines, it’s important to point out a few things:

  • If a requirement takes 15 days or more to implement, you should probably break it down into smaller chunks.
  • Each iteration should end with an update and potential demo to the client/user so that they can stay connected to the project. This is also a good time to re-evaluate the full timeline, especially if you are faster or slower than expected. Any changes to the timeline require consultation with the client/user.
  • While there will be cases where several people could feasibly work on the same requirement simultaneously, we don’t plan for this. Instead, we assume one person can implement a requirement at a time. This provides a more conservative estimate of production but prevents issues that might arise if someone can’t complete the work.
  • Add requirement time estimates (in days) and divide by the number of team members to estimate project duration.
  • To estimate the number of iterations to complete the project, divide the result you determined in the previous bullet by the length (in days) of an iteration.
  • Since dependencies might affect when we implement certain requirements, the estimates from the previous two bullets are probably on the low end. It will likely take longer to implement because dependencies will cause gaps (as shown previously). We also haven’t considered the team’s productivity level. But we’ll discuss that in the next chapter.

Review Questions

License

Community-Engaged Systems Analysis & Software Design Copyright © 2024 by Daniel Gillis and Nicolas Durish. All Rights Reserved.

Share This Book