Information Technology Reference
In-Depth Information
provide the lighter, faster, nimbler software development processes necessary for
survival in the rapidly growing and volatile Internet software industry. Attempting
to offer a “useful compromise between no process and too much process” (Juran &
Gryna, 1988), the agile methodologies provide a novel, yet sometimes controversial,
alternative for software being built in an environment with vague and/or rapidly
changing requirements (Agile Journal, 2006).
Agile software development is a methodology for software development that
promotes development iterations, open collaboration, and adaptability throughout the
life cycle of the project. There are many agile development methods; most minimize
risk by developing software in short amounts of time. Software developed during one
unit of time is referred to as an iteration, which typically lasts from two to four weeks.
Each iteration passes through a full software development cycle, including planning,
requirements analysis, design, writing unit tests, and then coding until the unit tests
pass and a working product is finally demonstrated to stakeholders. Documentation
is no different than software design and coding. It, too, is produced as required by
stakeholders. The iteration may not add enough functionality to warrant releasing
the product to market, but the goal is to have an available release (without bugs) at
the end of the iteration. At the end of the iteration, stakeholders re-evaluate project
priorities with a view to optimizing their return on investment.
Agile software development processes are built on the foundation of iterative
development to that foundation. They add a lighter, more people-centric viewpoint
than traditional approaches. Agile processes use feedback, rather than planning, as
their primary control mechanism. The feedback is driven by regular tests and releases
of the evolving software (Agile Journal, 2006). Figure 2.4 shows the conceptual
comparison of the Waterfall Model, iterative method, and an iterative time boxing
method.
2.3.2.0.4
Advantages(Stevensetal.,2007)
The agile process offers the advantage of maximizing a product's innovative
features.
The agile process can produce a product that has the optional to be highly
successful in the market.
The agile development process minimizes upfront investment and provides
options for incorporating customer learning before, during, and after product
launch.
2.3.2.0.5
Disadvantages(Stevensetal.,2007)
The process is an open-ended program plan.
It may create cost and schedule overruns that could impact a company's entire
operational stability.
Search WWH ::




Custom Search