• Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

The Art of Agile Development - The Pros and Cons of Short Iterations

 
Vinayagam Kulandaivel
Ranch Hand
Posts: 43
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
What are the pros and cons of Short Iterations?
Does this book cover this topic.

Regards
Vinayagam
 
James Shore
author
Ranch Hand
Posts: 46
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi Vinayagam,

We do discuss iteration length in our section on iteration planning. In a nutshell, shorter iterations provide more feedback, which reduces risk, and they give you more opportunities to practice iteration planning and delivering on your commitments. Longer iterations are less stressful and are more regular because a single sick day doesn't have as big of an impact.

I prefer one-week iterations for teams new to XP and two-week iterations for experienced teams. Teams seem to learn based on the number of iterations they've experienced, not the number of weeks, so shorter is better at first. As the team gains experience, a slightly longer iteration will provide more consistency in the team's velocity and reduce the pressure a bit, which could help the team be better about refactoring.

I've also found daily iterations to be very useful for teams struggling with constant firefighting. Daily iterations provide structure to each day, enabling the team to control interruptions, while providing enough feedback and turnaround to the rest of the organization to meet their firefighting needs.

Cheers,
Jim
 
Vinayagam Kulandaivel
Ranch Hand
Posts: 43
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi Jim,

Thanks for your timing.

I have a scenarion and would like you to suggest a strategic to plan.

We have a team in different geographical locations. We used to follow TTD in this application. We used to build our application every night with respect to their timezones, because some part of application may be used in both location or may not. How do i implement agile here and how to define the iteration lengths. I hope the short iteration will reduced the risks but will extend the project delivery time.

Regards
Vinayagam
 
James Shore
author
Ranch Hand
Posts: 46
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi Vinayagam,

If you use them properly, short iterations don't change development time--they just change how often you check your progress. It's true that there's some overhead associated with starting and ending an iteration, but that overhead should shrink more or less proportionally with the iteration length.

Shorter iterations will definitely reduce the risk of multi-site development, particularly if you're strict about your timebox and being "done done" at the end of each iteration. However, as your iterations get shorter, your ability to use phase-based approaches to development will diminish. Be sure to learn and use incremental/continuous requirements, design, and testing techniques if you use short iterations.
 
Ilja Preuss
author
Sheriff
Posts: 14112
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Regarding builds, I would expect you to see significant advantages in doing builds more than once a day.

With a dispersed team, it would probably make sense to install an integration server such as Cruise Control, which automatically starts a build and gives automatic feedback every time someone checks something into source control.
 
Vinayagam Kulandaivel
Ranch Hand
Posts: 43
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Folks,

Thanks for your time.

I have few questions.

1. How to reduce the number of iterations?

2. How do define the iterations and it's length?

3. Can we define a iteration with respect to Business requirements Or Functional Requirements?

Regards
Vinayagam
 
James Shore
author
Ranch Hand
Posts: 46
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi Vinayagam,

1. To reduce the number of iterations before a release, cut down on the amount of work you have to do before releasing. This is a big topic so I'll just refer you to the "Release Planning" section of our book.

2. I recommend defining iterations as a strict timebox with a predefined length that never changes. For example, when you hear "iteration," think "one week." For teams new to XP, I recommend one-week iterations. For teams new to Scrum, I recommend four-week iterations, or one-week iterations if you're also using the XP engineering practices. Be very strict about having everything done at the end of the iteration... this is the feedback loop that will drive you to improve your work habits.

3. Although you can define scope-based iterations that correspond to requirements, I strongly recommend against it. The value of the iteration timebox is that it exposes risk and it teaches you to manage your time wisely. If your iteration is scopeboxed, you'll constantly exceed your estimates and have trouble predicting schedules.
 
Vinayagam Kulandaivel
Ranch Hand
Posts: 43
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Folks,

What do you think about the Agile QA and the Regular QA.
The agile QA will be more active than the regular QA. Since the iterations/short iterations makes the Agile QA's contribution more in a agile development rather than regular QA.

Thanks & Regards
Vinayagam
 
It is sorta covered in the JavaRanch Style Guide.
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic