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:
Advantages of using agile process:
·
Adaptive to the changing environment
·
Ensures customer satisfaction
·
Least documentation
·
Reduces risk of development
References:
http://www.versionone.com/agile101/agile_development.asp
http://www.allaboutagile.com/how-to-implement-scrum-in-10-easy-steps/
http://www.versionone.com/agile101/agile_development.asp
http://www.allaboutagile.com/how-to-implement-scrum-in-10-easy-steps/
Hey Sam!
ReplyDeleteI 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.