Agile is a system of software development practices which
promises low overhead, high flexibility, and satisfied customers. Although it
may sound too good to be true, Agile development practices have led to many
benefits for leading organizations for years. According to Wikipedia, “Agile
software development is a group of software development methods based on
iterative and incremental development, where requirements and solutions evolve
through collaboration between self-organizing, cross-functional teams.” One of its
major benefits is that it uses a time-boxed iterative approach, and allows for
rapid response to changes made to the requirements of the software.
In the mid-1990’s, Agile software development evolved from
the earlier and much heavier weight waterfall approach which used to be
commonplace among software developers. Waterfall
is a sequential design process, where progress is seen as flowing steadily
downwards throughout the stages of the software processes. The waterfall moves
from one stage to another starting with the requirements then moving on to the
design, implementation, verification, and maintenance. At any one given time,
the group is only working on one of these items at a time.
This is where the benefit of Agile can be seen. Working
software can be published sooner because the developers are more self-motivated
and self-driven. The developers assign portions of the job to themselves so
they can first sense where their skillset will be of the most use. Agile allows incomplete but working software
to be turned out sooner, giving the development team something to show the
customer to keep them interested and funding the team. From the initial
skeleton of the program forward, Agile makes it easier to deal with inevitable
changes to the software that will happen. Agile is more prepared to deal with
these issues because it allows a version system of the software to be released,
each time building off the previous version. By the time the customer is
satisfied with the product, there may have been more or less versions of it.
That in itself is another benefit of the Agile development process because it
allows more or less work or specialization to be done by request. Also, if one
developer leaves the team, the team will be less devastated than with the
Waterfall development model, making the company less dependent on each
individual software developer. Is that a good thing for the developers? No.
However, it is one of the most efficient software development models out there,
so we should all become familiar with it.
source & img courtesy: http://en.wikipedia.org/wiki/Agile_software_development
Hello Brian,
ReplyDeleteI liked the tone you used for this post. It has a good mix of a personal and professional touch in describing Agile. I definitely enjoyed looking at the photo you used for this post as it gave me a visual perspective of how Agile is applied to the process of solving software development projects. I liked the fact that you described the terminology such as waterfall to make your point clear for the reader. I think you could reword the last sentence of paragraph two to make it clearer to understand. Overall good job.