0% found this document useful (0 votes)
34 views112 pages

Agile

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
34 views112 pages

Agile

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 112

Agile Software Developmemt

Methodology
Table of content

 Software development
 Software development methodologies
 Agile methodology
 Overview
 Principles
 Development cycle
 Pros & Cons
 Cermonies
 key roles
Software Development

 What is the comment between all these companies?


Software Development

 What is the comment between all these companies?

 All depend on software development


Software Development Methodologies

 Waterfall (most basic)

 Basic

 Most common in the 20th century


Software Development Methodologies
Waterfall
 Pros

 The linear nature of the waterfall development method makes it easy to understand and manage.
Software Development Methodologies
Waterfall
 Pros

 The linear nature of the waterfall development method makes it easy to understand and manage.

 Projects with clear objectives and stable requirements can best use the waterfall method.
Software Development Methodologies
Waterfall
 Cons

 The waterfall development method is often slow and costly due to its rigid structure and tight
controls.
Software Development Methodologies
Waterfall
 Cons

 The waterfall development method is often slow and costly due to its rigid structure and tight
controls.

 These drawbacks can lead waterfall method users to explore other software development
methodologies.
Software Development Methodologies
Agile
 Agile Overview

 Agile evolved from different development approaches in the 1990s and is a response to some
project managers’ dislike of the rigid, linear Waterfall methodology. It focuses on flexibility,
continuous improvement, and speed.
Software Development Methodologies
Agile
 Agile Overview

 Agile methodology is based on incremental, iterative approach. Instead of in-depth planning at


the beginning of the project, Agile methodologies are open to changing requirements over time
and encourage constant feedback from the end users. The goal of each iteration is to produce a
working product.
Software Development Methodologies
Agile
 Agile Principles

 Our highest priority is to satisfy the customer through early and continuous delivery of valuable
software.
Software Development Methodologies
Agile
 Agile Principles

 Our highest priority is to satisfy the customer through early and continuous delivery of valuable
software.

 Welcome changing requirements, even late in development. Agile processes harness change for
the customer’s competitive advantage.
Software Development Methodologies
Agile
 Agile Principles

 Our highest priority is to satisfy the customer through early and continuous delivery of valuable
software.

 Welcome changing requirements, even late in development. Agile processes harness change for
the customer’s competitive advantage.

 Deliver working software frequently, from a couple of weeks to a couple of months, with
preference to the shorter timescale.
Software Development Methodologies
Agile
 Agile Principles

 Business people and developers must work together daily throughout the project.
Software Development Methodologies
Agile
 Agile Principles

 Business people and developers must work together daily throughout the project.

 Build projects around motivated individuals. Give them the environment and support they need
and trust them to get the job done.
Software Development Methodologies
Agile
 Agile Principles

 Business people and developers must work together daily throughout the project.

 Build projects around motivated individuals. Give them the environment and support they need
and trust them to get the job done.

 The most efficient and effective method of conveying information to and within a development
team is face-to-face conversation.
Software Development Methodologies
Agile
 Agile Principles

 Working software is the primary measure of progress.


Software Development Methodologies
Agile
 Agile Principles

 Working software is the primary measure of progress.

 Continuous attention to technical excellence and good design enhances agility.


Software Development Methodologies
Agile
 Agile Principles

 Working software is the primary measure of progress.

 Continuous attention to technical excellence and good design enhances agility.

 At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its
behavior accordingly.
Software Development Methodologies
Agile
 Agile Development Cycle

 Planning: Once an idea is deemed viable, the project team comes together to identify features,
prioritize each feature, and assign them to an iteration.
Software Development Methodologies
Agile
 Agile Development Cycle

 Planning: Once an idea is deemed viable, the project team comes together to identify features,
prioritize each feature, and assign them to an iteration.

 Requirements analysis: Key stakeholders and users meet to identify business requirements that
are quantifiable, relevant, and detailed.
Software Development Methodologies
Agile
 Agile Development Cycle

 Planning: Once an idea is deemed viable, the project team comes together to identify features,
prioritize each feature, and assign them to an iteration.

 Requirements analysis: Key stakeholders and users meet to identify business requirements that
are quantifiable, relevant, and detailed.

 Design: The design is prepared from the requirements identified and the team considers what the
