Iterations: Agile eNewsletter
 
 
 

StickyMinds

The Current Issue

Subscribe

Unsubscribe

Update Your Email

Archive
 


 
 
  iterations: Delivering All Things Agile Straight to Your Inbox  
 
 
 
  13 August 2008

In this issue:

Media Spotlight

What's New?

Agilism - Defining the Movement

Featured White Paper
Mastering the Iteration: An Agile White Paper from Rally

Content Pointer
The Neglected Practice of Iteration
By Jeff Patton

Book Review
Agile Estimating and Planning
By Mike Cohn
Reviewed By Mark Cole

PowerPass Pointer
Incremental and Iterative Development
By Alistair Cockburn

Web Seminar
The Secrets of Enterprise Agile Adoption—
From Team to Organizational Transformation

The Agile Experience
Appreciation for the Iteration
By Jared Richardson

Agile in Motion
Jump In to Iterative Development
Interview with Megan Sumrell

 
 
SPONSORED BY: Rally Software
Rally Software
Agile Project Management—Try It Free

Sign-up now for a free subscription to Rally's Jolt award winning Agile life cycle management solution. Unite Agile project management with tracking of requirements, tests and defects for simpler, low-burden management of your software projects. Sign-up now for your free subscription!

http://www.rallydev.com/products/editions/?src=iterations081208
 
MEDIA SPOTLIGHT
Media Spotlight Gray Matters Podcast: Matthew Heusser

In the latest episode of the Gray Matters Podcast, Joey McAllister speaks with Matthew Heusser about career paths for testers, the use of Web 2.0 tools in a corporate setting and in a software development environment, and the concept of technical debt.

Listen: http://www.stickyminds.com/podcasts#GM0808
Subscribe: http://feeds.feedburner.com/GrayMattersPodcast
 
     
 
WHAT'S NEW:
Calling All Software Developers, Testers, and Managers

The 2008 Better Software magazine/StickyMinds.com Salary Survey is in full swing!

Don’t miss your chance to contribute to the collective knowledge of industry salaries and employment trends. Follow the link that best describes your employment level, answer a few questions, and enter to win a $50 Best Buy gift certificate! The results will appear in the December 2008 issue of Better Software magazine.

Staff Level: www.stickyminds.com/2008salarysurveystaff
Management Level: www.stickyminds.com/2008salarysurveymanagement
Director Level: http://www.stickyminds.com/2008salarysurveydirector
 

FOLLOW ME!
Have you been wondering how you can get a daily dose of what’s new and popular on StickyMinds.com and in Better Software magazine?

We’ve been reading your mind!

StickyMinds.com and Better Software magazine are now on Twitter. If you’re already on Twitter, follow @StickyMinds for regular updates about weekly columns, news, discussion boards, eNewsletters, and more, as well as information about Better Software magazine articles and Software Quality Engineering conferences.

If you don’t have a Twitter account, you can follow our Twitter feed at www.twitter.com/StickyMinds.

 
     
 
AGILISM: Defining the Movement
Incremental and Iterative Development
Incremental development is a scheduling and staging strategy in which the various parts of the system are developed at different times or rates, and integrated as they are completed. It does not imply, require nor preclude iterative development or waterfall development—both of those are rework strategies. The alternative to incremental development is to develop the entire system with a "big bang" integration.

Iterative development is a rework scheduling strategy in which time is set aside to revise and improve parts of the system. It does not presuppose incremental development, but works very well with it. A typical difference is that the output from an increment is not necessarily subject to further refinement, and its testing or user feedback is not used as input for revising the plans or specifications of the successive increments. On the contrary, the output from an iteration is examined for modification, and especially for revising the targets of the successive iterations.

The two terms were merged in practical use in the mid-1990s. The authors of the Unified Process (UP) and the Rational Unified Process (RUP) selected the term "iterative development," and "iterations" to generally mean any combination of incremental and iterative development. Most people saying "iterative" development mean that they do both incremental and iterative development. Some project teams get into trouble by doing only one and not the other without realizing it.

From wikipedia.org
 
     
 
Featured White Paper:
Mastering the Iteration: An Agile White Paper from Rally
The heartbeat of Agile software development is the iteration-–the ability to create working,
tested, value-delivered code in a short time box. Mastering this skill takes guidance
and practice. In this paper, Dean Leffingwell describes the iteration pattern and the activities
that a team engages in to meet this key challenge. Click on the link to learn more.

http://www.stickyminds.com/RallyWhitePaper
 
     
 
CONTENT POINTER:
The Neglected Practice of Iteration
By Jeff Patton
In this StickyMinds.com weekly column, Jeff Patton sends a reminder that software developers who neglect the practice of iteration will get caught either delivering poor quality software or delaying schedules in order to make time to iterate. We kick ourselves, or others, for not "getting [software] right up front" when we all know that the hardest part of software development is figuring out what to build. But there's hope, and it comes in the form of prototypes and frequent iterations.

http://www.stickyminds.com/s.asp?F=S13178_COL_2
 
     
 
