Agile Methodology

Agile Methodology

Agile Methodology?

No alt text provided for this image

What is Agile?

  • ??Agile is a general philosophy or mindset.
  • Agile is a philosophy, i.e., a set of values and principles to make a decision for developing software.

Agile Meaning

  • Agile simply means Quick.

?What is Agile Methodology?

  • ??Agile Methodology is a flexible, iterative and collaborative approach to software development that emphasizes customer satisfaction, working software, adapting to changing requirements and continuous delivery.
  • ??Agile Methodology is one of the different Software Development Life Cycle Models (i.e., SDLC Models) available in the market.

No alt text provided for this image
Agile is based on the iterative-incremental model.


Agile

  • Agile is a flexible and iterative software development methodology that emphasizes customer satisfaction, working software, and adapting to changing requirements.

Roles in Agile

There are three different roles in a Agile methodology.

  • ??Scrum Master
  • ??Product Owner
  • ?Development Team

Cross-functional team

  • Agile Methodology, a cross-functional team is a group of people with different skills and expertise, such as developers, testers, designers, business analysts, and project managers. They collaborate closely throughout the development process to complete each stage of the software development life cycle, from ideation and planning to delivery. By working together, they can create more innovative and effective solutions to complex problems.
  • The benefits of a cross-functional team in Agile Methodology include increased efficiency, faster time to market, better collaboration and communication, and improved quality and customer satisfaction. By bringing together individuals with different skills and perspectives, cross-functional teams can create more innovative and effective solutions to complex problems.

How an Agile Team plan their work?

An Agile team plans their work through a collaborative process that involves the entire team. The team typically follows these steps:

1.????Product backlog creation: The team creates a product backlog, which is a list of all the features, functionalities, and user stories that need to be developed.

2.????Prioritization: The team prioritizes the items on the product backlog based on business value and customer needs.

3.????Sprint planning: The team conducts sprint planning meetings where they select the items they will work on in the upcoming sprint.

4.????Task creation: The team breaks down the selected items into small, actionable tasks that can be completed within the sprint.

5.????Estimation: The team estimates the effort required to complete each task and assigns it to team members based on their skills and availability.

6.????Sprint backlog creation: The team creates a sprint backlog, which is a list of tasks that need to be completed during the sprint.

7.????Daily stand-up meetings: The team conducts daily stand-up meetings to review progress, identify any obstacles, and adjust the plan as needed.

Throughout the development process, the Agile team continuously re-prioritizes and re-evaluates the work to ensure that they are meeting customer needs and delivering value. The team also conducts regular retrospectives to review their processes and identify areas for improvement.

What is a user requirement?

  • ?The user requirement defines the requirements of the user in terms of functionalities.
  • There may be of two type of functionality.

As a <User Role> I want <Functionality> so that <Business Value>

  • "As a [User Role], I want [Functionality] so that [Business Value]" is a user story format commonly used in ?Agile development to capture user ?requirements.
  • The format helps to clearly define the user's needs and the value that the feature or functionality will provide. The user role identifies who the feature is for, the functionality describes what the feature should do, and the business value explains why the feature is important.????
  • For example, a user story might look like this: "As a customer, I want to be able to track my order status online so that I can have peace of mind knowing when my order will arrive." In this example, the user role is the customer, the functionality is the ability to track order status online, and the business value is providing peace of mind to the customer.

??In order to <Business value> as a <User Role> I want <Functionality>.

  • In order to [Business value], as a [User Role], I want [Functionality]" is another user story format commonly used in Agile development to capture user requirements.
  • This format helps to clearly define the business value that the feature or functionality will provide, the user role who will benefit from it, and the specific functionality needed to achieve that value.?
  • For example, a user story might look like this: "In order to improve customer satisfaction, as a customer service representative, I want to be able to view a customer's purchase history and previous interactions with our company when they contact us for support."
  • In this example, the business value is to improve customer satisfaction, the user role is a customer service representative, and the functionality required is the ability to view a customer's purchase history and interactions with the company.
  • ?By using this format, development teams can understand the business value that the feature is intended to provide and can prioritize development efforts based on that value. They can also understand the specific user role that will benefit from the feature and ensure that it meets their needs.