product or solution will look like, deciding on a test strategy or plan to proceed.
Software Development Methodologies
Agile
 Agile Development Cycle

 Implementation, coding or development: Coding or developing features, and scheduling iterations


for deployment.
Software Development Methodologies
Agile
 Agile Development Cycle

 Implementation, coding or development: Coding or developing features, and scheduling iterations


for deployment.

 Testing: Test the code against the requirements to make sure the product is actually solving
customer needs. This phase includes unit testing, integration testing, system testing, and
acceptance testing.
Software Development Methodologies
Agile
 Agile Development Cycle

 Implementation, coding or development: Coding or developing features, and scheduling iterations


for deployment.

 Testing: Test the code against the requirements to make sure the product is actually solving
customer needs. This phase includes unit testing, integration testing, system testing, and
acceptance testing.

 Deployment: Deliver the product to customers. Once customers start using the product, they may
run into new problems that the project team will need to address in future iterations.
Software Development Methodologies
Agile
 Agile Pros

 Change is embraced: With shorter planning cycles, there’s always opportunity to refine and
reprioritize the backlog to accommodate changes throughout the project.
Software Development Methodologies
Agile
 Agile Pros

 Change is embraced: With shorter planning cycles, there’s always opportunity to refine and
reprioritize the backlog to accommodate changes throughout the project.

 End-goal can be unknown: Agile is beneficial for projects where the end-goal is not clearly
defined. As the project progresses, the goals will become evident and the team can adapt.
Software Development Methodologies
Agile
 Agile Pros
 Faster, high-quality delivery: Breaking down the project into iterations allows the team to focus
on high-quality development, testing, and collaboration. Conducting testing during each iteration
means that bugs get identified and solved more quickly.
Software Development Methodologies
Agile
 Agile Pros
 Faster, high-quality delivery: Breaking down the project into iterations allows the team to focus
on high-quality development, testing, and collaboration. Conducting testing during each iteration
means that bugs get identified and solved more quickly.

 Strong team interaction: Agile embraces frequent communication and face-to-face interactions.
Software Development Methodologies
Agile
 Agile Pros
 Customers are heard: Customers have many opportunities to see the work being delivered, share
their input, and have an impact on the end product.
Software Development Methodologies
Agile
 Agile Pros
 Customers are heard: Customers have many opportunities to see the work being delivered, share
their input, and have an impact on the end product.

 Continuous improvement: Feedback is encouraged from users and team members throughout the
project, so lessons learned are used to improve future iterations.
Software Development Methodologies
Agile
 Agile Cons
 Planning can be less concrete: Because project managers are often reprioritizing tasks, it’s
possible some items scheduled for delivery may not be complete in time. And, additional sprints
may be added at any time in the project, adding to the overall timeline.
Software Development Methodologies
Agile
 Agile Cons
 Planning can be less concrete: Because project managers are often reprioritizing tasks, it’s
possible some items scheduled for delivery may not be complete in time. And, additional sprints
may be added at any time in the project, adding to the overall timeline.

 Team must be knowledgeable: Agile teams are usually small, so team members must be highly
skilled in a variety of areas and understand Agile methodology.
Software Development Methodologies
Agile
 Agile Cons
 Time commitment from developers: Active involvement and collaboration is required throughout
the Agile process, which is more time consuming than a traditional approach.
Software Development Methodologies
Agile - Implementation
 Methodologies Used to Implement Agile

 Feature-driven development (FDD)

 Adaptive system development (ASD)

 Dynamic Systems Development Method (DSDM)

 Kanban

 Lean Software Development (LSD)

 Scrum
Software Development Methodologies
Agile - Implementation
 Methodologies Used to Implement Agile

 Feature-driven development (FDD)

 Adaptive system development (ASD)

 Dynamic Systems Development Method (DSDM)

 Kanban

 Lean Software Development (LSD)

 Scrum
Software Development Methodologies
Agile - Implementation
 Agile scrum

 Scrum is a subset of Agile and one of the most popular process frameworks for implementing
Agile.
Software Development Methodologies
Agile - Implementation
 Agile scrum

 Scrum is a subset of Agile and one of the most popular process frameworks for implementing
Agile.

 It is an iterative development model often used to manage complex software and product
