|
|
|
|
|
|
| |
| SPONSORED BY: 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 |
|
|
| |
|
|
| |
| 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 |
|
|
| |
|
|
|
|
|
|
|