The Agile Methodology is an alternative to traditional waterfall project management. It allows project teams to deliver customer focused solutions through incremental, iterative development cycles, known as sprints.
Under traditional waterfall development teams move through a series of phases towards project completion. Projects are often large and phases or requirements are not often revisited after project commencement.
Requirements, Design, Development, Testing, Launch or Go-Live
Value under a traditional waterfall project is often recognized at the completion of the project.
The Agile Methodology is really a process or set of values not a traditional methodology. In the 1970’s, 80’s and 90’s there was criticism about the shortcomings of traditional software development methodologies. In 2001, at Snowbird, Utah, a group of seventeen people, primarily software consultants and leaders created the Agile Manifesto.
The four values defined in Snowbird are as follows:
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
Further they defined the following twelve principles of Agile software:
Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage.
Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
Business people and developers must work together daily throughout the project.
Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
Working software is the primary measure of progress.
Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
Continuous attention to technical excellence and good design enhances agility.
Simplicity — the art of maximizing the amount of work not done — is essential.
The best architectures, requirements, and designs emerge from self-organizing teams.
At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
Over the years there are several software development methods and/or process frameworks that have been developed:
Adaptive Software Development (ASD)
Agile Modeling
Agile Unified Process (AUP)
Business Analyst Designer Method (BADM)
Crystal Clear Methods
Dynamic Systems Development Method (DSDM)
Extreme Programming (XP)
Feature-Driven Development (FDD)
Lean Software Development
Kanban (Development)
Scrum
Scrumban
In general, most Agile development starts with a requirements repository developed by customers or stakeholders. The development team then collaboratively concentrates on a small subset of the repository. Sprinting or focusing on short iterations in which the team completes the planning, requirements analysis, design, coding, unit testing, and acceptance testing. At the end of the sprint or iteration a working bug free product is released. The cycles continues as the customer driven repository evolves.
The Agile Methodology or Process is a great option for many project types. Especially projects where the product cycle or requirements change quickly in response to consumer demand and long term flexibility is highly important.
Disclaimer, Copyright and Trademark Statement
This article is provided for informational and educational purposes. It makes no warranties as to the claims, accuracy or fitness of information provided, referenced or cited. Use of the information, instructions and any examples contained in this work is at your own risk. There should be no implied endorsement of this article by any person or organization referenced.
All trademarks, company, product and services names, images, descriptions, or public website content are property of their respective owner as source referenced. It is your responsibility to ensure that your use thereof complies with such licenses and/or rights.