4.1 DSDM
4.1 DSDM
❖ History of Agile
❖ Introduction to Agile
❖ Agile Definition
❖ Agile Project Life cycle
❖ Agile project management
❖ Agile Manifesto
❖ Agile Principles
✧ 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
e
en
siv
on
ss sp
Re
e
od e
C ittl
Br
y
uc tivit
Prod
y
Introduction to Agile :
❖ "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.
❖ 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.
❖ 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.
❖ 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
❖ Scrum
❖ Extreme Programming (XP)
❖ Dynamic Systems Development Method (DSDM)
❖ Feature-Driven Development (FDD)
❖ Lean and Kanban Software Development
❖ Crystal
✧ 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
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
❖ 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 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.
❖ 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.
▪ 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!
▪ 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.
❑ An agile team knows that its environment is continuously changing, and knows that
they must change with that environment to remain agile.
1. Satisfy the customer through early and continuous delivery of valuable software.
5. Build projects around motivated individuals who are supported and trusted to get the job done.
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.
❖ 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.
❖ 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
❖ 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.