Relation between User requirement and Task

  • User requirement talks about what is to be done. It defines the needs of users.
  • Task talks about how it is to be done. It defines how functionality is implemented.
  • User requirements are implemented by tasks. Every requirement is gathering as the task.
  • User requirement is divided into different tasks when it is planned in current iteration.
  • User tasks are estimated in hours based, generally it is between 2 to 12 hours.
  • Requirements are validated using acceptance test.

When the requirement is completed

  • In Agile development, a requirement is considered completed when it meets the "Definition of Done" (DoD). The Definition of Done is a set of criteria that defines the completion of a requirement and includes all necessary steps for the requirement to be considered fully implemented and ready for release.
  • The DoD is typically defined collaboratively by the development team, product owner, Scrum master and other stakeholders, and may vary depending on the project, product, or organization.

Some common criteria that might be included in a DoD for a requirement to be considered completed could be:

  • The code is written, tested, and reviewed
  • The requirement has passed all acceptance tests
  • The requirement has been integrated into the product or system
  • The requirement has been documented
  • The requirement has been approved by the product owner

When all the criteria in the Definition of Done have been met, the requirement is considered completed and can be considered for release to the end-users.

In simple terms, a requirement is considered completed in Agile development when it has been fully implemented, tested, and meets all of the agreed-upon criteria for completion. Once the requirement has been completed, it is considered ready for release to end-users.

What is Software Acceptance Criteria?

Acceptance Criteria is defined as the functionality, behaviour, and performance required by a product owner. It defines what is to be done so that the developer knows when a user requirement is complete.

?

Software Acceptance Criteria (SAC) is a set of specific requirements that a software product or system must meet in order to be considered acceptable by the client, customer, or end-user. These requirements can include things like functionality, performance, usability, and security, and are established in order to ensure that the software meets the expectations and needs of the stakeholders. SAC guides the testing process and helps the development team to verify that the software is ready for release and meets the requirements of the client, customer, or end-user.

Agile Manifesto

The Agile Manifesto is a set of guiding principles for Agile software development. It emphasizes the importance of flexibility, collaboration, and customer involvement, and prioritizes working software that meets the needs of the end-user over rigid processes and extensive documentation.

The Twelve Principle of Agile Manifesto

  1. Customer Satisfaction:?Manifesto provides high priority to satisfy the costumer's requirements. This is done through early and continuous delivery of valuable software.
  2. Welcome Change:?Making changes during software development is common and inevitable. Every changing requirement should be welcome, even in the late development phase. Agile process works to increase the customers' competitive advantage.
  3. Deliver the Working Software:?Deliver the working software frequently, ranging from a few weeks to a few months with considering the shortest time period.
  4. Collaboration:?Business people (Scrum Master and Project Owner) and developers must work together during the entire life of a project development phase.
  5. Motivation:?Projects should be build around motivated team members. Provide such environment that supports individual team members and trust them. It makes them feel responsible for getting the job done thoroughly.
  6. Face-to-face Conversation:?Face-to-face conversation between Scrum Master and development team and between the Scrum Master and customers for the most efficient and effective method of conveying information to and within a development team.
  7. Measure the Progress as per the Working Software:?The working software is the key and primary measure of the progress.
  8. Maintain Constant Pace:?The aim of agile development is sustainable development. All the businesses and users should be able to maintain a constant pace with the project.
  9. Monitoring:?Pay regular attention to technical excellence and good design to maximize agility.
  10. Simplicity:?Keep things simple and use simple terms to measure the work that is not completed.
  11. Self-organized Teams:?The Agile team should be self-organized. They should not be depending heavily on other teams because the best architectures, requirements, and designs emerge from self-organized teams.
  12. Review the Work Regularly:?The work should be reviewed at regular intervals, so that the team can reflect on how to become more productive and adjust its behavior accordingly.

