Back in the day (I am familiar with current 'young people terminology'), we were all taught about the software development life cycle (SDLC), which was a euphemism for the Waterfall process. Big and cumbersome, extreme in documentation and low on flexibility, the Waterfall was perfect for developing on the mainframe (or so people believed) for operational software targeted at internal use. The applications changed little and their functional direction was driven by the "powers that be".
Then came client/server technology and the iterative process, where the mantra was "code a little, test a little" and where the dominant process was the Rational Unified Process (RUP), led by the Three Amigos at Rational Software - Grady Booch, Jim Rumbaugh and Ivar Jacobson. Incredibly innovative, incremental and highly automated, RUP focused on both the management and technical perspectives of software development. While revolutionary in its approach, RUP was still a very bloated process that required much training and documentation (vision doc, use cases, etc.) and provided much more information than most projects needed, and required a 'pick-and-choose' effort by the software team to decide which parts of RUP they would use and which would get discarded.
With the advent of wide-spread use of the web (especially now with web 2.0), many applications are client-facing and require shorter product cycles and multiple releases. This has led to the 'age of Agile' or adaptation of the light-weight processes such as Extreme Programming (XP) and Scrum. Around since the 1980's, Agile methodologies have really taken off in the Web 2.0 age, as the highest priority is to satisfy the customer through early ad often delivery of software. Characterized by requirements written on post-it notes, short, daily 'scrum' meetings and 2-4 week 'sprints' or releases, the Scrum methodology works extremely well with SaaS-based applications that need to constantly improve their offerings to stay relevant.
I recently read about an interesting survey of 900 developers in InformationWeek magazine. Some interesting statistics:
- 45% of developers who say they use a formal process use some form of Agile (Scrum is the most popular)
- 20% of Agile developers say it's a key part of their success (as compared to 12% of those using iterative and 8% of those using waterfall)
- 27% of developers using Waterfall feel this methodology creates a significant amount of busy work (as compared with 2% of Agile users)
We currently use a version of Scrum internally to develop our software and have found that as we get more familiar with the process and modify it to suit our needs, we are becoming more efficient at producing builds that are targeted towards our clients' needs than we were before. And as we speak with clients, we find that more and more of them are adapting an Agile methodology for their software development efforts. It is quickly beginning to dominate the landscape.
What are your thoughts?
Thanks for the nice summary. Agile is definately a potent and relevant methodology given the past decade of innovation. I do find some irony in the observation that there are many who are fairly rigid about agile. Those who are interested in more agile form of Agile might also want to check out CLICKS PPM.
ReplyDelete