BOOK REVIEW:
Agile Estimating and Planning
By Mike Cohn
Reviewed By: Mark Cole
In Agile Estimating and Planning, Mike Cohn presents a strong case for using agile and iterative processes, such as Scrum, to design software projects. This book deals with the issue of managing uncertainty, which (as stated in the book’s forward) is "plan, plan, plan, do." Agile methodology argues for "plan-do-adapt, plan-do-adapt."

Keep reading at http://www.stickyminds.com/books.asp?ObjectId=826&Function=DETAILBROWSE&ObjectType=BOOK .
 
     
 
POWERPASS POINTER: Magazine Archive
Incremental and Iterative Development
By Alistair Cockburn
People get wrapped around the axle trying to differentiate between incremental and iterative development. The Unified Process authors in the 1990s didn't help by indiscriminately calling everything iterative development. The two are different and must be managed differently. Successful teams do both at the same time, usually without thinking about it. Then someone starts thinking about it and does one without the other. Bad news follows.

http://www.stickyminds.com/s.asp?F=S13560_MAGAZINE_2
 
     
 
Agile Development Practices Conference 2008
November 10-14, 2008 | Shingle Creek Resort | Orlando, Florida

Learn the latest in agile methods, technologies, tools, and leadership principles from thought leaders who deliver inspiring keynote presentations, in-depth tutorials, and a wide range of conference classes. Network with your peers during informal gatherings and discuss your challenges with experts in agile practices.

* Register Early and SAVE $200! * http://www.sqe.com/go?ADP08Iteration
 
     
 
Web Seminar
The Secrets of Enterprise Agile Adoption:
From Team to Organizational Transformation
Join leading agile experts, coaches, and authors—including Jean Tabaka, Dean Leffingwell, Stacia Broderick and Ryan Martens—as they paint a picture of successful enterprise agile adoption from a team's first project to enterprise-wide transformation. During Rally’s Web seminar series, you will learn proven organizational transition approaches and best practices around agile project and product management, agile architecture, and quality management. Development, management, and product teams will gain both an understanding of what it means to transition to agile as well as specific best practices for their role in the organization.

http://www.sqe.com/go?WS081908AGILE
 
     
 
THE AGILE EXPERIENCE:
Appreciation for the Iteration
By Jared Richardson
During recent client interactions, I've come to realize how important the timeboxed iteration is to a software team. It's something I've taken for granted for years. A team I was on a long time ago fell into using iterations and I've never stopped to wonder why they worked so well. Recently, I needed to explain why iterations work and came away realizing that they had a lot more to offer than I'd realized.

A Sad State
What does a typical software project look like today? The schedule was missed months ago, the feature set keeps growing like the weeds in your backyard, and the product's quality is a running joke—it's a laugh-or-cry situation. And worst of all is the team's morale. Everyone is mildly depressed about work and several people have actually left the company. The team feels trapped in an endless bog of "almost done" projects and "nearly there" features. It's simply not fun to be a developer in many shops today.

Can iterations help us solve any of these problems? Absolutely, if they're used correctly.

First, what is an iteration? An iteration is a mini-release cycle—a flexible time period, usually one- to six-weeks long. Team members define a set of working features they feel they can complete by the end of the iteration. This is one of the key benefits to an iteration. It doesn't magically help you finish large features in a short time, it forces you to break down your large features into smaller, more manageable tasks. This naturally leads you into a more thorough design process.

The Six-Month Task
One of the biggest problems in software today is the six-month task. If something is so big that we know it'll take months, we just slap a random number—I mean estimate—on it and hope we can make the deadline. This approach allows us to ignore all the complexity that the problem requires. Anything we don't know how to do must be easy, right? Surely six months will be enough time to do All That Stuff. But if you're on a two-week iteration, you can't have a six-month feature. You've got to find a way to break it down to a two week feature. When you first start down this path you'll feel like it's impossible. But just like any other task, as you practice you'll find it's not so hard.

So, benefit one: You're forced into defining, estimating, and tackling smaller units of work.

Priorities
The next challenge is getting your customer to prioritize the feature set. We've all been in the situation where we've got 5,000 features. We ask our customers which ones they want first, and they smile slowly and reply, "Yes." They think they've cleverly tricked the developers into working harder to complete everything. In reality they've given the development team free reign to work on whatever it wants first, which is never what the customer actually wants the most.

The solution to this sticky problem is the timeboxed iteration. After you plan out the work for your next iteration, do your best to prioritize. Then take this top-ten list and put it in front of the customer.

The immediate reaction will always be the same. "What? We don't want feature X first! We need feature Y instead." You've just tricked the waffling stakeholder into prioritizing. Edit the list to the customer's specifications and move on.

More Finish Lines
We all like to finish things. Whether it's a project around the house or a work project, we want to have some closure. It's difficult to stay excited about work measured in years, so why not take advantage of this natural human inclination? Let's provide as many finish lines as possible. Instead of an eight-month marathon, let's run eight iterations.

