0% found this document useful (0 votes)
20 views51 pages

4.1 DSDM

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)
20 views51 pages

4.1 DSDM

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/ 51

Chapter 3 – Agile Project Management Framework:

3.1 Introduction and Definition Agile, Agile Project Life Cycle

3.2 Agile Manifesto: History of Agile and Agile Principles

Chapter 3 Agile software development 1


Topics Covered

❖ 3.1 Introduction and Definition Agile, Agile Project Life Cycle


❖ 3.2 Agile Manifesto: History of Agile and Agile Principles

❖ History of Agile
❖ Introduction to Agile
❖ Agile Definition
❖ Agile Project Life cycle
❖ Agile project management
❖ Agile Manifesto
❖ Agile Principles

Chapter 3 Agile software development 2


Rapid software development

✧ Why?
▪ Need to react to changes more quickly than 2 year long waterfall projects
▪ 2 years and then you got the design wrong anyway! Small deliveries aren't
abstract
✧ How?
▪ Goal - Deliver working software quickly
• Compromise - less functionality in a delivery, not lower quality
• Less documentation
▪ Focus on the code rather than the design
▪ Interleave
• Specification, design and implementation are inter-leaved
▪ Deliver small versions and get user (stakeholder) input

Chapter 3 Agile software development 3


4
Ouc

e
en
siv
on
ss sp
Re
e
od e
C ittl
Br

Chapter 3 Agile software development


y alit
Qu
Your
Favorite!
Transparen
cy
e
Cycl
Long
s
Time
t
plexi
Com
Pain Points

y
uc tivit
Prod
y
Introduction to Agile :

❖ Agile is a project management approach developed as a more flexible and


efficient way to get products to market. The word ‘agile’ refers to the ability
to move quickly and easily. Therefore, an Agile approach enables project
teams to adapt faster and easier compared to other project methodologies.
❖ Many of today’s projects have more unknowns than a traditional project
management methodology can adequately handle. This uncertainty makes
it challenging to document requirements and adapt to changes
successfully.

Chapter 3 Agile software development 5


What is Agile?

❖ Agile is a time boxed, iterative approach to software delivery that


builds software incrementally from the start of the project, instead of
trying to deliver it all at once near the end.

❖ It works by breaking projects down into little bits of user


functionality called user stories, prioritizing them, and then
continuously delivering them in short two week cycles called
iterations.

Chapter 3 Agile software development 6


Agile :

❖ Agile software development refers to software development methodologies


centered round the idea of iterative development, where requirements and
solutions evolve through collaboration between self-organizing cross-
functional teams.
❖ The ultimate value in Agile development is that it enables teams to deliver
value faster, with greater quality and predictability, and greater aptitude to
respond to change.
❖ Scrum and Kanban are two of the most widely used Agile methodologies

Chapter 3 Agile software development 7


DEFINITION OF AGILE

❖ Agile is a set of values and principles where work processes,


methods, collaboration, and delivery continuously are improved and
adapted to any changing context.
❖ The concept “agility” involves the ability to adapt to changing requirements
in a fast, flexible, and responsible way.
❖ Agile is primarily a rule set meant to guide teams in choosing the right
methods and procedures for them at each stage of project life cycle.
❖ Agile is a group of methodologies that demonstrate a commitment to
tight feedback cycles and continuous improvement.

Chapter 3 Agile software development 8


Why choose Agile?

❖ Teams choose agile so they can respond to changes in the marketplace or


feedback from customers quickly without derailing a year's worth of plans.

❖ "Just enough" planning and shipping in small, frequent increments lets your
team gather feedback on each change and integrate it into future plans at
minimal cost.

Chapter 3 Agile software development 9


Few examples of Agile in the Real world:

❖ The build-your-own meal :


❖ Everyone is familiar with the build-your-own-meal trend in fast, casual
dining. At restaurants such as Chipotle or Subway, an employee puts your
meal together as you give feedback.
❖ More cheese? Less cheese? Different bread? Guacamole? No guacamole?
No problem.
❖ Every step of the way, your food project manager checks in with you to
make sure your food project is still on track. The end result is a delicious
meal that was improved during each step thanks to constant face-to-face
collaboration.

Chapter 3 Agile software development 10


Ex: The Apple Genius Bar