development.
Software Development Methodologies
Agile - Implementation
 Agile scrum

 Fixed-length iterations, called sprints lasting one to two weeks long, allow the team to ship
software on a regular cadence.
Software Development Methodologies
Agile - Implementation
 Agile scrum

 Fixed-length iterations, called sprints lasting one to two weeks long, allow the team to ship
software on a regular cadence.

 At the end of each sprint, stakeholders and team members meet to plan next steps.
Software Development Methodologies
Agile - Implementation
 Sprint

 A sprint is a fixed period of time wherein team members work on a specific goal.

 Each sprint is normally between one week and one month, with two weeks being the most
common.

 Usually, daily meetings are held to discuss the progress of the project undertaken as well as
difficulties faced by team members.

 The outcome of the sprint is a functional deliverable.


Software Development Methodologies
Agile - Implementation
 Sprint

 A sprint is a fixed period of time wherein team members work on a specific goal.
Software Development Methodologies
Agile - Implementation
 Sprint

 A sprint is a fixed period of time wherein team members work on a specific goal.

 Each sprint is normally between one week and one month, with two weeks being the most
common.
Software Development Methodologies
Agile - Implementation
 Sprint

 A sprint is a fixed period of time wherein team members work on a specific goal.

 Each sprint is normally between one week and one month, with two weeks being the most
common.

 Usually, daily meetings are held to discuss the progress of the project undertaken as well as
difficulties faced by team members.
Software Development Methodologies
Agile - Implementation
 Sprint

 A sprint is a fixed period of time wherein team members work on a specific goal.

 Each sprint is normally between one week and one month, with two weeks being the most
common.

 Usually, daily meetings are held to discuss the progress of the project undertaken as well as
difficulties faced by team members.

 The outcome of the sprint is a functional deliverable.


Software Development Methodologies
Agile - Implementation
 Agile scrum ceremonies

 Sprint planning
Software Development Methodologies
Agile - Implementation
 Agile scrum ceremonies

 Sprint planning

 Daily scrum
Software Development Methodologies
Agile - Implementation
 Agile scrum ceremonies

 Sprint planning

 Daily scrum

 Sprint review
Software Development Methodologies
Agile - Implementation
 Agile scrum ceremonies

 Sprint planning

 Daily scrum

 Sprint review

 Sprint retrospective
Software Development Methodologies
Agile - Implementation
 Agile scrum ceremonies

 Sprint planning

 Daily scrum

 Sprint review

 Sprint retrospective
Software Development Methodologies
Agile - Implementation
 Sprint planning

 At the beginning of a sprint, the scrum team holds a sprint planning event to:
Software Development Methodologies
Agile - Implementation
 Sprint planning

 At the beginning of a sprint, the scrum team holds a sprint planning event to:

 Agree on the sprint goal, that is, what they intend to deliver by sprint end
Software Development Methodologies
Agile - Implementation
 Sprint planning

 At the beginning of a sprint, the scrum team holds a sprint planning event to:

 Agree on the sprint goal, that is, what they intend to deliver by sprint end

 Identifying product backlog items that contribute towards this goal


Software Development Methodologies
Agile - Implementation
 Sprint planning

 At the beginning of a sprint, the scrum team holds a sprint planning event to:

 Agree on the sprint goal, that is, what they intend to deliver by sprint end

 Identifying product backlog items that contribute towards this goal

 Form a sprint backlog by selecting which identified items should be completed in the spring
Software Development Methodologies
Agile - Implementation
 Sprint planning

 The suggested maximum duration of sprint planning is eight hours for a four-week sprint.
Software Development Methodologies
Agile - Implementation
 Agile scrum ceremonies

 Sprint planning

 Daily scrum

 Sprint review

 Sprint retrospective
Software Development Methodologies
Agile - Implementation
 Agile scrum ceremonies

 Sprint planning

 Daily scrum

 Sprint review

 Sprint retrospective
Software Development Methodologies
Agile - Implementation
 Daily scrum

 Each day during a sprint, the developers hold a daily stand-up scrum which may be facilitated by
a scrum master.
Software Development Methodologies
Agile - Implementation
 Daily scrum

 Each day during a sprint, the developers hold a daily stand-up scrum which may be facilitated by
a scrum master.

 Daily scrum meetings are intended to be less than 15 minutes in length, taking place at the same