When the team needs a pick-me-up, you can use any one of these finishes as an excuse to celebrate. Have a group lunch for any (or all!) of your finishes.

Wipe the Slate Clean
A new iteration is more than just a finish line. It's also a starting line. Let's forget about how far behind we were. How much we completed (or didn't) can be laid aside as we start planning a new iteration. We can estimate the next set of tasks based on what we've just learned about ourselves and the technology we're using.

Long-running waterfall projects can, and often do, fall horribly behind. Our estimates are all made at the beginning of the waterfall when we know the least about the project's details or the technology's quirks. Instead of trying to stick to an unrealistic schedule, let's start over every four weeks. Take a step back and re-estimate the upcoming work. Reprioritize the tasks.

Whether you call it "wiping the slate clean" or "a fresh start," the idea is the same. Let the team tackle a new block of work with a minimum of baggage. Don't let the failures of the past few months pile up on the team's collective back.

Summary
There are more benefits to iterations than I could list here—my first draft of this article was double my word limit! But these are some good starting points. Use timeboxed iterations to:
  • Improve your estimation and planning
  • Discover your customer's secret priorities
  • Give your team more finish lines
  • Start over
The iteration is getting more popular for a variety of reasons. Why don't you try it out with your team next week?

Jared is a consultant, author, and speaker working at AgileArtisans.


Find out what you missed in past issues of iterations at: www.stickyminds.com/eNewsletters/iterations/Default.aspx?eNewsletter=Archive
 
     
 
ADVERTISEMENT:
New Agile Training Courses from SQE Training
Implementing Agile projects in your organization and want to master Agile Development techniques?
SQE Training has a new agile training program for you. Learn, experience, and practice the ScrumMaster approach to managing development. Practice using test-first design development methods. Gain experience developing programs in small verifiable steps for better designs. Create user stories that describe what the user really needs. Attend two courses in the same location and save up to $300.

Register today! http://www.sqe.com/go?AGWK1

 
     
 
AGILE IN MOTION:
Jump In to Iterative Development
Interview with Megan Sumrell
A senior consultant at Valtech, Megan Sumrell has more than ten years' experience building and managing QA teams. She has been working on agile teams for the past three years and teaches agile classes. Megan's current team operates with two-week iterations.

iterations: What made your team decide to incorporate iterations into its process?

Megan Sumrell: We were continually missing delivery dates on our large product releases and often had to cut back on features and functionality to finally get it out the door. However, we had a fairly successful recurring defect delivery that went out every two weeks. I could see the value in the short two-week iteration, but wasn't sure at first how to apply it to our larger feature work. That is when I started really researching iterative development approaches.

iterations: In your experience, what are the biggest benefits to breaking up the tasks into iterations?

MS: The biggest benefit is eliminating waste. By breaking tasks into iterations, we deliver small pieces of functionality regularly and get feedback on it. This allows us to eliminate waste by not over-developing features, not developing the wrong feature, and improving the overall quality of the product. Requirements are always going to change and iterations provide a framework to accommodate that change comfortably.

iterations: What are some of the challenges your team has encountered?

MS: One of the most common challenges has been how to integrate a more traditional end-of-life test team into your iterative development approach. It not only requires a very different mindset for the entire team but also means that our testers had to learn some new skills and tools as well. The tools part was easy—the mindset was more challenging.

iterations: What has been the customers' response to the iterative process?

MS: The customers love it. For once they are not told that they can't change their minds. They are allowed to shape the product as we go and because of that, they are getting a much better product in the end.

iterations: What advice would you give to a team that is thinking about giving iterative development a try?

MS: Don't wait until the "time is right" to get started—jump in! Don't spin your wheels trying to exactly define your iterative approach or process. Use retrospectives at the end of each iteration to review what went well and what you can improve on. That way, you can define and refine your team's process and practices as you go and make changes as necessary. One other bit of advice is to get help from an expert when you are first starting out. Agile coaches and training can really help get your team jump-started and on the right track. Most coaches have been there, seen those challenges, and will likely have some good advice and tips for new teams.
 
     
  Iterations is an extension of StickyMinds.com and Better Software magazine—and a reminder that your "online resource for building better software" is just a click away at www.StickyMinds.com  
     
 
SUBSCRIBER SERVICES
You are receiving this issue of iterations as part of your StickyMinds.com membership, Better Software magazine subscription, or iterations subscription. We hope this publication will be a useful and enjoyable benefit. To change your email address or update your preferences, go to www.stickyminds.com/eletters.asp?fx=change. To ensure optimal receipt of these emails, please add iterations@lists.stickyminds.com to your address book or all messages from @lists.stickyminds.com to your email white list. To unsubscribe, go to www.stickyminds.com/eletters.asp?fx=unsub.

If this eNewsletter has been forwarded to you by a friend, you can register for your own free subscription to iterations at www.stickyminds.com/eletters.asp

SOFTWARE QUALITY ENGINEERING • 330 CORPORATE WAY • STE. 300 • ORANGE PARK, FL 32073