https://www.qatechies.com

What is Agile software development methodology?

SDLC-Models

What is Agile software development methodology?

Welcome to this Post – “What is Agile software development methodology in SDLC?”.

This post discusses about the “What is Agile software development methodology in Software Development Lifecycle (SDLC).” We will also focus on some frequently asked questions for what is Agile-Model in the development? What all are its development methods and practices. So, go ahead and enjoy reading…

Abstract

There are lots of methodologies for software development and one of most adapted nowadays is Agile software development. This methodology is a process similar to other software development methodologies like Iterative model etc.

Interestingly, Agile methodology differs significantly from other methodologies. By meaning, Agile means ‘ability to move quickly and easily’. The key aspect in Agile development is adapting the changes while moving quickly.

 In traditional software development methodologies like Waterfall model, a simple project can take several months or years to complete. This pushes clients into dilemma whether the end product will be as expected or not as client may not get to seethe end product until the completion of the project.

 So, to develop a software product using this method, projects allocate extensive periods of time for Requirements gathering,design, coding, testing and UAT before finally deploying the project.

In contrast to this, Agile projects have something called “Sprints” or “iterations”which are shorter in duration (these can vary from 2 weeks to 2 months) during which pre-concluded features are developed and delivered.

Agile projects can have one or more iterations and deliver the complete product at the end of the final iteration.


Discussion

  We will begin our discussion by picking up simple case study and we will limit our imaginations to see breakdown of various phases in completion of work-product.

Case Study: Some ABC company is working on project to come up with a competing product for MS Excel, that provides all the features provided by MS Excel and any other features requested by the Client.

The final product needs to be ready in 14 months of time. Let us see how this project is executed in traditional and Agile methodologies.

In traditional Waterfall model –

  • At a high level, the project teams would spend 20% of their time on gathering requirements and analysis (2.8 months)
  • ~15% of their time on design (2.1 months)
  • 40% on coding (5.6 months) and unit testing
  • 20% on System and Integration testing (2.8 months).
  • At the end of this cycle, the project may also have 0.7 months of UAT(User Acceptance testing\Alpha\beta\etc) by marketing teams.

The actual drawback:

In this approach, the client doesn’t know how the end product looks like. Only when the project goes live customers can practically work on it but on the other hand it becomes too late to make significant changes.

With Agile development methodology

  • In the Agile methodology, each project is broken up into several ‘Iterations’.
  • All Iterations should be of the same time duration (between 2 to 8 weeks).
  • At the end of each iteration, a working software product should be delivered.
  • In each iteration, an Epic is picked up and broken down to stories. Each story is analysed and further broken down to sub-stories. If an Epic is not large and can be considered for completion in an iteration then a complete single Epic can be considered else these stories will be clubbed for one iteration and remaining will be picked up in next sprint.

In an iteration say 1– the team will decide the basic core features that are required in the product in this case Excel and decide which of these features can be developed in the first iteration – we can say base of excel like architecture.

 Any remaining features in that new excel that cannot be delivered in the first iteration will be taken up in the next iteration or subsequent iterations, based on priority.

In these iterations, each story is broken down into tasks to be accomplished by developer, tester etc members of the team.

  • At the end of the first iterations, the team will deliver a working base architecture of software in this case say excel base with the features that were finalized for that iteration.
  • Similarly, at the end of each iteration the customer is delivered a working software that is incrementally enhanced.


Agile software development principles


There are some principles on which this development happens and this is share below:Agile Software Development is based on twelve principles: [1]

  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 software development practices


Agile software development is supported by a number of concrete practices, covering areas like requirements, design, modelling, coding, testing, planning, risk management,process, quality, etc. Some notable agile software development practices include [2]:

  • Acceptance test-driven development (ATDD)
  • Agile modelling
  • Agile testing
  • Backlogs (Product and Sprint)
  • Behaviour-driven development (BDD)
  • Business analyst designer method (BADM)
  • Continuous integration (CI)
  • Cross-functional team
  • Domain-driven design (DDD)
  • Information radiators (scrum board, task board, visual management board, burndown chart)
  • Iterative and incremental development (IID)
  • Low-code development platforms
  • Pair programming
  • Planning poker
  • Refactoring
  • Retrospective
  • Scrum events (sprint planning, daily scrum, sprint review and retrospective)
  • Story-driven modeling
  • Test-driven development (TDD)
  • Timeboxing
  • User story
  • User story mapping
  • Velocity tracking

In Agile way of working there are no separate phases and all the work is done in single phase only. Agile methodology gives more importance to collaboration within the team, collaboration with the client, adapting to change and delivering working software.

There are many Agile software development methods. Agile software development methods support a broad range of the software development life cycle (SLDC). Some focus on the practices (e.g., XP, pragmatic programming, agile modelling), while some focus on managing the flow of work(e.g., Scrum, Kanban). Some support activities for requirements specification and development (e.g., FDD), while some seek to cover the full development lifecycle (e.g., DSDM, RUP). [2]

Popular agile software development frameworks include (but are not limited to):

  • Adaptive software development (ASD)
  • Agile modeling
  • Agile unified process (AUP)
  • Disciplined agile delivery
  • Dynamic systems development method (DSDM)
  • Extreme programming (XP)
  • Feature-driven development (FDD)
  • Lean software development
  • Kanban
  • Rapid application development (RAD)
  • Scrum
  • Scrumban

Advantages of Agile software development Methodology

  • In Agile methodology the delivery of software is unremitting.
  • The customers are satisfied because after every Sprint working feature of the software is delivered to them.
  • If the client has any request or feedback for any change in the feature then it can be accommodated in the current release of the product.
  • In Agile methodology the daily interactions are required between the business people and the developers.
  • Changes in the requirements are accepted even in the later stages of the development.

Disadvantages of the Agile software development Methodology

  • In Agile methodology the documentation is less.
  • Sometimes the requirement is not very clear hence it’s difficult to predict or arrive at the expected result.
  • In few of the projects estimations on efforts might go wrong.

References:

  1. Kent Beck; James Grenning; Robert C. Martin; Mike Beedle; Jim Highsmith; Steve Mellor; Arie van Bennekum; Andrew Hunt; Ken Schwaber; Alistair Cockburn; Ron Jeffries; Jeff Sutherland; Ward Cunningham; Jon Kern; Dave Thomas; Martin Fowler; Brian Marick (2001). “Principles behind the Agile Manifesto”. Agile Alliance. Archived from the original on 14 June 2010. Retrieved 6 June 2010.
  2. https://en.wikipedia.org/wiki/Agile_software_development

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

advanced-floating-content-close-btn
https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-5034726663464946 (adsbygoogle = window.adsbygoogle || []).push({});
advanced-floating-content-close-btn 
*************************** Do you want to learn TOSCA? Do you want to excel in Career? Try my New Courses: 1. Tricentis Tosca and Working with Excel   2. Tricentis Tosca and UI Automation Great News!!   Price has been slashed down for limited period of time.So Hurry!!! Click The Shown Links and Enjoy Learning. ***************************
 
error: Content is protected !!