Tuesday, October 8, 2013

AGILE: One of the most efficient software development schemes


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. 

1 comment:

  1. Hello Brian,
    I 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.

    ReplyDelete