The agile manifesto was forged in February 2001 when a group of developers convened in Utah to find an alternative to documentation-driven, โheavyweightโ software development practices, such as the then-gold-standard waterfall method.
Although actual agile practices predated the Utah meeting, that gathering served as a watershed event that helped propel the concept. Fast-forward a decade, and agile software development is becoming more commonplace, with software houses adopting agile methodologies like Scrum and XP (Extreme Programming). Despite potential pitfalls, experts in the agile space agree that implementation of agile practices has benefited software development overall.
โIโd say we transformed the industry,โ says Ward Cunningham, a signatory to the manifesto who worked for Tektronix at the time. Discussion about the failure of computer programming and the programming crisis has died down as a result of agile, he says: โI just donโt hear people talking about that anymore.โ
The Agile Manifesto has more than met its goals, says Scott Ambler, chief methodologist for agile and Lean at IBM Rational.
โItโs had a pretty significant effect on the industry,โ Ambler said. โYouโd have a hard time these days trying to find people who donโt want to be agile. [And] the expectations for success for agile and iterative seems to be measurably higherโ than with traditional development.
But Kent Beck, who also signed the manifesto and is the founder of XP, is less committal about the benefits of agile nearly 10 years after the manifesto: โI donโt have a sound-bite answer for you on that.โ
Agile has โcontributed to people thinking more carefully about how they develop software,โ Beck says. However, not everyone is on board with agile, he notes. โThereโs still a tendency for some people to look for a list of commandmentsโ to use for a project, which is not what agile is about, Beck says.
Solid programming skills are necessary for agile development, Cunningham stressed. โThereโs a lot of people who get into this field who actually find programming tedious and donโt want to do it,โ Cunningham says. โIf you enjoy doing it and want to do it well, that helps a lot.โ
Organizational obstacles can arise in implementing the agile philosophy as well. โ[Agile] works well as far as looking to deliver [software] more frequently and to think about things in smaller chunks instead of the whole project,โ says Skip Angel, an agile coach with BigVisible Solutions. โWhat I think is a challenge for organizations is that they donโt [have their] organization set up in a way that could provide for quicker delivery.โ
Projects can get bogged down in time-consuming processes, Angel adds, and developers need to use continuous integration to avoid bottlenecks.
Agile is no silver bullet, notes Ian McLeod, executive vice president of SmartBear Software, which makes application lifecycle management tools. โYou still have to do it wellโฆ. You can do agile poorly,โ he says.
Beck recalls using agile in developing the successful JUnit Java unit testing tool in 1997. The team used short iterations, lots of unit testing, and close communications with customers.
โIt helps us develop quicker and keep better track of what it is we need to do,โ says Wade Weston, CEO of AttainResponse, which develops unified communications systems. AttainResponse does weekly development sprints. โWe do short sprints, and we are highly focused on the items that we need to do that week,โ Weston says.
Getting everyone on board still can be an issue, however. โOne of my guys keeps telling me that he would like to have more specified requirements. I keep telling him weโre going faster because we donโt have specified requirements,โ Weston says. A hardcore requirements document is a โwaste of time,โ he adds.
Sometimes, developers can call practices โagileโ when they are really not, says Damon Poole, CTO at AccuRev, which offers project management software for agile projects. Developers might not build fully developed items, or โstories,โ after two-week iterations, he says. โIf youโre really doing agile, then the user stories are ready to actually ship after that two weeks,โ Poole says.
โWhat distinguishes XP is that it is a system instead of a solution,โ says Cunningham, a contributor to XPโs development. โItโs a systematic approach to programming.โ
Scrum is focused on how to manage and deliver the work while XP hones in on how to do the work, Angel says.
Poole notes, โScrum and XP are definitely two of the main methodologies out there and often youโll see Scrum teams adopt XP and XP teams adopt Scrum.โ
Another methodology is Kanban, which was derived from manufacturing processes and the concept of Lean software development, Poole says. Kanban has fewer constraints and focuses on the flow of value back to a customer, he notes. Lean focuses on organizational efficiency, optimizing values, reducing waste, and trying to make sure of good process flow, Angel adds.
RUP (Rational Unified Process) also is mentioned as a method of agile, although whether it actually is could be debated, McLeod says. RUP features a lot of documentation, which goes against the grain of agile, he explains. RUP can be an agile methodology, Ambler says: โThe thing with RUP is that itโs a process framework. It completely depends on how you institute it.โ
Ambler also cites DSDM โ Dynamic Systems Development Method โ as falling in the agile domain. โDSDM is sort of like RAD [rapid application development] with a little bit of extra process thrown in.โ RAD differs from agile in that it focused on iterative development but not on increased collaboration, he notes.
McLeod sees agile methodologies as being like those using iterative development. โThereโs not a ton of difference,โ he says.
The term โagile,โ Cunnigham says, was a word picked out at the Utah meeting. โPeople were referring to it as lightweight methods,โ he recalls. But some thought the word โlightweightโ carried with it the negative connotation of being superficial, he says.
Related Download
Sponsor: IBM
IT as a service for dummies
Register Now