❖ Looking past the pretentiousness of the name, the Apple Genius Bar is a great, real-world
example of Agile project management in action.
❖ When you come in with your busted iPhone or iPad, you don’t have to fill out a bunch of
forms or wait in a series of lines (it’s more like a waiting gathering). It’s a world apart from
your last experience at the DMV.
❖ What makes the Genius Bar an Agile process is the focus on communication. The
associate you deal with asks you questions and takes notes. In other words: “individuals
and interactions over processes and tools.”
❖ You may be saying, “But Apple uses processes and tools, like the iPad they take notes
on.”
❖ Yes, but the conversation between humans comes first.

Chapter 3 Agile software development 11


Why Use Agile Methods

❖ Improve Customer Involvement


❖ Increase Quality
❖ Simplify Releases
❖ Drive Down Risk

Chapter 3 Agile software development 12


Agile Manifesto :

❖ The Agile Manifesto is a document that sets out the key values and principles
behind the Agile philosophy and serves to help development teams work more
efficiently and sustainably.
❖ Known officially as ‘The Manifesto for Agile Software Development’, the
manifesto detailing 4 Values and 12 Principles.
❖ The Agile Manifesto is a document that identifies four key values and 12 principles
that its authors believe software developers should use to guide their work.
❖ It was produced by 17 developers during an outing on Feb. 11-13, 2001, at The
Lodge at Snowbird ski resort in Utah.
❖ The Agile Manifesto's purpose :
❖ Proponents of Agile methodologies say the four values outlined in the Agile
Manifesto promote a software development process that focuses on quality by
creating products that meet consumers' needs and expectations.

Chapter 3 Agile software development 13


What are the 4 Values of the Agile Manifesto are:

❖ That is, while there is value in the items on the right, we value the items on the left
more.
❖ The Agile method works in ongoing sprints of project planning and execution,
enabling you to continuously adapt and mature your plan, scope, and design
throughout the project.

❖ 4 Values of Agile:
❖ Individuals and interactions over processes and tools
❖ Working software over comprehensive documentation
❖ Customer collaboration over contract negotiation
❖ Responding to change over following a plan

Chapter 3 Agile software development 14


Agile Manifesto 4 values :

Chapter 3 Agile software development 15


Agile Software Development

• Agile software development is a group of software development methods based


on iterative and incremental development, where requirements and solutions evolve
through collaboration between self-organizing, cross-functional teams.
– Methods
– Iterative
– incremental

• It promotes adaptive planning, evolutionary development and delivery, a time-


boxed iterative approach, and encourages rapid and flexible response to change.

• It is a conceptual framework that promotes foreseen interactions throughout the


development cycle.