Agile Software Development Life Cycle (SDLC)

Agile

  • Agile is one of the different Software Development Life Cycle Models (i.e. SDLC Models) available in the market

No alt text provided for this image
There are different types of methodologies


What is Agile Software Development Life Cycle (SDLC)

  • Agile Software Development Life Cycle (SDLC) is an iterative and incremental approach to software development that emphasizes flexibility, collaboration, and customer satisfaction.


What is Software development life cycle (SDLC)

  • The software development life cycle (SDLC) is a process for planning, creating, testing, deploying and maintaining software applications.

Why Agile SDLC Model became popular in the market?

  • Most of the Software projects use Agile SDLC Model for the below reasons:
  • These days most of the Application like Amazon, Flipkart etc. adapt to the changes in the market very quickly.
  • Traditional SDLC Models won't adapt to changes quickly and hence are not suitable for these days applications.
  • Agile SDLC Model become popular in the market, for the medium and large sized Application which evolve over a period of time by quickly adapting to the market needs.?
  • Agile SDLC became popular due to its ability to deliver working software quickly, adapt to changing requirements, and involve the customer in the development process.
  • Agile SDLC Model develops the Software over multiple iterations in an incremental manner

Why is SDLC important?

  • SDLC is important because it provides a structured and standardized approach to developing software, ensuring that software products are reliable, efficient, of high quality, delivered on time, within budget, and meet customer requirements.
  • Agile Methodologies

No alt text provided for this image
https://viewer.edrawsoft.com/public/s/78dfb449245725


https://viewer.edrawsoft.com/public/s/78dfb449245725

Agile Scrum Methodology

  • Agile is an approach to software development that emphasizes flexibility, collaboration, and rapid iteration
  • Scrum is a specific framework within Agile that provides a set of guidelines and practices to help teams implement the Agile approach effectively.

Agile Scrum Framework - Project Process

  • Scrum follows Agile principles and process

No alt text provided for this image
Scrum follows Agile principles and process

What are sprints?

  • Software is developed in?iterations(looping, Cycles, repetitive cycles of the software development process) known as Sprint
  • Software will be developed in an incremental manner with few set of requirements for every iteration
  • Sprint duration is 1 to 4 weeks
  • Ideal sprint duration is 2 weeks and is followed by most of the projects in real time

Scrum Roles

There are three different Scrum roles in a Agile methodology.

  • Scrum Master
  • Product Owner
  • Development Team

Artifacts of Scrum

  • The documentation and stuff which are prepared in scrum are known as Artifacts.

Product Owner

  • The Product Owner is one who runs the product from a business perspective.?
  • Knows the Business well
  • Defines the requirements and prioritizes their values.
  • takes an active role in iteration and releasing planning meetings.
  • sets the release date and contents.
  • Interacts with the customers?& represents the voice of the customer.
  • accepts the user stories that meet the definition of done and defined acceptance criteria.

Activities performed by Product Owner in the Project

Creates?Epics

  • EPIC is a large requirement, which can be broken into smaller requirements known as User stories?
  • Example:?View Here

Creates User Stories

  • User Stories are smaller requirements broken down from a larger Requirement known as Epic
  • Example:?View Here

Maintains the Stories in Product Backlog and priorities them

  • Created list of stories by Product Owner will reside in Product Backlog by default
  • Product Backlog is a prioritized list of user stories or product requirements that a team maintains and uses to plan and execute work during a Sprint.

Creates a Sprint

  • Create an Iteration known as Sprint for a duration which ranges from 1 to 4 weeks

Sprint Planning Meeting

  • Conducts Sprint Planning Meeting with Development Team to plan the scope of work for the upcoming sprint.
  • The goal of the meeting is to create a Sprint backlog,
  • Brings up the list of Prioritized Stories to be completed during the sprint
  • the team selects user stories from the product backlog and breaks them down into tasks, estimating the effort required to complete each task.
  • Estimates the stories with Development Team

