Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software...
Transcript of Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software...
![Page 1: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/1.jpg)
© Codemanship Ltd 2015
Agile Software Development
![Page 3: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/3.jpg)
© Codemanship Ltd 2015
What To Expect Today
• Introduction to Agile
• The History of Agile Software Development
• The Agile Manifesto
• The 4 Agile Values
• Core principles of Agile
• Continuous Delivery
• Extreme Programming
• Planning
• Managing
• Designing
• Coding
• Testing
![Page 4: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/4.jpg)
© Codemanship Ltd 2015
What To Expect Tomorrow
• Scrum
• Roles
• Scrum Master
• Product Owner
• Development Team
• Events
• Sprints
• Daily Scrum
• Sprint Review (Retrospectives)
• Artefacts
• Product Backlog
• Sprint Backlog
• Product Increment
• Sprint Burn-down Chart
• Product Burn-down Chart
• Agile Pitfalls
• Agile, the CodemanshipWay
• Goals, not features
• Reality-driven Development
• How to build great Agile teams
• Scaling Agile - the reality
![Page 5: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/5.jpg)
INTRODUCTION TO AGILE
© Codemanship Ltd 2015
![Page 6: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/6.jpg)
HISTORY OF AGILE SOFTWARE DEVELOPMENT
© Codemanship Ltd 2015
![Page 7: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/7.jpg)
Waterfall Model (1970)
© Codemanship Ltd 2015
Managing The Development of Large Software Systems (1970)
Winston W. Royce
http://www.cs.umd.edu/class/spring2003/cmsc838p/Process/waterfall.pdf
"I believe in this concept, but the implementation described above is risky
and invites failure"
![Page 8: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/8.jpg)
Agile Is Older Than You Think #1
© Codemanship Ltd 2015
"We were doing incremental development as early as
1957, in Los Angeles, under the direction of Bernie
Dimsdale at IBM's Service Bureau Corporation. He was
a colleague of John von Neumann, so perhaps he
learned it there, or assumed it as totally natural. I do
remember Herb Jacobs (primarily, though we all
participated) developing a large simulation for Motorola,
where the technique used was, as far as I can tell ... All
of us, as far as I can remember, thought waterfalling of a
huge project was rather stupid, or at least ignorant of the
realities. I think what the waterfall description did for us
was make us realize that we were doing something else,
something unnamed except for 'software development.'"
Gerald Weinberg
"Iterative and Incremental
Development: A Brief History".
IEEE Computer, June 2003
![Page 9: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/9.jpg)
Agile Is Older Than You Think #2
© Codemanship Ltd 2015
Started writing about evolutionary
project management in 1970,
leading to Evo method described
in Principles of Software
Engineering Management (1988)
Tom Gilb
![Page 10: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/10.jpg)
Agile Is Older Than You Think #3
© Codemanship Ltd 2015
"A Process for the Development of Software for
Nontechnical Users as an Adaptive System".
Edmonds, E. A.
General Systems, 1974
(According to Edmonds, this was first submitted to
Computer Aided Design magazine in 1970, and was
rejected with the criticism:
“If you don't know what you are going to do before
you start you shouldn't start"
Earnest Edmonds
![Page 11: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/11.jpg)
Agile Is Older Than You Think #4
© Codemanship Ltd 2015
Rapid Application Development (RAD) developed and
deployed by the New York Telephone Company's
Systems Development Center under the direction of Dan
Gielan in 1974
Gielan went on to lecture extensively about their
approach
Dan Gielan
![Page 12: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/12.jpg)
Spiral Model (1986)
© Codemanship Ltd 2015
A Spiral Model of Software Development and Enhancement (1986)
Barry Boehm
http://csse.usc.edu/csse/TECHRPTS/1988/usccse88-500/usccse88-500.pdf
![Page 13: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/13.jpg)
When Dinosaurs Ruled The Earth (1980’s)
© Codemanship Ltd 2015
![Page 14: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/14.jpg)
The Lightweight Backlash (1990’s)
© Codemanship Ltd 2015
![Page 15: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/15.jpg)
Snowbird, Utah, 2001
© Codemanship Ltd 2015
![Page 16: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/16.jpg)
THE AGILE MANIFESTO
© Codemanship Ltd 2015
![Page 17: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/17.jpg)
© Codemanship Ltd 2015
We are uncovering better ways of developing software by
doing it and helping others do it. Through this work we have
come to value:
• Individuals and interactions over processes and tools
• Working software over comprehensive documentation
• Customer collaboration over contract negotiation
• Responding to change over following a plan
That is, while there is value in the items on the right, we
value the items on the left more.
![Page 18: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/18.jpg)
Agile Principles
© Codemanship Ltd 2015
1. Customer satisfaction by early and continuous delivery of useful software
2. Welcome changing requirements, even late in development
3. Working software is delivered frequently (weeks rather than months)
4. Close, daily cooperation between business people and developers
5. Projects are built around motivated individuals, who should be trusted
6. Face-to-face conversation is the best form of communication (co-location)
7. Working software is the principal measure of progress
8. Sustainable development, able to maintain a constant pace
9. Continuous attention to technical excellence and good design
10.Simplicity—the art of maximizing the amount of work not done—is essential
11.Self-organizing teams
12.Regular adaptation to changing circumstances
![Page 19: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/19.jpg)
CONTINUOUS DELIVERY
© Codemanship Ltd 2015
![Page 20: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/20.jpg)
What Is Continuous Delivery?
Continuous delivery is the process of having a shippableproduct/ piece of software after each check in to source control.
![Page 21: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/21.jpg)
Business Implications Of Continuous Delivery
• Deployment becomes entirely a business decision
• Deployment can happen as frequently as the business requires
• Deployment can happen as soon as features & changes are ready
• At any given time, the amount of work in progress is minimised
• Cycle times from conception to delivery can be massively reduced
• Features/changes per release can be minimised
• Business feedback cycles can be minimised
• Businesses can learn faster
![Page 22: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/22.jpg)
Technical Implications of Continuous Delivery
• The software must always be fit for purpose
• Test assurance needs to be high
• Programmers must be able to build and properly test the software quickly and cost-effectively
• Deploying software must be fast, reliable and cost-effective
• Building, testing & deploying software must be fully automated
• Whatever you deliver, it must be easy to change so it can continue to evolve
![Page 23: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/23.jpg)
EXTREME PROGRAMMING
© Codemanship Ltd 2015
![Page 24: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/24.jpg)
History of XP
• 1993 - Chrysler C3 payroll project initiated
• 1994 - Kent Beck brought in to performance-tune Smalltalk code
• Beck’s role widens to look at development process
• 1996 – Beck becomes C3 project leader
• Implements ideas from collaborations with Ward Cunningham
• Ron Jeffries brought in to develop ideas, acts as coach on C3 project
• 1995 - Principles & practices of XP shared with wider world via original c2.com Wiki (invented by Cunningham)
• 1999 – Beck’s Extreme Programming Explained published
© Codemanship Ltd 2015
![Page 25: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/25.jpg)
Nothing New (Examples)
© Codemanship Ltd 2015
1957 – NASA Project Mercury software
teams drive development by agreeing
failing tests up-front and specifically
writing code to pass those tests (Test-
driven Development)
1984 – Thinking Forth by Leo Brodie first
in-print use of term “refactoring” to
describe practice of simplifying code to
make it more readable
![Page 26: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/26.jpg)
Why “Extreme”?
© Codemanship Ltd 2015
If it’s a good idea to test early
and often, it must be a great idea
to test continuously
If nobody ever reads the
architecture document, let’s not
waste time writing one
![Page 27: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/27.jpg)
Principles of XP
© Codemanship Ltd 2015
Minimise delay between
action and feedback
speeds learning
Assume solution to
every problem is
extremely simple
(Y.A.G.N.I. – you ain’t
gonna’ need it)
Embrace changes to
requirements, no matter
how late. Embrace
learning.
![Page 28: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/28.jpg)
XP Values
© Codemanship Ltd 2015
![Page 29: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/29.jpg)
The XP Process
© Codemanship Ltd 2015
![Page 30: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/30.jpg)
XP PRACTICES - PLANNING
© Codemanship Ltd 2015
![Page 31: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/31.jpg)
User Stories
© Codemanship Ltd 2015
Borrow a DVD
As a video library member, I want to borrow a copy of a DVD so that I can watch it without buying my own copy
![Page 32: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/32.jpg)
Release Planning
© Codemanship Ltd 2015
Donate a DVD
As a video library member, I want to donate a DVD to the library so that other members can borrow it and I can earn points for priority services
Borrow a DVD
As a video library member, I want to borrow a copy of a DVD so that I can watch it without buying my own copy
Return a DVD
As a video library member, I want to return a copy of a DVD I’ve borrowed so that I can other members can borrow and earn priority points when I return it on time
Send Weekly Newsletter
As the video library administrator, I want a newsletter emailed to all members once a week listing all the new titles added since the last newsletter so that members can see what new titles are available
Join the Library
As a movie lover, I want to join the video library so that I can get access to its collection of titles
Reserve a DVD
As a video library member, I want to reserve titles for which all rental copies are currently on loan so I can borrow it when copies are returned. If there’s a queue for a title, I want to be able to use my priority points to fast-track myself up the queue.
1. 2. 3.
4. 5. 6.
5 days 2 days 3 days
3 days 5 days 3 days
![Page 33: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/33.jpg)
Small Releases
© Codemanship Ltd 2015
? ? ? ?
![Page 34: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/34.jpg)
Iteration Planning
© Codemanship Ltd 2015
Donate a DVD
As a video library member, I want to donate a DVD to the library so that other members can borrow it and I can earn points for priority services
Borrow a DVD
As a video library member, I want to borrow a copy of a DVD so that I can watch it without buying my own copy
Return a DVD
As a video library member, I want to return a copy of a DVD I’ve borrowed so that I can other members can borrow and earn priority points when I return it on time
Send Weekly Newsletter
As the video library administrator, I want a newsletter emailed to all members once a week listing all the new titles added since the last newsletter so that members can see what new titles are available
Join the Library
As a movie lover, I want to join the video library so that I can get access to its collection of titles
Reserve a DVD
As a video library member, I want to reserve titles for which all rental copies are currently on loan so I can borrow it when copies are returned. If there’s a queue for a title, I want to be able to use my priority points to fast-track myself up the queue.
1. 2. 3.
4. 5. 6.
5 days 2 days 3 days
3 days 5 days 3 days
Next Iteration
Project Velocity = 7 days/iteration
![Page 35: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/35.jpg)
Estimating & Signing Up
© Codemanship Ltd 2015
• Various units used for
estimation – it’s actually
academic, because time
taken = story points /
velocity in any unit
• Any developer can estimate
a story
• Estimating means you are
bidding to do that work
• The lowest bid wins
![Page 36: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/36.jpg)
XP PRACTICES - MANAGING
© Codemanship Ltd 2015
![Page 37: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/37.jpg)
Open Workspace
© Codemanship Ltd 2015
![Page 38: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/38.jpg)
Sustainable Pace
© Codemanship Ltd 2015
![Page 39: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/39.jpg)
Daily Stand-up Meeting
© Codemanship Ltd 2015
![Page 40: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/40.jpg)
Project Velocity
© Codemanship Ltd 2015
0
5
10
15
20
25
Iteration 1 Iteration 2 Iteration 3 Iteration 4 Iteration 5 Iteration 6
Project Velocity
Story Points Completed 3 Iteration Average Story Points Remaining
Today’s
weather is
likely to be
like
yesterday’s
weather“burn-down”
![Page 41: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/41.jpg)
Move People Around
© Codemanship Ltd 2015
![Page 42: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/42.jpg)
Retrospectives
© Codemanship Ltd 2015
Kristian Sørensen, 2014
![Page 43: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/43.jpg)
XP PRACTICES - DESIGNING
© Codemanship Ltd 2015
![Page 44: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/44.jpg)
Simple Design
© Codemanship Ltd 2015
![Page 45: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/45.jpg)
System Metaphor
© Codemanship Ltd 2015
![Page 46: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/46.jpg)
Modeling with CRC Cards
© Codemanship Ltd 2015
Library
• Knows about titles• Knows about new
titles• Adds donated titles• Adds new titles
• Title• Member
Title
• Knows its name, director & year of release
• Knows about rental copies
• Registers rental copy
• Email Alert
Email Alert
• Sends email to members who specified matching title
?
Member
• Knows about priority points
• Awards priority points
class
responsibilities collaborations
![Page 47: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/47.jpg)
Solutions Spike
© Codemanship Ltd 2015
Send Weekly Newsletter
As the video library administrator, I want a newsletter emailed to all members once a week listing all the new titles added since the last newsletter so that members can see what new titles are available
?
Can’t estimate because not sure what
technical solution might take
…knock up quick
prototype to learn what’s
involved, then…
Estimate time required to…
…feed back lessons to
estimate story
![Page 48: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/48.jpg)
You Ain’t Gonna Need It (YAGNI)
© Codemanship Ltd 2015
![Page 49: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/49.jpg)
Refactoring
© Codemanship Ltd 2015
![Page 50: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/50.jpg)
Refactoring - Overview
© Codemanship Ltd 2015
![Page 51: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/51.jpg)
Agility & The Cost of Change
© Codemanship Ltd 2015
![Page 52: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/52.jpg)
Refactoring – Obstacles To Change
© Codemanship Ltd 2015
Lack of Test Assurance Poor Readability High Complexity
Duplication Dependencies
![Page 53: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/53.jpg)
Refactoring Discipline
© Codemanship Ltd 2015
1. Identify problem
(complexity - method
does too much) 2. Apply appropriate
refactoring (Extract
Method)
3. Run tests!!!
![Page 54: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/54.jpg)
XP PRACTICES - CODING
© Codemanship Ltd 2015
![Page 55: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/55.jpg)
On-Team Customer
© Codemanship Ltd 2015
![Page 56: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/56.jpg)
Coding Standards
© Codemanship Ltd 2015
![Page 57: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/57.jpg)
Test-driven Development
© Codemanship Ltd 2015
![Page 58: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/58.jpg)
TDD process
© Codemanship Ltd 2015
Write a test
that fails
Write simplest
code to pass
the test
Refactor to
keep code
maintainable
![Page 59: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/59.jpg)
Test #2 –
Boiled eggs
with toast
TDD Example – Designing a Kitchen
© Codemanship Ltd 2015
Test #1 –
Boiling
eggs Refactor to
remove
duplication
Simplest
solution
Simplest
solution
![Page 60: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/60.jpg)
Pair Programming
© Codemanship Ltd 2015
DriverNavigator
![Page 61: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/61.jpg)
Continuous Integration
© Codemanship Ltd 2015
Repository
![Page 62: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/62.jpg)
Continuous Integration
© Codemanship Ltd 2015
Frequent automated…
• Compilation of
source code
• Packaging of
executables &
supporting files
• Testing
![Page 63: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/63.jpg)
Team Heartbeat
© Codemanship Ltd 2015
![Page 64: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/64.jpg)
Check-In Dance
© Codemanship Ltd 2015
1. Grab build token
2. Merge
3. Run tests
4. Commit
5. Wait for
successful build
6. Release build
token
![Page 65: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/65.jpg)
Collective Code Ownership
© Codemanship Ltd 2015
server-side
code
web front
end
SQL
reporting
![Page 66: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/66.jpg)
Collective Code Ownership
© Codemanship Ltd 2015
The Code
![Page 67: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/67.jpg)
XP PRACTICES - TESTING
© Codemanship Ltd 2015
![Page 68: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/68.jpg)
Writing Tests For Bugs
© Codemanship Ltd 2015
Bug: Invoice total not calculated correctly
Invoice totals should include sales tax
![Page 69: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/69.jpg)
Acceptance Test-driven Development
© Codemanship Ltd 2015
![Page 70: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/70.jpg)
Acceptance Test-driven Development
© Codemanship Ltd 2015
Borrow a DVD
As a video library member, I want to borrow a copy of a DVD so that I can watch it without buying my own copy
Test: Borrow a DVD that has one copy for loan
Given that title ‘The Abyss’ has one copy available for loan,
When member jasongormanborrows that copy
Then the count of available copiesis reduced by one, leaving zerocopies for loan, so other memberscannot borrow The Abyss
Executable Specification
Effect of action
![Page 71: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/71.jpg)
Definition of “Done”
© Codemanship Ltd 2015
Borrow a DVD
As a video library member, I want to borrow a copy of a DVD so that I can watch it without buying my own copy
Test: Borrow a DVD that has one copy for loan
Given that title ‘The Abyss’ has one copy available for loan,
When member jasongormanborrows that copy
Then the count of available copiesis reduced by one, leaving zerocopies for loan, so other memberscannot borrow The Abyss
Test: Borrow a DVD that has more than one copy for loan
Given that title ‘The Abyss’ has two copies available for loan,
When member jasongormanborrows that copy
Then the count of available copiesis reduced by one, leaving one copyfor loan, so other members can still borrow The Abyss
Measuring completeness by
acceptance tests passed gives
an objective and honest account
of real progress
![Page 72: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/72.jpg)
SCRUM
© Codemanship Ltd 2015
![Page 73: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/73.jpg)
Origins of Scrum
• “A flexible, holistic product development strategy where a development team works as a unit to reach a common goal“
• Hirotaka Takeuchi & Ikujiro Nonaka, New Product Development Game (1986)
• New approach to commercial product development to increase speed & flexibility
• Based on case studies from manufacturing firms in automotive, photocopier & printer industries
• Team "tries to go the distance as a unit, passing the ball back and forth“, like in rugby
• Jeff Sutherland & Ken Schwaber presented paper describing the scrum methodology at OOPSLA '95
• Sutherland & Schwaber attend Agile summit at Snowbird, Utah in 2001
© Codemanship Ltd 2015
![Page 74: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/74.jpg)
Scrum Process
© Codemanship Ltd 2015
Daily Scrum
e.g. 14 days
![Page 75: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/75.jpg)
SCRUM ROLES
© Codemanship Ltd 2015
![Page 76: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/76.jpg)
Product Owner
© Codemanship Ltd 2015
![Page 77: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/77.jpg)
The Product Owner…
• Represents stakeholders & is “voice of the customer”
• Represents development team to stakeholders
• Writes user stories
• Manages product backlog
• Does NOT interfere in technical decisions
© Codemanship Ltd 2015
![Page 78: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/78.jpg)
Development Team
© Codemanship Ltd 2015
![Page 79: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/79.jpg)
The Development Team is…
• Responsible for delivering potentially shippable increments (PSIs) of product at end of each sprint
• Made up of 3–9 individuals who do the actual work (analyse, design, develop, test, technical communication, document, etc.)
• Cross-functional; having all skills necessary to complete product increment
• Self-organising
© Codemanship Ltd 2015
![Page 80: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/80.jpg)
Scrum Master
© Codemanship Ltd 2015
![Page 81: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/81.jpg)
The Scrum Master…
• Facilitates Scrum on the team
• Helps to remove obstacles to progress
• Buffers team from distractions
• Coaches team, product owner & stakeholders on Scrum principles & practices
• Promotes self-organisation within team
• Is NOT a project manager or team leader
© Codemanship Ltd 2015
![Page 82: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/82.jpg)
SCRUM EVENTS
© Codemanship Ltd 2015
![Page 83: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/83.jpg)
Sprint
© Codemanship Ltd 2015
• Time-boxed iteration
• Duration of 1-4 weeks (average
2 weeks)
• Emphasis on work product at
end that is really done
![Page 84: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/84.jpg)
Sprint Planning
© Codemanship Ltd 2015
• Identify user stories to form sprint backlog
• Estimate effort required to complete sprint backlog
• Team votes to commit to sprint goal
• Sets a 4-hour window to complete planning per 2-week
sprint (pro rata)
• 1st half: team agree on backlog items to include
in sprint
• 2nd half: team decompose items and to
estimate effort required)
![Page 85: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/85.jpg)
Planning Poker
© Codemanship Ltd 2015
Technique to eliminate
“anchoring” in estimates and
achieve consensus
• Product Manager explains
requirement
• Team members place
estimate card face down
• Cards turned over at once
• Outliers explain their
reasoning
• If necessary, play another
round
• TimeboxedEstimate numbers are far apart to
avoid “I say it’s a 9” “I say it’s a 10”
quibbling.
e.g., Fibonacci series
![Page 86: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/86.jpg)
Daily Scrum
© Codemanship Ltd 2015
Development Teams meets for
max 15 minutes daily, each
answering:
• What did I do yesterday?
• What will I do today?
• What is blocking me from
achieving sprint goals?
Teams ensure:
• Everyone comes prepared
• Starts on time
• Same time/place every day
(typically early in the day in
the team area)
![Page 87: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/87.jpg)
Sprint Review
© Codemanship Ltd 2015
• Review completed work
• Present product increment to
stakeholders (“show & tell”)
![Page 88: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/88.jpg)
Sprint Retrospective
© Codemanship Ltd 2015
• Reflect on previous Sprint
• What went well, what not-so-well?
• Agree plans to improve processes
![Page 89: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/89.jpg)
SCRUM ARTIFACTS
© Codemanship Ltd 2015
![Page 90: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/90.jpg)
Product Backlog
© Codemanship Ltd 2015
Type Requirement Effort Value
Feature Review a movie 5 21
Feature Rate review usefulness 1 5
Bug All movies should have poster
images
3 8
Non-Func App should install in < 30
seconds
13 13
Feature Follow a movie network user’s
reviews
2 5
Feature Add movie trivia 5 3
Bug Movies users aren’t old
enough to rent shouldn’t be
displayed
8 5
Priority
• Your product’s “TO DO”
list
• Managed by Product
Owner
• An ordered list of
requirements that
includes new features,
bug fixes, non-
functional requirements
• Prioritised by business
value, risk,
dependencies and date
needed
• Includes estimates of
business value by
stakeholders, and
development effort by
team
![Page 91: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/91.jpg)
Sprint Backlog
© Codemanship Ltd 2015
To Do In Progress Done
Sprint: #8 w/c 15/7/13 Due Date: 27/7/13 • Sprint’s “TO DO” list
• Managed by
Development Team
• Team takes highest
priority items from
product backlog they
believe they can
commit to for this sprint
• Once committed, no
more backlog items
can be added
• At sprint completion,
product backlog is
revisited and updated
as necessary
![Page 92: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/92.jpg)
Product Increment
© Codemanship Ltd 2015
• Sum of all product backlog
items completed during
current sprint & previous
sprints
• Must be complete
according to agreed
Definition of Done
• Must be shippable, even if
product owner decides not
to release
![Page 93: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/93.jpg)
Sprint Burn-down Chart
© Codemanship Ltd 2015
• Charts work
remaining against
estimated total
effort in a sprint
• Managed by
development team
![Page 94: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/94.jpg)
Release Burn-down Chart
© Codemanship Ltd 2015
• Provides visibility
of overall progress
on the product
• Shows how scope
changes over
multiple sprints
• Helps identify
trends in
productivity and
scope
• Managed by
Scrum Master
![Page 95: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/95.jpg)
AGILE PITFALLS
© Codemanship Ltd 2015
![Page 96: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/96.jpg)
Incremental Waterfall (“WAgile”)
© Codemanship Ltd 2015
Iteration 1 Iteration 2 Iteration 3 Iteration 4 Iteration 5
Incrementally executing a
detailed plan that’s not
supposed to change cuts
out opportunities to learn
![Page 97: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/97.jpg)
Absentee Customer
© Codemanship Ltd 2015
Lack of customer engagement is
consistently cited as the primary
cause of software project failure
![Page 98: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/98.jpg)
frAgile – Lack of Technical Discipline
© Codemanship Ltd 2015
If the code is difficult to
maintain, teams cannot
respond to change
![Page 99: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/99.jpg)
Piecemeal Architecture
© Codemanship Ltd 2015
When team members
pursue different
architectural styles
because they’re not
communicating about it
enough
![Page 100: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/100.jpg)
Lack of Training & Support
© Codemanship Ltd 2015
![Page 101: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/101.jpg)
Task Focus vs Goal Focus
© Codemanship Ltd 2015
Teams who focus on tasks tend to
struggle to lose sight of the end goals,
and struggle to achieve objectivity in
measuring progress
![Page 102: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/102.jpg)
Build Blindness #1
© Codemanship Ltd 2015
When teams know
their build is broken,
and they ignore it
![Page 103: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/103.jpg)
Build Blindness #2
© Codemanship Ltd 2015
When teams assume
that because tests are
all passing, software
is working
![Page 104: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/104.jpg)
Scrum Master as Project Manager
© Codemanship Ltd 2015
The Scrum Master is NOT in charge
![Page 105: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/105.jpg)
Product Owner as Customer
© Codemanship Ltd 2015
The Product Owner is NOT the customer
![Page 106: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/106.jpg)
Estimates vs. Commitments
© Codemanship Ltd 2015
![Page 107: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/107.jpg)
Going Agile Overnight
© Codemanship Ltd 2015
Adopt and improve Agile practices iteratively
![Page 108: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/108.jpg)
AGILE THE CODEMANSHIP WAY
© Codemanship Ltd 2015
![Page 109: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/109.jpg)
Goals, Not Features
© Codemanship Ltd 2015
• Establish testable,
realistic goals for
software and
systems
• Iterate towards
those goals, rather
than following a plan
or working through a
list of features
• BALANCED:
Consider multiple
stakeholder
perspectives (not
just financial goals)
![Page 110: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/110.jpg)
Features From Goals
© Codemanship Ltd 2015
Recruitment Process
Recruitment Management System
edit job ad approve job ad publish job ad Send link to online skills test
<< goal >>
Reduce hiring time from 8 to 6 weeks
![Page 111: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/111.jpg)
Reality-driven Development
© Codemanship Ltd 2015
• Analyse requirements and
test designs and working
software in as close an
approximation to the real
world as possible
• Try software out in realistic
situations on real end users
• Simulated business
environments are sometimes
referred to as Model Offices
• Business scenarios can be
explored and repeated,
allowing testing in edge
cases and operational
extremes
![Page 112: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/112.jpg)
Business Stories
© Codemanship Ltd 2015
Recruit a developer
As development manager, I want to recruit software developers who have the necessary skills and experience to work on our in-house business systems, so that we can take on new work and maintain systems in production
![Page 113: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/113.jpg)
Business Test Scripts
© Codemanship Ltd 2015
The CRM team require a full-stack web developer to replace a team
member who is leaving in 2 months.
They create a job spec that reads:
“WANTED: Full-stack Web Developer
Seeking full-stack web developer with Java/JEE, JavaScript, HTML and
SQL skills to enhance CRM system.”
The HR dept approve the job spec and publish it on the company
website. It is also syndicated automatically to Jobserve.com and Stack
Overflow.
After 20 mins, Jill Smith applies with her CV via email.
After 60 mins, Ken Chan applies with his CV through the website.
After 90 mins, Amanda Johnson calls the advertised number to enquire.
… etc etc
![Page 114: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/114.jpg)
Designing A Model Office
© Codemanship Ltd 2015
Recruitment
Management
server
Dev manager’s
laptop (web
browser)
HR manager’s
laptop (web
browser)
Company web
server
Candidate’s tablet
computer
Switchboard/Call
Management
System
Candidate’s phone
Fake jobserve.com
Fake stackoverflowpublish
syndicate
create job spec
approve
job spec
apply via
enquire via
connect via
application
application
![Page 115: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/115.jpg)
Building Great Agile Teams
© Codemanship Ltd 2015
• Self-organising teams build themselves
• Favour small teams (4-6 people)
• Favour experienced developers
• Be flexible about technologies
• Recruit proactively
• Always be recruiting
• Build a strong dev culture & a good
reputation
• If you can’t find good enough people,
seriously consider:
• Paying more
• Offering greater autonomy
• Abandon prejudices and
preconceptions
![Page 116: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/116.jpg)
Scaling Agile – The Reality
© Codemanship Ltd 2015
• There’s no compelling evidence that any software
organisation has ever achieved economy of scale
• Favour small, independent, autonomous self-
organising teams doing what’s best for them and their
customer
• Promote continuous opportunities for teams to interact
and learn from each other
• Favour loose project dependencies and interop
protocols over “enterprise architecture”
• Be continually aware of project and product
dependencies
• Favour clear goals and simple standards over
prescribed processes
• Look to nature – swarm intelligence
• Dev culture can scale - massively
![Page 117: Agile Software Developmentcodemanship.co.uk/files/agile.pdf · • The History of Agile Software Development • The Agile Manifesto • The 4 Agile Values • Core principles of](https://reader035.fdocuments.us/reader035/viewer/2022081521/5ece2665cebd7c0f84040e51/html5/thumbnails/117.jpg)
www.codemanship.com
© Codemanship Ltd 2015