What is Agile Model in Software Engineering

What is Agile Model in Software Engineering?

  • The agile model in software engineering is mostly used in service-based companies.
  • In the Agile model, customers can request changes in requirements at any point in the development phase.
  • These changes do not affect the development of another module.
  • In the Agile model, requirements break into small pieces, and then the team work on it.
  • In the V model after the requirement gets fixed the whole team focuses on whole product development but in agile methodology, requirements change frequently and more focus on module-dependent requirements so it’s a module-driven methodology.
  • The agile Model is also called a Multi Iterative life cycle.
  • Agile means the ability to move quickly and easily.
  • The multi-Iterative life cycle is the way by which the project is broken up into several smaller pieces. Each iteration is called a Sprint.
  • Agile Methods break the product into small incremental builds. These builds are provided in the iterations.

Sprint In Agile Model

Example of Agile Model in Software Engineering:

  • Let’s assume we have to create a large website, and the website has 12 web pages that are going to be a part of the whole flow.
  • In an Agile environment, we will work on one page at a time and the iteration is going to be completed in the period of a month. So, at the end of the month, there is always a deliverable product that the end user could use and provide feedback.
  • At the end of the sprints, you are getting a product.

Scrum is one of the version/way/principle/frameworks of the Agile Model in Software Engineering

  • Around 90 % of projects are implemented in Scrum and a popular way to implement agile
  • Within Scrum, each iteration is called a Sprint
  • After completion of Sprint, the software/project would be delivered to the customer and then the customer gives his feedback.
  • The customer is always involved in the development method and they give feedback before the actual end product, unlike the waterfall model where the customer has zero visibility.
  • In Agile you have maximum visibility, every 3 weeks, every 4 weeks depending on the length of the iteration that the customer chooses, he gets the piece of the software at the end of the sprint
  • Flow like:

                     The process is broken into small pieces-

                     Plan → Build → Test → Review  (Sprint 1)

                     Plan → Build → Test → Review  (Sprint 2)

                    Several increment releases called sprints

                    Within Scrum, each iteration is called a sprint

Scrum In Agile Model

How do we break the whole thing in?

User Stories in Agile Model:

  • In Agile, we write User Stories.
  • User Stories are the way in which you are going to provide the requirements.
  • User Story is contains-what is a feature that is going to be developed.
  • Each user story is a compact feature that is going to develop a piece of code and at the end, the project goes live.
  • These user stories are kept in a backlog

Product backlog in Agile Model:

  • The first is the Product backlog. The product backlog practically has all the user stories (not only the first sprint, second sprint …n).
  • The product backlog is the total requirements for the whole project.
  • It includes requirements for all modules.
  • Product owners gather requirements from the stakeholder
  • The product owner is a team member for the sprint paling meetings.
  • The product owner is responsible for creating a product backlog.

Sprint Backlog in Agile Model:

  • Created by the product owner
  • Sprint backlog contains a story that means complete detailed info for the requirement which are required for module development.
  • Only the prioritization stories are taken in the Sprint backlog after sprint planning.
  • Prioritization is basically the way by which we are going to assign a level of importance to each user story. Usually done with the Product Owner and Customer
  • Everyone wants to make sure the most important and most relevant user stories get executed in the first sprint itself
  • Now, Prioritization is done, and let’s say we are in sprint 1.

How do we keep a track of the stories on development?

  • This can be done with a daily status call or meeting with each team member and i.e. daily scrum calls /stand-up meetings/status meetings.
  • It is basically a 15 min meeting where the whole agile team is present there.
  • The product owner is also present
  • Each individual is responsible to answer three questions:

                       1. What did you do yesterday?

                       2. What are you planning to do today?

                       3. Are there any roadblocks (impediments/problems)?

Agenda of daily scrum?

  • What is the progress of the Project?
  • So it is basically a status update.
  • The scum master takes care of track of how many tasks are developed as per plan and he/she tries to resolve the blockers if any within the team).
  • Scrum Master creates a Burn Down Chart.
  • A Burn Down Chart is a graphical representation of what was the work that was required to be executed yesterday, and what got completed.

Roles

1. Product Owner

  • Product owners gather requirements from the stakeholder.
  • The product owner is a team member for the sprint paling meetings.
  • The product owner is responsible for creating a product backlog.
  • Responsible for defining the features of the product.

2. Scrum Master:

  • Protecting the team and a process. Keeps things glowing and clears the blockers from team members.

3. Team 

  • Developers + Testers + anyone who helps in developing the product.
  • Group of professionals who deliver the product (developers, programmers, designers).
  • They complete their work within the sprint or cycle.

4. Stakeholder

  • The stakeholder is the customer.
  • In agile methodology, the customer is a member of the top body.
  • At any phase like in development, testing, or at requirement they can change the requirement.
  • They have a bunch of requirements related to the project.

Scrum events / Ceremonies/discussion / Meetings –

Sprint planning:

  • Where the entire Scrum team sits together at the beginning of every Sprint and decides which story needs to be taken on the next sprint and discusses with the estimations.
  • Mostly Product owner, development lead or senior developer, and test lead or senior tester do the estimations for any user stories.

Daily Scrum: 

  • 15-minute time-boxed meeting which was held every day of the Sprint, where-
  • Each individual is responsible to answer three questions:

                   1. What did you do yesterday?

                   2. What are you planning to do today?

                   3. Are there any roadblocks (impediments/problems)?

Sprint review: 

  • An informal meeting is held at the end of every Sprint where the Scrum team discusses feedback.

Sprint retrospective: 

  • A meeting where the Scrum team discusses the previous Sprint like how it went, any positives done, any negatives done, any improvements, etc and establishes improvements for the next Sprint.

Difference between V Model and Agile Model in Software Engineering

Difference between V and Agile model

Advantages and Disadvantages of Agile Model in Software Engineering

Advantages of Agile Model in Software Engineering:

  • The high amount of visibility to the customer.
  • Customers, developers, and testers constantly interact with each other.
  • Working software is delivered frequently (weeks rather than months).
  • A face-to-face conversation is the best form of communication.
  • Close daily cooperation between business people and developers.
  • Continuous attention to technical excellence and good design.
  • Regular adaptation to changing circumstances.
  • Even late changes in requirements are welcomed.

Disadvantages of Agile Model in Software Engineering:

  • In the case of some software deliverables, especially large ones, it is difficult to assess the estimations for requirements at the beginning of the software development life cycle.
  • lack of documentation.
  • The project can easily get taken off track if the customer representative is not clear about the requirement.
  • Maximum times senior programmers are capable of taking the kind of decisions required during the development process

When to use Agile Model:

  • When new changes are needed to be implemented.
  • Both system developers and stakeholders alike find they also get more freedom of time and options than if the software was developed
Other Popular Articles

What is Prototype Model

Leave a Comment