time and location daily.
Software Development Methodologies
Agile - Implementation
 Daily scrum

 The purpose of the meeting is to announce progress made towards the sprint goal and issues that
may be hindering the goal, without going into any detailed discussion.
Software Development Methodologies
Agile - Implementation
 Daily scrum

 The purpose of the meeting is to announce progress made towards the sprint goal and issues that
may be hindering the goal, without going into any detailed discussion.

 Once over, individual members can go into a 'breakout session' or an 'after party' for extended
discussion and collaboration.
Software Development Methodologies
Agile - Implementation
 Agile scrum ceremonies

 Sprint planning

 Daily scrum

 Sprint review

 Sprint retrospective
Software Development Methodologies
Agile - Implementation
 Agile scrum ceremonies

 Sprint planning

 Daily scrum

 Sprint review

 Sprint retrospective
Software Development Methodologies
Agile - Implementation
 Sprint review

 At the end of each sprint, the team presents the work they have completed as a live demo rather
than a presentation.
Software Development Methodologies
Agile - Implementation
 Sprint review

 At the end of each sprint, the team presents the work they have completed as a live demo rather
than a presentation.

 (progress shown to stakeholders to elicit their feedback)


Software Development Methodologies
Agile - Implementation
 Agile scrum ceremonies

 Sprint planning

 Daily scrum

 Sprint review

 Sprint retrospective
Software Development Methodologies
Agile - Implementation
 Agile scrum ceremonies

 Sprint planning

 Daily scrum

 Sprint review

 Sprint retrospective
Software Development Methodologies
Agile - Implementation
 Sprint retrospective

 Also at the end of each sprint, the team reflects on how well Scrum is working for them and talks
about any changes that need to be made in the next sprint.
Software Development Methodologies
Agile - Implementation
 Sprint retrospective

 Also at the end of each sprint, the team reflects on how well Scrum is working for them and talks
about any changes that need to be made in the next sprint.

 (identify lessons and improvements for the next sprints)


Software Development Methodologies
Agile - Implementation
 Tools used in scrum

 User stories
Software Development Methodologies
Agile - Implementation
 Tools used in scrum

 User stories

 A user story describes a software feature from the customer’s perspective.


Software Development Methodologies
Agile - Implementation
 Tools used in scrum

 User stories

 A user story describes a software feature from the customer’s perspective.

 It includes the type of user, what they want, and why they want it.
Software Development Methodologies
Agile - Implementation
 Tools used in scrum

 Estimation
Software Development Methodologies
Agile - Implementation
 Tools used in scrum

 Estimation

 Hours
Software Development Methodologies
Agile - Implementation
 Tools used in scrum

 Estimation

 Hours

 Story points
Software Development Methodologies
Agile - Implementation
 Tools used in scrum

 Estimation

 Hours

 Story points
Software Development Methodologies
Agile - Implementation
 Tools used in scrum

 Story points

 Story points are a unit of measure for expressing an estimate of the overall effort that will be
required to fully implement a product backlog item or any other piece of work.
Software Development Methodologies
Agile - Implementation
 Tools used in scrum

 Story points

 Story points are a unit of measure for expressing an estimate of the overall effort that will be
required to fully implement a product backlog item or any other piece of work.

 When we estimate with story points, we assign a point value to each item.
Software Development Methodologies
Agile - Implementation
 Tools used in scrum

 Story points

 The raw values we assign are unimportant


Software Development Methodologies
Agile - Implementation
 Tools used in scrum

 Story points

 The raw values we assign are unimportant

 What matters are the relative values.


Software Development Methodologies
Agile - Implementation
 Tools used in scrum

 Story points

 The raw values we assign are unimportant

 What matters are the relative values.

 A user story that is assigned two story points should be twice as much effort as a one-point
story. It should also be two-thirds the effort of a story that is estimated as three story points.
Software Development Methodologies
Agile - Implementation
 Tools used in scrum

 Why story points

 With story points, it’s all relative.

 Instead of arguing about how long it might take each team member personally to do
something, teams instead can quickly say that this user story is about twice or three times as
much effort as that user story.
Software Development Methodologies
Agile - Implementation
 Agile scrum key roles

 Product manager

 Product owner

 Scrum Master

 Dev. team
Software Development Methodologies
Agile - Implementation
 Agile scrum key roles

 Product manager
