Agile v Waterfall Method of Software Development
For a long time, developers have followed the “waterfall” method of software development in various forms. The “waterfall” method is a chronological software development method in which progress is viewed as flowing progressively downward (like a waterfall) through the phases of conception → initiation → analysis of requirements → web design → development/coding → testing → installation → maintenance. Each phase must be completed and signed off on before proceeding to the next step. The theory behind the waterfall method of development is that it is easier to fix bugs in, for example, the design phase rather than in a later phase. It also assumes that by the time the project reaches the developers, it is pretty much perfect and ready to be coded as written.
In 2001, Agile came up with a different way of looking at projects in an effort to deal with increasingly complex software development and web jobs. The Agile method breaks a project into small sections with short-term goals and planning called iterations. Iterations are short time frames (“timeboxes”) that generally last from one to four weeks. Each iteration requires a team to work through a full software development microcosm consisting of conception → initiation → analysis of requirements → design → development/coding → unit testing → acceptance testing. This minimizes overall risk and lets the project team make changes quickly and on the fly. An iteration may not add enough functionality to warrant a full-scale release, but the objective is to have a release (with few or no bugs) at the end of each iteration. Several iterations may be required to release a product or new features.
Agile project teams are usually composed of people in various roles that can change from project to project to increase cross-functionality of personnel. For example a person may be a project manager for one project and a business analyst for another. Agile methods emphasize personal communication over written if the team is all in the same location and therefore generates less written documentation. If team members are in different locations, they correspond through videoconferencing, phone, e-mail, etc.
There seems to be a trend for companies to use the Agile method, based on a 2009 study that asked participants which web development module they used. Thirty percent said they use Agile up from two years ago, when only 8-10 percent used Agile. Agile proponents say that the method fosters closer relationships between developers and their clients, which can only be good for businesses.