Upload
teresa-tyler
View
213
Download
0
Embed Size (px)
Citation preview
criticalspan.com
Who am I?
› 14 years at Serena, a maker of Application Lifecycle Management Tools
› Worked with 2 co-inventors of Scrum
› Principal at Critical Span, a software consulting firm
2 27-Jan-2010
criticalspan.com
Outline
› Do I really need process?
› Common Processes Overview
› Agile Scrum– Activities– Roles– Best Practices
27-Jan-20103
criticalspan.com
Who cares about Process?
4
if (you_write_software) {
you_have_a_software_process = true;}
27-Jan-2010
criticalspan.com
The Main Goal
› The main goal should always be to deliver quality, tested software that satisfies the customer, and do it in a sustainable manner
27-Jan-20105
criticalspan.com
Okay, What Processes Are There?
› Chaotic– None*
› Planned– Waterfall
› Iterative– Agile
› and many more…– Capability Maturity Model – Integrated (CMMI)– Extreme Programming (XP)– Crystal– RUP– Spiral– etc.
6 27-Jan-2010
criticalspan.com
We Don’t Need No Stinkin’ Process
› Q: Let’s just Code Like %$#&*!!
› A: Yes, but…– Bug fixing is almost always postponed until the end– Software is often very late, low quality, or both– Delivered software is often difficult to maintain– Requires lots of ‘commitment’, and is not sustainable
8 27-Jan-2010
criticalspan.com
Waterfall
9
Requirements
Design
Coding
Integration
Testing
Installation
Operation/Maintenance
27-Jan-2010
criticalspan.com
Waterfall
› Q: Let’s figure out everything before we start coding!
› A: Not Likely…– Users’ requirements change over time – “That’s just what
I asked for, but not what I want”– Strict waterfall doesn’t allow feedback after passing to
next phase. Learning in later phases can’t easily be passed back to earlier ones.
10 27-Jan-2010
criticalspan.com
Agile
– An iterative process– Short iterations– Emphasis on interaction with a customer– Practices
• TDD• Pair Programming• Continuous Integration
27-Jan-201011
criticalspan.com
Agile
› Manifesto for Agile Software Development– 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.
27-Jan-201012
from http://agilemanifesto.org/
criticalspan.com
Agile Scrum
› Scrum is one way of realizing Agile– Daily Scrum meetings– 2-4 week iterations called sprints– Relies heavily on smart, flexible people– Self-organizing teams– Sustainable– Always have a shippable product
27-Jan-201013
criticalspan.com
Who uses Scrum?
› Independent Software Vendors (ISVs)
› Fortune 100 companies
› Small startups
› Internal development
› Contract development
› Companies using Scrum– Adobe, Amdocs, F5 Networks, General Electric, HP, Intel,
Intuit, LexisNexis, Microsoft, Motorola, Oracle, Serena, Siemens, Sun Microsystems
27-Jan-201014
criticalspan.com
What has Scrum been used for?
› FDA-approved, life-critical software for x-rays and MRIs
› Enterprise workflow systems
› Financial payment applications
› Biotech
› Call center systems
› Tunable laser subsystems for fiber optic networks
› Application development environments
› 24x7 with 99.99999% uptime requirements
› Multi-terabyte database applications
› Media-neutral magazine products
› Web news products
27-Jan-201015
criticalspan.com
Where Did Scrum Come From?
› Jeff Sutherland, John Scumniotales, and Jeff McKenna– Initial Scrums at Easel Corp in
1993
› Ken Schwaber– ADM
› Initial definitions of Scrum at OOPSLA 96 with Sutherland
27-Jan-201016
criticalspan.com
Primary Roles
› The Team– Does the work of designing, implementing, testing
› Scrum Master– Runs the Scrum meetings
› Product Owner– Represents the customer
› Pigs– The Team, Scrum Master
› Chickens– Product Owner, Customers, Managers
27-Jan-201019
criticalspan.com
The Team, Illustrated
› Short video on teamwork from the IT Crowd: http://www.youtube.com/watch?v=pGFGD5pj03M
27-Jan-201021
criticalspan.com
The Team
› Typically 5-10 people
› Cross-functional– Programmers, QA, UI Designers, etc.
› Teams are self-organizing– Primary focus is to meet sprint goals
› Membership can change only between sprints
27-Jan-201022
criticalspan.com
The Scrum Master
› Represents management to the project
› Typically filled by a Project Manager or Team Leader
› Responsible for enacting Scrum values and practices
› Main job is to remove impediments
27-Jan-201023
criticalspan.com
The Product Owner
› Represents the customer
› Makes sure the ‘Right Things’ are in the backlog
› Writes and prioritizes User Stories
27-Jan-201024
criticalspan.com
Activities
› Story Time*
› Sprint Planning
› Sprinting
› Daily Scrum Meeting– 3 questions
› Sprint Review– Quick demo of work completed
› Sprint Retrospective– Continuous Improvement
27-Jan-201025
criticalspan.com
Story Time
› The Team reviews User Stories with the Product Owner
› Initial estimates of story size
27-Jan-201026
criticalspan.com
Sprint Planning
› Select User Stories or items to be worked on for the next sprint– Often, the Sprint will have a Theme
› Highest priority items are taken from the Product Backlog and placed on the Sprint Backlog
› The Team votes on how long each item will take– Planning Poker– Can use either User Stories or Tasks
› Planning is over when The Team is satisfied with the results
27-Jan-201027
criticalspan.com
Sprint
› Analogous to ‘iterations’
› 2-4 weeks
› Designing, coding, and testing occur during the sprint
› No changes can occur in a sprint
27-Jan-201028
criticalspan.com
Daily Scrum
› Part of the daily rhythm
› Always starts on time, and lasts only 15 minutes (should be less)
› Only pigs can talk
› 3 questions– What did you work on yesterday– What will you work on today– Any blocking issues*
27-Jan-201029
criticalspan.com
Sprint Review
› Demo all the completed User Stories– Only complete, ‘approved’ stories are demonstrated
› Minimal preparation (and no faking)
› Participants– The Team– Customers– Management– Product Owner– Other engineers
27-Jan-201030
criticalspan.com
Sprint Retrospective
› Review the last sprint
› What went well?
› What could be improved?
› Choose the improvements to make in the next sprint
27-Jan-201031
criticalspan.com
Product Backlog
› A list of User Stories to be delivered– May also contain Epics– Stories may be organized into themes
› Usually a combination of – User Stories (‘As a…’)– Can also contain tasks
› List is prioritized by the Product Owner– Typically a Product Manager, Marketing, Internal
Customer, etc.
27-Jan-201033
criticalspan.com
Sprint Backlog
› A list of Tasks or User Stories that The Team has agreed to complete
27-Jan-201035
criticalspan.com
Burndown Chart
› Shows progress during the sprint
27-Jan-201037
Progress
752 762
664619
304264
180104
200
100
200
300
400
500
600
700
800
900
Date
Rem
ain
ing
Eff
ort
in
Ho
urs
criticalspan.com
Other Important Things
› User Story
› Planning Poker
› The meaning of Done
› TDD
› Continuous Integration
› Velocity
› Spike
› Theme
› Epic
› Scalability
27-Jan-201038
criticalspan.com
User Story
› A User Story is a requirement that is written in customer’s language
› Typical format is ‘As a [user/role], I want [goal/function], so that [reason]’
27-Jan-201039
criticalspan.com
Planning Poker
› Quick way to estimate relative task size– Sizes are chosen from Fibonacci numbers (i.e. 1, 2, 3, 5,
8, 13, etc.)
› Each Task or User Story is estimated by the team
› The Team must reach consensus on the relative sizes
27-Jan-201040
criticalspan.com
The Meaning of Done
› Defining ‘done’ is critical:– Coded– Tested (unit and functional)– Reviewed– (possibly) Documented
27-Jan-201041
criticalspan.com
TDD
› Test Driven Development– Writing Tests will improve the design and stability of the
code– Only writing enough code to make a test pass reduces
waste
› Process– Write a test – Run the (failing) test– Write some code– Run the (passing) test
27-Jan-201042
criticalspan.com
TDD
› Use frameworks and mock objects
› Kinds of tests– Unit– Integration– Functional
27-Jan-201043
criticalspan.com
Continuous Integration
› A set of practices around software builds– Commit often– Build and test each commit
› Tools:– Hudson– CruiseControl
27-Jan-201044
criticalspan.com
Velocity
› The amount of work that a Team can handle in one sprint.
› Estimated from past performance
27-Jan-201045
criticalspan.com
Spike
› A time-boxed period of research and development
› May be used for proof of concept
› No deliverable for a product
27-Jan-201046
criticalspan.com
Epic
› A large User Story, especially one that is a lower priority, and has not been broken into more detailed, smaller User Stories
27-Jan-201048
criticalspan.com
Scalability
› Typical Scrum team is 5-10 people
› Sutherland used Scrum in groups of 600+
› Cohn used in groups 100+
27-Jan-201049
criticalspan.com
Where to go next?
› Agile Scrum– http://www.mountaingoatsoftware.com/scrum– http://www.controlchaos.com– Agile Software Development with Scrum (Ken Schwaber
and Mike Beedle)– Agile Project Management with Scrum (Ken Schwaber
and Mike Beedle)
› Agile in General– http://www.agilealliance.com
27-Jan-201050
criticalspan.com51
Other References
› Ruminations on C++, Andrew Koenig, Barbara Moo, 1997– Excellent discussion of why small projects are often successful,
while larger ones are not. Read all of chapter 2.
› Agile Software Development, Alistair Cockburn, 2002– Great introduction to agile development.
› Software Project Survival Guide, Steve McConnell, 1998– If you want to be a manager, or understand managers, Steve’s
books are must-have’s.
› Rapid Development – Taming Wild Software Schedules, Steve McConnell, 1996
› Martin Fowler’s Writings – Many interesting articles on agile methodologies. See http://www.martinfowler.com, http://thoughtworks.com/library/newMethodology.pdf
27-Jan-2010