Agile: Introduction, Methods and Advantages

With the fast-paced nature of technology, rapidly fielding systems has never been more important. Success depends on well-defined requirements and the ability to rapidly respond to change during and after development. The inability to rapidly respond may cause the system to become obsolete before initial fielding. Creating a structure where processes allow for changes during system development requires restructuring system development values and principles at all levels.

In software development life cycle, there are two main considerations, one is to emphasize on process and the other is the quality of the software and process itself. Agile software processes are an iterative and incremental based development, where requirements are changeable according to customer needs. Agile process is itself a software development process. Agile process is an iterative approach in which customer satisfaction is at highest priority as the customer has direct involvement in evaluating the software. The agile process follows the software development life cycle which includes requirements gathering, analysis, design, coding, testing and delivers partially implemented software and waits for the customer feedback. In the whole process, customer satisfaction is at highest priority with faster development time.
Agile process requires less planning and it divides the tasks into small increments. Agile process is meant for short term projects with an effort of team work that follows the software development life cycle. Software development life cycle includes the following phases Requirements gathering, Analysis, Design, Coding , Testing, Maintenance. The involvement of software team management with customers reduces the risks associated with the software.

There are several methodologies through which we can implement Agile Projects. A few widely used methods are:
·                     Extreme Programming: it is the most successful method of developing agile software because of its focus on customer satisfaction. It requires maximum interaction from customer to develop the software.
·                     Scrum: it is basically based on incremental software development process. In this process, the entire development cycle is divided into a series of iteration where each iteration is called a sprint. Maximum duration of a sprint is 30 days.
·                     Feature Driven Development (FDD): the key advantage of this method is to design the domain of the software to be produced before development.
Advantages of using agile process:
·         Adaptive to the changing environment
·         Ensures customer satisfaction
·         Least documentation
·         Reduces risk of development



1 comment:

  1. Hey Sam!

    I really enjoyed reading your blog. You do an excellent job of explaining what agile is and giving an overview of it. I absolutely loved that you included the helpful diagram. I also liked how you listed various ways in which we can implement agile projects.

    One piece of advice I would give you is to maybe include some of your own thoughts. This would make your voice more evident throughout your writing. Overall, I really loved reading your informative post on agile. Overall, great job and I look forward to reading more from you.

    ReplyDelete