Tuesday, September 17, 2019

The Use of Agile Methodology in Software Development


Agile Development Methodology

Agile Methodology is the most commonly used methodology nowadays in Software Development.
              Image result for agile methodology

Agile development methodology illustrates how Agile is the opposite of traditional waterfall projects where you make a detailed plan and implement the plan. Making detailed plans is an efficient way of approaching projects when it is clear what the end product. When you are not, you need to accept it will take multiple iterations to create the desired end product. That is where Agile methodology has a clear advantage over traditional project management. Agile accepts there will be changes and pro-actively accepts this in their methodologies. Agile is not a new concept and can be traced back to 1957, in the early 1990’s a number of software development methodologies were being used by software teams such as DSDM 1995, Scrum 1996, Crystal & XP 1996, FDD 1997. Even though these were all created before the existence of “Agile” they were the basis for Agile as we know it. In 2001 a group of methodology and software experts who used these methodologies came together to create a unified Agile Manifesto.
  

             Image result for agile methodology


Four Agile software development values

       Individuals and Interactions over processes and tools
       Working Software over comprehensive documentation
       Customer Collaboration over contract negotiation
       Responding to Change over following a plan


Twelve Agile software development principles

The Manifesto for Agile Software Development is based on twelve principles:
1.   Customer satisfaction by early and continuous delivery of valuable software.
2.   Welcome changing requirements, even in late development.
3.   Deliver working software frequently (weeks rather than months)
4.   Close, daily cooperation between business people and developers
5.   Projects are built around motivated individuals, who should be trusted
6.   Face-to-face conversation is the best form of communication (co-location)
7.   Working software is the primary measure of progress
8.   Sustainable development, able to maintain a constant pace
9.   Continuous attention to technical excellence and good design
10. Simplicity—the art of maximizing the amount of work not done—is essential
11. Best architectures, requirements, and designs emerge from self-organizing teams
12. Regularly, the team reflects on how to become more effective, and adjusts accordingly

Agile Methodology  vs. The traditional Waterfall Methodology

One of the differences between agile software development methods and waterfall is the approach to quality and testing. In the waterfall model, there is always a separate testing phase after a build phase; however, in agile software development testing is completed in the same iteration as programming.
Another difference is that traditional "waterfall" software development moves a project through various Software Development Lifecycle (SDLC) phases. One phase is completed in its entirety before moving on to the next phase.
Because testing is done in every iteration—which develops a small piece of the software—users can frequently use those new pieces of software and validate the value. After the users know the real value of the updated piece of software, they can make better decisions about the software's future. Having a value retrospective and software re-planning session in each iteration— Scrum typically has iterations of just two weeks—helps the team continuously adapt its plans so as to maximize the value it delivers. This follows a pattern similar to the PDCA cycle, as the work is planneddonechecked (in the review and retrospective), and any changes agreed are acted upon.
This iterative approach supports a product rather than a project mindset. This provides greater flexibility throughout the development process; whereas on projects the requirements are defined and locked down from the very beginning, making it difficult to change them later. Iterative product development allows the software to evolve in response to changes in business environment or market requirements.
Because of the short iteration style of agile software development, it also has strong connections with the lean startup concept.



No comments:

Post a Comment

WebService, API and their Difference

Web service (WS) A service offered by an electronic device to another electronic device, communicating with each other via the World W...