Story Point

  • Estimate the complexity and amount of work required to complete a user story.
  • Development?Team will estimate User stories roughly
  • Fibonacci Series
  • 0 1 1 2 3 5 8 ….

Discusses and Finalizes stories that can be delivered by the Development Team in the Sprint

Assigns the finalized stories to the Sprint Backlog

Starts the Sprint

Scrum Master

The Scrum Master is a team leader and facility provider who helps the team member to follow agile practices, so that the team member meets their commitments and customers requirements.

  • Monitors and drives the Development Team to finish their Sprint goals
  • Enable the close co-operation between all the roles and functions.
  • Remove all the blocks which occur.
  • Conducts Daily Stand-up Meetings (i.e. Daily Scrum Meeting)
  • Meeting lasts for 15 Minutes every day
  • Development Team will attend this meeting and will be standing during this meeting

Every team member will provide their current work status during the meeting

  • What are we working now?
  • What is blocking our work?
  • What are our pending tasks?
  • Will we be able to finish our work on time?

Scrum Master Uses Burndown Chart to track the progress of the Development Team

  • A burndown chart is a visual tool used in Agile/Scrum to track and display the team's progress towards completing their work during a sprint or project.
  • Burndown chart gives the clear picture of how much work is remaining in the Sprint.
  • Click here ?Burndown chart

Sprint Review Meeting

  • Developed and Tested Stories will be shown as Demo to the Product Owner
  • Product Owner has to review and accept these stories

Sprint Retrospective Meeting

  • End of the sprint
  • What went well?
  • What went wrong?
  • Improvements needed for next sprints

Scrum Ceremonies

Scrum ceremonies are a set of meetings that provide structure to the Scrum framework and help the team plan, track progress, and adapt to change throughout the project.

  • Sprint Planning Meeting

Sprint Planning is a Scrum ceremony where the team determines what items from the Product Backlog they will work on during the upcoming Sprint, and how they will deliver them.

  • Daily Scrum Meeting

When sprint gets started a daily meeting is conducted by Scrum Master known as Daily Scrum Meeting. Daily Scrum Meeting is a 15-minute Scrum ceremony where the Scrum team updates each other on their progress and plans their work for the day.

  • Sprint Review Meeting

The Sprint Review Meeting is a Scrum ceremony where the team presents their completed work from the Sprint to stakeholders and receives feedback to incorporate into the product backlog for future Sprints.

  • Sprint Retrospective Meeting

The Sprint Retrospective Meeting is a Scrum ceremony where the team reflects on the previous Sprint, discusses what went well and what could be improved, and collaborates on a plan to implement those improvements in the next Sprint.

Scrum Practices

No alt text provided for this image
Scrum Practices

Development Team

  • Starts working on the User Stories assigned to the Sprint

Scrum Board -?View Here

  • Scrum Board is a board that shows the status of all the activities that need to be done within this sprint.

No alt text provided for this image

Scrum Board consists of four status:

  • To Do?
  • In Progress
  • Testing
  • Done
  • To Do: - Status means that the items or tasks that have not yet been started but are planned for completion in the current Sprint.
  • In Progress:- Status means that items or tasks that are currently being worked on by developers?
  • Testing :- The 'testing' means that the task is in a testing phase.
  • Done :- The Done means the task has been completed.

Developers in the Team, perform the below activities for each and every User story added to the Sprint:

  • Understand the Requirements to be developed
  • Design the Requirements
  • Code the Requirements
  • Unit Testing and Integration Testing of?Requirements
  • Fix the bugs reported against the User Stories
  • And others

Testers in the Team, perform the below activities for each and every User story added to the Sprint:

  • Understanding the Requirements for deriving the Testable Requirements
  • Create Test Cases
  • Execute Test Cases
  • Re-test bugs which are stated as fixed by developers
  • Perform other Testing activities like Automation, Testing Types etc.
  • And others

No alt text provided for this image
Scrum Process Framework

要查看或添加评论,请登录

社区洞察

其他会员也浏览了