Categories: R&D and Quality
by Gordon Graham, Editor, SoftwareCEO
Does the "waterfall" method of software development sometimes feel like going over a waterfall in a canoe?
The economic crunch of 2009 could mean it's time to try a better, faster, and less risky way to develop software. Maybe it's finally time to try Agile programming.Have you
ever seen the waterfall method
And to help you get started, we've found a complete set of resources, including some research to help sell this approach, a free Agile management tool, an online community, an Agile university, and a worldwide list of user's groups.
Is your current development model working?
SoftwareCEO is devoted to better business results, not pie-in-the-sky theories. So this is not the place to debate philosophies of software development.
Just ask yourself: Is your current development model working? Does it make sense to spend two or three months writing "perfect" requirements, and then six to nine months implementing them? Have you ever seen the waterfall method succeed?
If you answered "no" to these questions, it's time to try another approach. And the most likely alternative is Agile programming.
To find out more, we had an intriguing chat with Rally Software CTO and founder Ryan Martens. His Denver-based company is a leading maker of Agile management tools, with clients such as AOL, Electronic Arts, Intuit, Microsoft, and Yahoo!
What is Agile software development?
Let's get one question out of the way right now: What exactly is Agile development?
"Probably the lowest-level way to think about it is a kind of innovation in how we build software," says Martens. "It's a method for developing software that is primarily driven by time-to-market and quality.
"In project management terms, it means working in fixed time boxes with fixed resources but variable skills."
Maybe it's easier to say what Agile is not.
Martens describes the typical mega-software project that we've all seen, where "it's easy to get a really long release train running, one that's measured in nine, 12, 18 months.
"Then you start your engineering team working on 10 to 25 features in parallel. But it's really hard to get yourself to a stable place."
So, lots of bugs are inevitably discovered late, the schedule slips, and half the features in the spec are left out of the release.
Users are ticked off, sales stall, managers make excuses, and then everyone goes off to repeat the same exercise all over again. This is why critics call the waterfall method "long, large, linear, and late."Agile methods are widely considered to produce faster, better code for less money... something in tune with today.
Agile is about doing things differently.
Tasks are smaller and more do-able, lots of small improvements are delivered quickly to customers, bugs are simpler to find and fix, there's less preoccupation with writing perfect plans, and more emphasis on making steady progress in the right direction.
Agile methods are widely considered to produce faster, better code for less money... something in tune with today.
Agile development tip #1: Not sold on Agile? Remember your first startup
Again and again, Martens returns to the same point: This is how startups work.
In a startup, developers talk a lot, show their latest functions to prospects and end users, get continuous feedback, work on a short timeframe, and debug as they go.
This is how developers work when everything is on the line, and their code has got to add value or they're out of business.
It's only later, after companies gain layers of marketing, engineering, and QA that everything slows down and gets ponderous, with inch-thick requirements docs that never quite hit the nail on the head.
"For many ISVs, I'm not sure they would call Agile an innovation, because it's really the way most startups behave," says Martens.
"A startup is all about getting something to market, seeing if it sticks; if it doesn't, trying something else before you run out of funding, or making enough forward progress that you can get some more funding, right? And you've got to be highly in touch with your customers.
"So you've got a natural model for incremental funding that's driven by proven success."For many ISVs, I'm not sure they would call Agile an innovation, because it's really the way most startups behave.
Think back to those exhilarating times in your last (or current) startup when you were five people in a room all blasting out code and breaking new ground. That's a lot like Agile programming.
And proponents say you can capture that excitement and productivity all over again.
Agile development tip #2: Still not sold? Check out these documented numbers
Last spring, Rally hired research firm QSM Associates to get some numbers.
The goal was "to assess the performance of Agile development projects against plan-based or waterfall industry averages in three key areas: productivity, time-to-market, and quality."
The conclusions were fairly astounding.
Development teams using Agile practices were on average:
- 37 percent faster delivering software to market
- 16 percent more "productive"
- No more likely to create defects.
Let's look a little deeper at these three benefits.
Agile benefit #1: Faster time-to-market
"Software development teams, especially when they have large and geographically dispersed teams, often struggle to deliver their software on time," says the report.
"By adopting Agile practices, companies... were able to produce large-scale enterprise software in four to 11 months, compared to the six to 13 months a typical organization required to deliver comparable software."
Rally customers worked even faster, shaving a full 50 percent off the time-to-market.
Agile benefit #2: Better productivity
It's always tricky to define a developer's "productivity." For its measuring rod, QSMA uses its own Productivity Index.
"A number of elements contribute to an organization's Productivity Index, including tooling and methods, technical difficulty, personnel profiles, and integration issues. The Productivity Index... quantifies the net effect of all factors."
On average, the Agile teams measured in this study were 16 percent more productive than industry standards. Rally customers were, on average, 25 percent more productive.
Agile benefit #3: Shorter schedules, same number of defects
Anyone can slap together software faster... but is it necessarily better? What about the bug rates from Agile programming?
"Bug counts rise geometrically as schedules are compressed," says the report. "Typically, 'haste makes waste.' When large teams cut delivery schedules to four or five months... defects will conservatively exceed industry averages by about four times."It's always tricky to define a developer's ‘productivity.’
But despite cutting schedules by more than 50 percent, the defect counts on the Agile projects remained fairly normal.
"Those are very tangible numbers from the CFO standpoint," says Martens. "You can see why you'd start to pick up concepts like Agile, because the financial impact is there."
For more details, you can download the complete research report here (registration required).
Agile development tip #3: Need more proof? Don't be a laggard
So you want more proof that Agile programming works?
Don't look now, but you may be a laggard. Or at least you're in the Late Majority of Geoffrey Moore's adoption cycle, according to an interesting page of essays we came across, written by Scott Ambler from IBM.
If you like charts and graphs, make sure to check out this page, because it's packed with interesting comments and references on Agile. Maybe even some that you would consider "proof."
Agile development tip #4: Try a pilot, or get a partner to accelerate the process
So how do you get started with Agile? Try it out with a pilot project?
"The pilot approach has certainly been the predominant approach over the last four years," says Martens. "If you don't mind working on it incrementally and at your own pace, it's how a lot of people got into it."So how do you get started with Agile? Try it out with a pilot project?
But he says this may not be the best way.
"Given the pressure that CFOs are going to be feeling in early 2009, they're potentially going to want to accelerate the proven impact of this. And that's where a partner like us would come in."
He points to a recent study by Gartner that recommended signing on with a partner to bring home the benefits of Agile methods faster.
Rally can help in several ways. Its commercial products include Rally Enterprise, a full-powered Agile project and program management system delivered as SaaS for $35 a seat per month. You can see a feature checklist here.
A unique coaching option will help ensure your success. And the company also offers numerous no-cost resources, described in the next few tips.
"We're a pretty whole-solution provider in this space," says Martens, with a touch of pride. "I think that's what really differentiates us from incumbent vendors and other startups in the Agile project management space."
Agile development tip #5: Less than 10 developers? Try this free project management system
If you're in a small shop and the cost of Agile tools is holding you back, it really doesn't have to.
"The rule of thumb on any high-productive team is seven plus or minus two people. So starting at that level, we actually have a product that's available on our website for free, called Rally Community Edition," says Martens.
"It's free for 10 users in perpetuity. So for a team just getting started, that is a great answer."
Rally Community Edition includes:
- Project management — Flexible iteration to release tracking and reporting for Agile development processes
- Requirements management — Feature backlog and multi-tier requirements definition
- Test management — Tools to manage test performance and results
- Defect management — A complete bug tracking, notification, and reporting system.
That's a pretty nice bundle, for a pretty nice price tag of $0.
Agile development tip #6: Join the online community
Rally also sponsors an online community devoted to agile.
Agile Commons is "a Web 2.0 community that encourages Agile practitioners to interact, exchange knowledge and ultimately improve the results of their Agile practices."
Since launching about 18 months ago, more than 3,300 people have joined Agile Commons and created 150 different topic areas. It's another no-cost resource for anyone interested in these practices.
Agile development tip #7: Find the perfect course
Or maybe it's time to sign up for a course or two?
Rally also operates Agile University, a portal that lists every variety of Agile workshop and course under the sun.
"There's about 90 different people who train under that umbrella, and not all of them are Rally employees," says Martens. "It's probably the largest Agile trainer in the United States."
You can look up courses by level of expertise, region, or date; so if you need training, this is a good place to start.
Agile development tip #8: Joint the alliance
The Agile Alliance is the worldwide SIG for Agile development, with more than 5,650 members.
There are tons of resources available on its site, including articles, white papers, recommended books, and issues of the journal and magazine that were once published by the group.
To belong to the Alliance costs $100 a year for an individual. For companies, there's a sliding scale: $175 a year up to five employees, and $500 up to 25 employees, up to a max of $3,000 a year for 500+ employees.
Agile development tip #9: Find an Agile user's group near you
From this page, you can see an extensive list of Agile User Groups around the world.
There may well be a group close to you that holds meetings where you could listen, learn, network, and (hint, hint) meet prospective new hires and consultants who already understand all this stuff.
Agile development tip #10: Check out the Agile Journal
The online Agile Journal provides a regular dose of news and views "focused on providing readers with the need-to-know information and resources they need to develop software for an agile business."
From the site, which is published out of Santa Barbara, CA you can access previous issues, blogs, webcasts, a forum, and current articles.
For instance, the December issue featured articles on handling conflicts in agile teams, setting up an Agile infrastructure, and the state of "scrum" which tackled the timeless question, "What does it mean to be agile?"
Well, we can tell you what it's not. But wait, that's where we came in. So good luck getting more Agile in 2009.