Software Development Methodologies
Agile - Implementation
 Agile scrum key roles

 Product manager

 Keeping tabs on market dynamics to come up with competitive analyses


Software Development Methodologies
Agile - Implementation
 Agile scrum key roles

 Product manager

 Keeping tabs on market dynamics to come up with competitive analyses

 Concentrates on product features and capabilities


Software Development Methodologies
Agile - Implementation
 Agile scrum key roles

 Product manager

 Keeping tabs on market dynamics to come up with competitive analyses

 Concentrates on product features and capabilities

 Rallying stakeholders around the product vision


Software Development Methodologies
Agile - Implementation
 Agile scrum key roles

 Product manager
Software Development Methodologies
Agile - Implementation
 Agile scrum key roles

 Product manager

 Learning and catering to user needs


Software Development Methodologies
Agile - Implementation
 Agile scrum key roles

 Product manager

 Learning and catering to user needs

 Creating an atmosphere for teams to embrace independent decision-making


Software Development Methodologies
Agile - Implementation
 Agile scrum key roles

 Product manager

 Learning and catering to user needs

 Creating an atmosphere for teams to embrace independent decision-making

 Defining the vision the product should be moulded after


Software Development Methodologies
Agile - Implementation
 Agile scrum key roles

 Product owner
Software Development Methodologies
Agile - Implementation
 Agile scrum key roles

 Product owner

 Defining the vision


Software Development Methodologies
Agile - Implementation
 Agile scrum key roles

 Product owner

 Defining the vision

 Handling product backlog


Software Development Methodologies
Agile - Implementation
 Agile scrum key roles

 Product owner

 Defining the vision

 Handling product backlog

 Prioritizing needs
Software Development Methodologies
Agile - Implementation
 Agile scrum key roles

 Product owner

 Defining the vision

 Handling product backlog

 Prioritizing needs

 Supervising development stages


Software Development Methodologies
Agile - Implementation
 Agile scrum key roles

 Product owner

 Defining the vision

 Handling product backlog

 Prioritizing needs

 Supervising development stages

 Foreseeing client requirements


Software Development Methodologies
Agile - Implementation
 Agile scrum key roles

 Scrum Master
Software Development Methodologies
Agile - Implementation
 Agile scrum key roles

 Scrum Master

 They protect teams from inward and outside distractions and disruptions
Software Development Methodologies
Agile - Implementation
 Agile scrum key roles

 Scrum Master

 They protect teams from inward and outside distractions and disruptions

 They oversee successful team interaction and operation


Software Development Methodologies
Agile - Implementation
 Agile scrum key roles

 Scrum Master

 They protect teams from inward and outside distractions and disruptions

 They oversee successful team interaction and operation

 They tend smaller scrum teams and are in charge of small groups performances
Software Development Methodologies
Agile - Implementation
 Agile scrum key roles

 Scrum Master
Software Development Methodologies
Agile - Implementation
 Agile scrum key roles

 Scrum Master

 They assist Product Owners by effectively managing Backlog


Software Development Methodologies
Agile - Implementation
 Agile scrum key roles

 Scrum Master

 They assist Product Owners by effectively managing Backlog

 They contribute heavily towards quality management, resource management, and scope
management
Software Development Methodologies
Agile - Implementation
 Agile scrum key roles

 Dev. Team
Software Development Methodologies
Agile - Implementation
 Agile scrum key roles

 Dev. Team

 also known as a “squad”


Software Development Methodologies
Agile - Implementation
 Agile scrum key roles

 Dev. Team

 also known as a “squad”

 A development team is composed of professionals who do the hands-on work of completing


the tasks in a Scrum sprint.
Software Development Methodologies
Agile - Implementation
 Agile scrum key roles

 Dev. Team
Software Development Methodologies
Agile - Implementation
 Agile scrum key roles

 Dev. Team

 This means development team members can be computer engineers, designers, writers, data
analysts, or any other role needed to reach sprint goals.
Software Development Methodologies
Agile - Implementation
 Agile scrum key roles

 Dev. Team

 This means development team members can be computer engineers, designers, writers, data
analysts, or any other role needed to reach sprint goals.

 The development team doesn’t just wait for orders; they usually collaborate to map out goals
and plans for achieving them.
Thank You

You might also like