• The Agile Manifesto[ introduced the term in 2001.

Chapter 3 Agile software development 16


Agile Methodologies

❖ Scrum
❖ Extreme Programming (XP)
❖ Dynamic Systems Development Method (DSDM)
❖ Feature-Driven Development (FDD)
❖ Lean and Kanban Software Development
❖ Crystal

Chapter 3 Agile software development 17


Problems with Agile methods

✧ It can be difficult to keep the interest of customers / users who are involved
in the process.
✧ Team members may be unsuited to the intense involvement that
characterizes agile methods.
✧ Prioritizing changes can be difficult where there are multiple stakeholders.
✧ Maintaining simplicity requires extra work.
✧ Contracts may be a problem as with other approaches to iterative
development.
✧ Because of their focus on small, tightly-integrated teams, there are
problems in scaling agile methods to large systems.
✧ Less emphasis on documentation - harder to maintain when you get a new
team for maintenance

Chapter 3 Agile software development 18


Advantages of Agile model:

❖ Customer satisfaction by rapid, continuous delivery of useful software.


❖ People and interactions are emphasized rather than process and tools. Customers,
developers and testers constantly interact with each other.
❖ Working software is delivered frequently (weeks rather than months).
❖ 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

Chapter 3 Agile software development 19


Disadvantages of Agile model:

❖ In case of some software deliverables, especially the large ones, it is


difficult to assess the effort required at the beginning of the software
development life cycle.
❖ The project can easily get taken off track if the customer representative is
not clear what final outcome that they want.
❖ Only senior programmers are capable of taking the kind of decisions
required during the development process. Hence it has no place for newbie
programmers, unless combined with experienced resources.

Chapter 3 Agile software development 20


Plan-driven and agile specification

separate Iteration within stage


development Not
stages with necessarily
the outputs to waterfall
be produced model – plan-
at each of driven,
these stages incremental
planned in development
advance. is possible

User's full
agreement at
end, not before
code
Iteration of
stage
Chapter 3 Agile software development 21
Difference

22
Chapter 3 Agile software development
A ‘prescribing medication’ story

Chapter 3 Agile software development 23


Examples of task cards for prescribing
medication

Chapter 3 Agile software development 24


History of Agile:

❖ The origins of Agile methodology can be traced back to the 1990sThe origins of Agile
methodology can be traced back to the 1990s, 1975The origins of Agile methodology can
be traced back to the 1990s, 1975, or even as early as the 1960sThe origins of Agile
methodology can be traced back to the 1990s, 1975, or even as early as the 1960s.
However, everyone agrees that Agile took root with the creation of the
Manifesto for Agile Software Development, also known as The Agile Manifesto.
❖ The Agile Manifesto was originally released in February 2001 to create a new way of
managing software development. A group of leading software developers wrote the
manifesto on a retreat in Utah, where they had met to discuss industry problems and
potential solutions.
❖ Their goal was to develop new methods for changing a product and project that would not
impact the cost or delay the production schedule.
❖ They determined that dividing a project into shorter iterations would allow for faster
development and testing. Reviews (called sprint retrospectives) would take place at the
end of every iteration, and changes could then be made without having to wait for the end
product.
❖ The Agile Manifesto was initially drafted as a solution for software development
management, but the Agile methodology has since
Chapter 3 Agile software grown to encompass projects across
development 25
various industries and businesses.
❖ Timeline above contains some key moments in the History of Agile:
❖ 1970 – Also, Gas is 36 cents per gallon. Wut?!
❖ 1990 – Jeff Sutherland and Ken Schwaber conceived the Scrum process in the early 90’s.
❖ 1991 – Also, the release of Nirvana’s Nevermind signified the start of the Grunge era that
would dominate the music scene up to the mid-90’s.
❖ 1995 – Scrum is codified in 1995 in order to present it at a conference in Austin, Texas (US)
and published the paper “SCRUM Software Development Process”.
❖ Scrum was first tried and refined at Individual, Inc., Fidelity Investments, and IDX (now
GE Medical). These weren’t simply startups with greenfield development efforts.
❖ 1995 – Also, OJ Simpson was found NOT GUILTY!
❖ 2001 – In February 2001, Jeff and Ken were amongst 17 software development leaders
creating the Manifesto for Agile Software Development. – Their goal was to take all the good
things they’ve learned and create a “charter” for others to use. By this time there had been
many variations of agility that evolved. The manifesto was taking the best of the best and
boiling it down to principles rather than a framework or methodology.
❖ 2001 – Also, Lord of the Rings comes out in Theaters
Chapter 3 Agile software development 26
12 Principles of Agile

❖ Principle 1: Our Highest Priority is to Satisfy the Customer through Early and
Continuous Delivery of Valuable Software.
✧ Number of practices have significant impact upon quality of final system:
✧ 1. Strong correlation between quality and early delivery of a partially functioning
system.
▪ The less functional the initial delivery, the higher the quality of the final delivery.
✧ 2. Another strong correlation exists between final quality and frequently deliveries of
increasing functionality.
▪ The more frequent the deliveries, the higher the final quality.

✧ Agile processes deliver early and often.


▪ Rudimentary system first followed by systems of increasing functionality every few
weeks.
▪ Customers my use these systems in production, or
▪ May choose to review existing functionality and report on changes to be made.
▪ Regardless, they must provide meaningful feedback.

Chapter 3 Agile software development 27


❖ Principle 2: Welcome Changing Requirements, even late in Development. Agile
Processes harness change for the Customer’s Competitive Advantage.
❖ This is a statement of attitude.
❖ Participants in an agile process are not afraid of change.
❖ Requirement changes are good;
❖ Mean team has learned more about what it will take to satisfy the market.

❖ Agile teams work to keep the software structure flexible, so requirement change
impact is minimal.
❖ Moreso, the principles of object oriented design help us to maintain this kind of
flexibility.

Chapter 3 Agile software development 28


❖ Principle3:
❖ Deliver Working Software Frequently
(From a couple of weeks to a couple of months with a preference to the shorter time
scale.
❖ We deliver working software.
❖ Deliver early and often.
❖ Be not content with delivering bundles of documents, or plans.
❖ Don’t count those as true deliverables.

❖ The goal of delivering software that satisfies the customer’s needs.


❖ Principle 4: Business People and Developers Must Work Together Daily throughout
the Project.
❖ For agile projects, there must be significant and frequent interaction between the
❖ customers,
❖ developers, and
❖ stakeholders.

❖ An agile project must be continuously guided.

Chapter 3 Agile software development 30


❖ Principle 5: Build Projects around Motivated Individuals. (Give them the
environment and support they need, and trust them to get the job done.)
❖ An agile project has people the most important factor of success.
❖ All other factors, process, environment, management, etc., are considered to be
second order effects, and are subject to change if they are having an adverse
effect upon the people.

❖ Example: if the office environment is an obstacle to the team, change the office
environment.
❖ If certain process steps are obstacles to the team, change the process steps.

Chapter 3 Agile software development 31


❖ Principle 6: The Most Efficient and Effective Method of Conveying Information to
and within a Development Team is face-to-face Communications.
❖ In agile projects, developers talk to each other.
❖ The primary mode of communication is conversation.
❖ Documents may be created, but there is no attempt to capture all project
information in writing.
❖ An agile project team does not demand written specs, written plans, or written
designs.
❖ They may create them if they perceive an immediate and significant need, but
they are not the default.
❖ The default is conversation.

Chapter 3 Agile software development 32


❖ Principle 7: Working Software is the Primary Measure of Progress
✧ Agile projects measure their progress by measuring the amount of working software.

▪ Progress not measusred by phase we are in, or


▪ by the volume of produced documentation or
▪ by the amount of code they have created.
✧ Agile teams are 30% done when 30% of the necessary functionality is working.

Chapter 3 Agile software development 33


❖ Principle 8: Agile Processes promote sustainable development
❖ The sponsors, developers, and users should be able to maintain a constant pace
indefinitely.
✧ An agile project is not run like a 50 yard dash; it is run like a marathon.
▪ The team does not take off at full speed and try to maintain that speed for the
duration.
▪ Rather they run at a fast, but sustainable, pace.

✧ Running too fast leads to burnout, shortcuts, and debacle.


✧ Agile teams pace themselves.
▪ They don’t allow themselves to get too tired.
▪ They don’t borrow tomorrow’s energy to get a bit more done today.
▪ They work at a rate that allows them to maintain the highest quality standards for
the duration of the project.

Chapter 3 Agile software development 34


❖ Principle 9: Continuous Attention to Technical Excellence and Good Design
enhances Agility.
✧ High quality is the key to high speed.
▪ The way to go fast is to keep the software as clean and robust as possible.

▪ Thus, all agile team-members are committed to producing only the highest
quality code they can.

▪ They do not make messes and then tell themselves they’ll clean it up when they
have more time.
▪ Do it right the first time!

Chapter 3 Agile software development 35


❖ Principle 10: Simplicity – the art of maximizing the amount of work not done – is
essential.
✧ Agile teams take the simplest path that is consistent with their goals.

▪ They don’t anticipate tomorrow’s problems and try to defend against them today.

▪ Rather they do the simplest and highest quality work today, confident that it will
be easy to change if and when tomorrows problems arise.

Chapter 3 Agile software development 36


❖ Principle 11: The Best Architectures, Requirements, and Designs emerge from
Self-Organizing Teams.

❖ An agile team is a self organizing team.


❖ Responsibilities are not handed to individual team members from the outside.
❖ Responsibilities are communicated to the team as a whole, and the team
determines the best way to fulfill them.

❖ Agile team members work together on all project aspects.


❖ Each is allowed input into the whole.
❖ No single team member is responsible for the architecture, or the requirements,
or the tests, etc.
❖ The team shares those responsibilities and each team member has influence
over them.

Chapter 3 Agile software development 37


❑ Principle 12: At regular Intervals, the Team reflects on how to become more
effective, then tunes and adjusts its behavior accordingly.
❑ An agile team continually adjusts its organization, rules, conventions, relationships,
etc.

❑ An agile team knows that its environment is continuously changing, and knows that
they must change with that environment to remain agile.

Chapter 3 Agile software development 38


12 Principles of Agile

1. Satisfy the customer through early and continuous delivery of valuable software.

2. Welcome changing requirements.

3. Deliver working software frequently.

4. Work together daily throughout the project.

5. Build projects around motivated individuals who are supported and trusted to get the job done.

6. Use face-to-face conversation whenever possible.

7. Working software is the primary measure of progress.

8. Maintain a constant pace indefinitely.

9. Give constant attention to technical excellence and good design.

10. Simplicity—the art of maximizing the amount of work not done—is essential.

11. The best architectures, requirements, and designs emerge from self-organizing teams.

12. Reflect on how to become more effective, then tune and adjust accordingly at regular intervals.

Chapter 3 Agile software development 39


12 Principles of Agile

Chapter 3 Agile software development 40


Agile Project Life Cycle

❖ Agile SDLC model is a combination of iterative and incremental process models with focus on process
adaptability and customer satisfaction by rapid delivery of working software product.

❖ Agile Methods break the product into small incremental builds. These builds are provided in iterations.

❖ Agile Software Development Lifecycle Phases Explained


❖ Phase 1: Requirements.
❖ Phase 2: Design.
❖ Phase 3. Development and Coding.
❖ Phase 4. Integration and Testing.
❖ Phase 5. Implementation and Deployment.
❖ Phase 6. Review.

Chapter 3 Agile software development 41


The Agile Process Flow

❖ In any enterprise there may be projects operating simultaneously, multiple


sprints/iterations being logged on different product lines, and a variety of
customers, both external and internal, with a range of business needs.
1. Concept - Projects are envisioned and prioritized
2. Inception - Team members are identified, funding is put in place, and initial
environments and requirements are discussed
3. Iteration/Construction - The development team works to deliver working
software based on iteration requirements and feedback
4. Release - QA (Quality Assurance) testing, internal and external training,
documentation development, and final release of the iteration into production
5. Production - Ongoing support of the software
6. Retirement - End-of-life activities, including customer notification and
migration

Chapter 3 Agile software development 42


Agile Software Development Lifecycle

❖ Agile software development lifecycle is dominated by the iterative process. Each


iteration results in the next piece of the software development puzzle - working
software and supporting elements, such as documentation, available for use by
customers - until the final product is complete.

Chapter 3 Agile software development 43


Agile Iteration Workflow

Chapter 3 Agile software development 44


❖ A typical iteration process flow can be visualized as follows:
❖ Requirements - Define the requirements for the iteration based on the product
backlog, sprint backlog, customer and stakeholder feedback
❖ Development - Design and develop software based on defined requirements
❖ Testing - QA (Quality Assurance) testing, internal and external training,
documentation development
❖ Delivery - Integrate and deliver the working iteration into production
❖ Feedback - Accept customer and stakeholder feedback and work it into the
requirements of the next iteration

Chapter 3 Agile software development 45


The Agile Software Development Lifecycle
for Large Scale Enterprises

Chapter 3 Agile software development 46


Making the Agile Process Work

❖ The Agile method is more suitable in situations where customers and project stakeholders are
available to provide input, functional portions of software are needed quickly, flexibility is desired
to accommodate changing requirements, and the team is co-located and able to effectively
collaborate.
❖ Below are four activities that will help support the adoption of Agile workflow:
❖ Daily Meetings - Host consistent or daily stand-up meetings to maintain open communication,
hold workers accountable, and keep each iteration moving forward
❖ Live Demonstrations - Deliver live demonstrations of each iteration’s final product to show
progress
❖ Share Feedback - Receive feedback from stakeholders and customers and share it with the
entire team before the next iteration begins
❖ Remain Agile - Make changes to your process based on feedback to ensure each iteration
improves the last

Chapter 3 Agile software development 47


5 stages of the Agile Life Cycle

❖ Project Initiation:
❖ The first stage in the life cycle of agile software development. Often
referred to as the inception or envision phase, this initial stage is about
discussing the project vision and the ROI justification.

❖ Planning:
❖ This speculative phase is when the Agile lifecycle really takes shape for
the team. Release planning is where the team gets together with their
sponsor or product owner and identifies exactly what they are looking for.

Chapter 3 Agile software development 48


❖ Development:
❖ Agile product development delivers high quality working products
in incremental phases, sprints, or iterations.
❖ Developers start building the first iteration of the product with the aim of
having a working, usable product at the end of the sprint.
❖ Production
❖ Your product has now been deployed and is being used by final end-users.
❖ The production phase typically ends when the product is ready to be retired.

Chapter 3 Agile software development 49


❖ Retirement :
❖ The final stage of the Agile lifecycle. The product is now at the ‘end of life’ stage
and will be pulled from production and decommissioned (sometimes referred to
as ‘sunsetting’). Customers are notified and informed about migration to newer
releases or alternative options.
❖ Products are retired for a number of reasons. In most cases, it is because a
newer release is being deployed and (or) the older release is no longer being
supported. In this case, some final, minor software updates may be made to the
newer system.

Chapter 3 Agile software development 50


Agile Software Development Life Cycle

Chapter 3 Agile software development 51

You might also like