31032010 we bbt workshop agiledevelopment
TRANSCRIPT
© iLean
People boosting your business
Agile development We-BBT Event
31 March 2010
© iLean
Our goal
General introduction to Agile development
Scrum & eXtreme Programming
Q & A
research
© iLean
Lean principles
Reduce cycle time
Build quality in
Eliminate waste
Respect people
© iLean
Agile values
individuals and interactions over processes and tools
working software over comprehensive documentation
customer collaboration over contract negotiation
responding to change over following a plan
© iLean
Agile methods & processes
Prince2
PMBOK
LAD
RUP
Agile Scrum
eXtreme
Programming
Lean DSDM
Kanban
© iLean
Agile is a tool
© iLean
Why agile?
working software better ROI
flexibility understand your business
motivated people continuous improvement
© iLean
Iterative and incremental !! Break down product
!! Plan according business value
!! Deliver regularly
BUSINESS VALUE
© iLean
Manage goals detail requirements at the last responsible moment
© iLean
Collaborate daily and with all involved parties
© iLean
Develop and test build quality in
© iLean
engineering practices!
coding standards!
team charter!
definition of done!
code reviews!
test coverage!
pair programming!
unit testing!
continuous integration!
test driven development!
refactoring!
© iLean
Develop and test build quality in
© iLean
Integrate and release as early and often as possible
© iLean
Continuous improvement is a daily routine
© iLean
!! Manage requirements
To deliver incrementally and iteratively:
!! Develop and test
!! Integrate and release
!! Collaborate
!! Continuous improvement
© iLean
Agile methods & processes
Scrum
© iLean
Deming quality cycle
© iLean
Scrum History
1993 Jef Sutherland:
first Scrum at Easel
2001 Agile Manifesto
1986 study by Takeuchi and Nonaka,
published in the Harvard Business Review
1995 Ken Schwaber:
First white paper on Scrum
1996 Kent Beck: XP
2003 Lean Software Development
by Mary & Tom Poppendieck
2008
© iLean
The Scrum Process
© iLean
Scrum Product Owner
•! defines product, releases, ROI, ...
•! represents customer and users for the team
•! manages the Product Backlog
•! accepts work
BUT also
•! respects team estimates
•! respects sprint planning
© iLean
Product Backlog
nr! prio! user story! inschatting!
1! 970! Als gebruiker kan ik onder mijn naam veilig inloggen! 2!
2! 960! Als gebruiker kan ik volledig manueel alle gegevens voor nieuwe client invoeren. Dit zijn de identificatiegegevens van de persoon. ! 2!
3! 950!Als gebruiker kan ik een aanvraag invoeren, wat will zeggen dat ik kan invullen welke attesten bij de aanvraag zitten en dat ik kan aangeven dat er nog een
indicatiestelling moet gebeuren. (Na invoeren van de gegevens kan ik de aanvraag opslagen met status 'in behandeling'.)!3!
6! 900!Als gebruiker kan ik een aanvraag goedkeuren. Het systeem checkt dan de nodige gegevens en berekent dan start- en einddatum van de tenlastenneming en
toont alles aan mij ter bevestiging (ik kan de beslissing van systeem overrulen en daarvooreen reden/motivatie ingeven).!5!
9! 800! als gebruiker kan ik betalingen genereren voor een bepaald type dossier voor een bepaalde maand (door op 1 knop te klikken).! 3!
10! 780!als gebruiker kan ik uit de lijst van betalingen een betalingsbestand genereren en downloaden. Het systeem zet tegelijkertijd de status van de betaling op
'uitbetaald' !3!
32! 500! Als gebruiker kan ik een rapporteringsbestand genereren. ! 3!
4! 940!Als gebruiker kan ik een aanvraag en (eventueel bijhorende) tenlasteneming opzoeken op basis van een Rijksregisternummer. Het systeem toont de
identificatiegegevens, de aanvraag en de tenlasteneming samen op één scherm.!3!
5! 920!Als gebruiker kan ik een aanvraag wijzigen (velden verder invullen of wijzigen, attesten toevoegen of verwijderen, enz) en achteraf de aanvraag terug opslaan als
'in behandeling'.!3!
© iLean
Product Backlog
•! The business objectives
•! All desired work
•! Every item must be valuable
•! Prioritized by the product owner
•! ‘Living’ document
© iLean
The Scrum Process
© iLean
Sprint planning
•! PO + Team
•! Team takes commitment
•! Team prepares sprint
!! Break down work
!! Discuss and design
!! …
© iLean
The Scrum Process
© iLean
Scrum Team
•! cross-functional
•! self-organizing and empowered
•! typically 5-9 people
BUT also
•! respects Product Owner prio’s
•! respects Scrum values and process
© iLean
Direct and control
© iLean
servant leader!
coach!
Self organizing
© iLean
The Scrum Process
© iLean
Sprint Demo
© iLean
Sprint Retrospective
© iLean
Sprint review (demo + retrospective)
•! Results:
–!Updates to the backlog (scope)
–!Update of the team agreements (charter)
–!Specific actions (owner + deadline)
© iLean
The Scrum Process
© iLean
Sprint Backlog & Commitment
...
© iLean
Burn Down Charts
© iLean
Scrum Board
© iLean
Daily Scrum meeting
© iLean
The Scrum Process
© iLean
Scrum Master
•! guards the Scrum process and the
improvement cycle
•! removes impediments
•! motivates and coaches the team
•! facilitates collaboration
BUT also
•! respects team decisions
© iLean
The Scrum Process
© iLean
The Scrum Process
© iLean
User Stories
•! User Story = description of an objective
As as user I can do something
to achieve a goal.
•! Add examples/scenarios/what NOT to do
© iLean
Daily Scrum meeting
•! What did I do yesterday?
•! What will I do today?
•! What’s bothering or blocking me?
!! SM facilitates
!! Time boxed! No side-discussions.
!! By and for the team
© iLean
Scrum
artifacts
ceremonies
practices
roles
Toolbox Philosophy
courage
openness
focus
respect
commitment
© iLean
Agile methods & processes
eXtreme
Programming
© iLean
Extreme Programming (XP)
© iLean
Test Driven Development
~unit tests
•! use short development iterations based on
pre-written test cases that define desired
improvements.
© iLean
XP Practices Refactor Mercilesly
•! Don’t leave duplicate or uncommunicative
code around
© iLean
•! Objective
take a "simple is best" approach to software design.
•! Practical After every new piece of code: 'is there a simpler
way to introduce the same functionality?‘
•! Refactoring
XP Practices Code and design simply
© iLean
•! everyone is responsible
for all the code
•! this, in turn, means that everybody is
allowed to change any part of the code
•! if you run across some code that could be
improved, you have to stop and improve it
Collective Code Ownership
© iLean
developing is a team game
Examples
•! choose same style of class & variable names
•! format code the same way
Coding Standards
© iLean
•!The development team
should always be working on
the latest version of the software
•!Often combined with a regular (automated)
build process & automated testing.
Continuous Integration
© iLean
•! Every day
–!starts at start time
–!ends at end time
•! need for regular overtime is a clear signal
that something else is wrong with the
project.
•! better awareness, better refactoring, simpler
code
Sustainable Pace
© iLean
•! two programmers work together at one
workstation.
> Driver + Observer/navigator
Pair Programming
© iLean
Extreme Programming (XP)
© iLean
Lean principles
Reduce cycle time
Build quality in
Eliminate waste
Respect people
© iLean
Agile values
individuals and interactions over processes and tools
working software over comprehensive documentation
customer collaboration over contract negotiation
responding to change over following a plan
© iLean
Why Agile?
•! Respond to change
•! Deliver quality software
•! Boost people
•! Deliver more business value
•! Increase creativity
•! Have a working solution at all times
•! …
© iLean
People boosting your business
What’s next?
© iLean
Implement Agile values and
principles…
in your specific context!
© iLean
Implement Agile
Reduce cycle time
•! Break scope into valuable increments
•! Deliver often
© iLean
Implement Agile
Adapt to changes
•! Get feedback from iteration deliverables
•! Think and act “Just In Time”
•! Collaborate with all involved parties
© iLean
Implement Agile
Eliminate waste
•! Reflect regularly on process and
collaboration
•! Reduce ‘stock’
•! Limit work in progres
© iLean
Implement Agile
Continuously improve
•! Inspect and adapt
© iLean
References Scrum in five minutes
http://www.softhouse.se/Uploades/Scrum_eng_webb.pdf
Scrum Alliance http://www.scrumalliance.org/
Scrum and XP from the Trenches http://www.crisp.se/henrik.kniberg/ScrumAndXpFromTheTrenches.pdf
Scrum articles directory http://www.softdevarticles.com/modules/weblinks/viewcat.php?cid=46
Agile Alliance's Scrum library http://www.agilealliance.org/article/articles_by_category/17
InfoQ.com / Agile http://www.infoq.com/Agile
Agilo for Scrum http://www.agile42.com/cms/pages/download/
The New New Product Development Game http://apln-richmond.pbwiki.com/f/New%20New%20Prod%20Devel%20Game.pdf
Jeff Sutherland, Agile development: lessons learned from the first Scrum, 2004 http://jeffsutherland.com/scrum/FirstScrum2004.pdf
Agile Software development with Scrum
By Ken Schwaber
User Stories Applied By Mike Cohn
Agile Estimating And Planning By Mike Cohn
© iLean
People boosting your business
Questions?
© iLean
People boosting your business
Thank you!
Feel free to contact me!
Jef Cumps