What Is Agile?
Agile methodology is an approach to project management, typically used in software development. It helps teams respond to the unpredictability of building software through incremental, iterative work cadences, known as sprints. But before discussing agile methodologies further, itÂ’s best to first turn to the methodology that inspired it: waterfall, or traditional sequential development.
Where Did Agile Come From?
In 1970, Dr. Winston Royce presented a paper entitled “Managing the Development of Large Software Systems,” which outlined his ideas on sequential development. In essence, his presentation asserted that a project could be developed much like an automobile on an assembly line, in which each piece is added in sequential phases. This means that every phase of the project must be completed before the next phase can begin. Thus, developers first gather all of a project’s requirements, then complete all of its architecture and design, then write all of the code, and so on. There is little, if any, communication between the specialized groups that complete each phase of work.
ItÂ’s easy to see how this development agile methodology is far from optimized. First of all, it assumes that every requirement of the project can be identified before any design or coding occurs. Put another way, do you think you could tell a team of developers everything that needed to be in a piece of software before it was up and running? Or would it be easier to describe your vision to the team if you could react to functional software? Many software developers have learned the answer to that question the hard way: At the end of a project, a team might have built the software it was asked to build, but, in the time it took to create, business realities have changed so dramatically that the product is irrelevant. In that scenario, a company has spent time and money to create software that no one wants. CouldnÂ’t it have been possible to ensure the end product would still be relevant before it was actually finished?
Why Agile?
Agile development methodology attempts to provide many opportunities to assess the direction of a project throughout the development lifecycle. This is achieved through regular cadences of work, known as sprints or iterations, at the end of which teams must present a shippable increment of work. Thus by focusing on the repetition of abbreviated work cycles as well as the functional product they yield, agile methodology could be described as “iterative” and “incremental.” In waterfall, development teams only have one chance to get each aspect of a project right. In an agile paradigm, every aspect of development — requirements, design, etc. — is continually revisited throughout the lifecycle. When a team stops and re-evaluates the direction of a project every two weeks, there’s always time to steer it in another direction.
The results of this “inspect-and-adapt” approach to development greatly reduce both development costs and time to market. Because teams can gather requirements at the same time they’re gathering requirements, the phenomenon known as “analysis paralysis” can’t really impede a team from making progress. And because a team’s work cycle is limited to two weeks, it gives stakeholders recurring opportunities to calibrate releases for success in the real world. In essence, it could be said that the agile development methodology helps companies build the right product. Instead of committing to market a piece of software that hasn’t even been written yet, agile empowers teams to optimize their release as it’s developed, to be as competitive as possible in the marketplace. In the end, a development agile methodology that preserves a product’s critical market relevance and ensures a team’s work doesn’t wind up on a shelf, never released, is an attractive option for stakeholders and developers alike.
Posted under
This post was written by admin on October 23, 2008




It helps me a lot to understand agile methodlogy,but you sould use more examples and diagrams to make it more clear…
Thanks
Agile is good on papers but when it comes to actual implementation, changing requirement at each sprint is the real problem in a product.
How to deal with testing as the test case needs to be revamped at each and every sprint. In most cases, many a times the test case becomes invalid. Any suggestions relating to test design is greatly welome?
I shall be thankful if i can get the process (Quality Assurance aspect)for this methodology
It’s very useful, It helps me a lot to understand agile methodlogy.
Thanks,
It would be perfect if i can get the details of the methodology in terms of diagram, testing scripts and other deliverables
Hi, Amandeep. As I add more posts, I’ll keep your suggestion in mind and try to add more examples and graphical content. Thanks for reading!
Hi, Bhu. I think you’re right, to some degree: Agile looks great on paper. Only when organizations are in the midst of a transformation do they begin to realize how difficult it is to reorient the way its teams work. Adjusting to the changes that agile demands requires effort from the entire organization and often takes several months before individuals begin to feel comfortable again. Updating requirements each sprint is just one part of that. The thrash of requirements is a problem that plagues every software project, but you must admit that a framework that gives the development team more opportunities to revisit and refine work is better than one that assumes all requirements can be identified at the outset. Having to assess progress, interface with the customer, and revise requirements each sprint might seem like it’s creating headaches, but consider the alternative. If you completed a project based on initial requirements-gathering, your customer might tell you to scrap your work and start over, which is a very expensive and time-consuming catastrophe.
As for your second comment, I’ll try to post something on test cases in the near future.
Hi, Adithya. Thanks for your comment. I’ll try to write a post on how agile handles quality assurance soon.
For other readers: If you have topics you’d like to see discussed here, feel free to request a post on a particular subject in the comments section. Thanks!
Can you give case studies relating to agile methodologies ?
Are there any case studies of using Agile methods for changing business processes? Our projects may require IT change, new build or purchase of 3rd party applications. Some are business process only changes. Currently, we approach most business process projects using the waterfall method while applying project management and continuous improvement. Currently, my role is “Business Project Manager” in the finance industry. My background is both business and IT. I started learning/using Agile until I moved to the business side. Thank you.
i appreciate the positives of this method, but is there a way to reduce the over work that a QA team and Developer team do. Like many times it is felt that agile method of working may come up with a requirement which requires you to rethink of the framework you are using as a solution.. Or it only tackled with your negotiable talent with the clients. i am just wondering.. can you please through in some light on this as well..
Hi, Vignesh and Aaron. I don’t have any case studies that I’ve authored personally, but Danube has some great ones up at the customers section of its web site: http://danube.com/customers. They’re quick reads that break down the problems companies were facing before turning to agile project management, how they made the transformations, and, of course, the results. I’ve definitely gotten some good ideas for my team from reading about how other companies have handled similar challenges.
Aaron: If your company is implementing agile, there are two great white papers on the site that address the challenges of that transformation. Part one is here: http://danube.com/system/files/WP_Enterprise_Strategy_1.pdf. Hope this helps!
Gud points about agile.
http://vipinc007.blogspot.com/2009/04/agile-methodology.html
Good overview what about the broader application of agile methods in business i.e. not just in software development?