SUBSCRIBE

Agile programming 10 years on: Did it deliver?

It has been nearly 10 years since programming dignitaries released โ€œThe Manifesto for Agile Software Development,โ€ which promoted processes that accommodate changing requirements, collaboration with customers, and delivery of software in short iterations.

ย 

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.

What it takes to be agile

Agile can be hard to learn, Cunningham notes: โ€œYou have to learn to master any number of techniques before you have the experienceโ€ to do agile development.

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.

Agile programmingโ€™s many methods

Scrum and XP stand out as perhaps the most dominant agile methodologies. Beck characterizes XP as paying careful attention to the engineering side of development. โ€œXP has more to say about what programmers actually do,โ€ as opposed to Scrumโ€™s project management methodology, he 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
IT as a service for dummies Sponsor: IBM


IT as a service for dummies


Register Now



Tech Jobs

Categories