Agile - Iteration 0 CodeMash 2010
-
Upload
kensipe -
Category
Technology
-
view
2.481 -
download
1
Transcript of Agile - Iteration 0 CodeMash 2010
Iteration 0
About Speaker
Developer: Embedded, C++, Java, Groovy, Grails, C#, F#JavaOne 2009 Rock Star, NFJSMicrosoft MCPSun Certified Java 2 ArchitectMaster of Scrums Agile CoachInstructor: VisiBroker CORBA
Rational Rose, OOAD
http://kensipe.blogspot.com/http://del.icio.us/kensipetwitter: @[email protected]
Agenda
Agile Intro EditionAgile Micro Edition
– Inside an Iteration
Agile Macro Edition– Leading up to Iteration 0
Iteration 0
Development Processes
4
Waterfall
Development Processes
4
Iterative
Value of Iterative
5
Value of Iterative
Continuous focus – Improvement– Quality– Priority – Adding Business Value– Ability to Estimate– Team / Team Ability
6
Value of Iterative
Continuous focus – Improvement– Quality– Priority – Adding Business Value– Ability to Estimate– Team / Team Ability
6
Value of Iterative
Develops trust with the Business!
7
What Agile is NOT
EvolutionaryNo DocumentationNo ArchitectureCowboy Development
8
What Agile is NOT
EvolutionaryNo DocumentationNo ArchitectureCowboy Development
8
9
Agile Micro View
What is an Iteration?
10
Opening Meeting Closing Meeting
Standup Meetings
Does Size Matter?
11
Opening Meeting
Who comes?– Developers– DBA– User / BA– Architects– QA
12
Opening Meeting
Suggest 2 Separate Opening Meetings– Objective of the first meeting:
• Agree on Acceptance Criteria• Agree on priority
– Objective of the second meeting:• Break out and assignment of all tasks
13
Closing Meeting
What was accepted by the User?What is the velocity?What architecturally significant has changed?What is working?What didn’t go well?
– What do we do about it?
14
Value of the Closing Meeting
Quality CheckUser FeedbackEstimate CheckTeam Performance Check
15
Velocity?Bug Level?
Stand up!
Pig Rules! Chickens can listen.
What did you do yesterday? What will you do today? Are there any impediments in your way?
16
17
Agile Macro View
Starting Agile Projects
Starting is the Hardest Part– Often is a change– Less Experience
Desire is the starting point of all achievement, not a hope, not a wish, but a keen pulsating desire which transcends everything. -- Napoleon Hill
Agile at a Macro Level
Missing Details– Great Information on Running Agile– Less Information on:
• Starting Agile• Pre-IT0• IT0
Agile Full Life Cycle
Pre-IT0 Stage 1
Project InceptionStake Holder Level
– Business Opportunity / Concerns– Often not exposed to all developers
Pre-IT0 Stage 2
Collection of StoriesEstimating
– ROI – Project Justified
Build up of Team / ResourcesIteration SizingInitial List of RisksRelease Plan
Building a Team
Co-OwnershipPrepared to Steal TasksPairing CapableExpected Velocity?
– Adjust Story Alignment and Release Plan
Prepare for Team Phases
Forming– “polite”… team forms, No one is offended– Excitement / Optimism
Storming– Honeymoon is over– Resisting Task, Disunity
Norming– Team is starting to work together– Constructive Criticism
Performing– High performance team– Self Directed
Iteration 0
Creation of the Machine!Environment Setup
– Continuous Integration (CI)– IDE– Communication
Project Alignment– To other concerns outside the core team
Release Plan
Planning for Success
Working with Users– Stories
• Acceptance Criteria!!!!
– Priorities
Project Alignments– DBA / Database– QA– Enterprise Architecture– Management
Release Plan
Internal Releases Every IterationPlanned QA ReleasesPlanned External ReleasesInitial Breakdown of Stories
– Iteration Based on Priority
Do we need all stories to start?
2 Story Development Approaches– Major of the stories upfront
• With the understanding that you will likely discover more
– Some stories upfront to prime• With the intent that you’ll have a trailing analyst
Either Approach needs an Analyst, BA or PM– To work with feeding the stories into the next
iteration
Alignment With QA Option 1
Iteration 1
Iteration 2
Iteration 3
Iteration 4
Dev IT 1 Code
QA IT 1Test Plan
BA IT 2 Story Refinement
Dev IT 2Code
QA IT 2Test Plan
BA IT 3Story Refinement
QA IT 1Execution Plan
Dev IT 3Code
QA IT 3Test Plan
BA IT 4Story Refinement
QA IT 2Execution Plan
QA IT 1Regression
Dev IT 4Code
QA IT 4Test Plan
BA IT 5Story Refinement
QA IT 3Execution Plan
QA IT 1 & 2Regression
Alignment with QA Option 2
Alignment to:– DBA– Enterprise Architects
Iteration 1Iteration 2
Iteration 3
Iteration 4
Dev IT 1
Code
Dev IT 2
Code
Dev IT 3
Code
Dev IT 4
Code
QA IT 1
Test Plan
Dev IT 5
Code
Iteration 0
What would stop you from doing a 1 week iteration?
32
Purpose of Automation
PredictabilityFrequent repeatable feedbackShorter iterations possible
33
Iteration 0
Version ControlIDE SetupIT0 Spikes Build SystemContinuous IntegrationReport MechanismCore InfrastructureXplanner / JIRA / WikiInitial Design StrategiesMultiple Domains
Version Control
Establish Project LayoutQuestions
– Head / Branch– Versioning Strategy?
• (3.0.2) Major, Minor, Patch
– What to do with Spikes?
Version Control Admin / Reports– Automate as much as possible– Cvsblame!– cvscop
IDE Setup
Project StructureSetup cvsignore or svnignore files
– What isn’t shared in the project?Plugins
– App Server of Choice– Subclipse– PMD– SpringIDE
Libraries– Core
• Spring, Logging
IT0 Spikes
Using a new tool?– FIT– Selenium– jsUnit
Testing Something that is difficult to test?– 3rd Party Machine– External Connection
Build System
Back to Project StructureAnt / Maven / Buildr / Gradle
– Must• Be automated• Version• Platform and desktop agnostic• Setup and run tests• Incorporate code coverage
– Cobertura
• Setup Projects for Team• Provide release builds with documentation
– Nice• Promotion capabilities• Flexibility to select IDE
Continuous Integration
Connect Build System into CI– BuildForge– CruiseControl– Hudson
Setup up Lava Lamps– http://pragmaticautomation.com/cgi-bin/
pragauto.cgi/Monitor/Devices/BubbleBubbleBuildsInTrouble.rdoc
Email SetupMust Build, Test and provide reports
Reports
Code Quality– Compilation– Unit Test– Code Coverage– Static Analysis
Burn Down Reports
XPlanner / JIRA
Setup Story RepositorySetup IT0 and IT1 and a Future Stories ITSetup Wiki / Forum
Initial Design Strategies
StandardsGeneral Use of AnnotationsGeneral Upfront patterns (if it make sense)
– MVC– Presentation Model– Logging all in Aspects
Don’t Spend too much time here!It will evolve.
Multiple Domains
Setup Dev BoxUnderstand other domains
– Prod, QA
Automate the promotion path if possible– How to handle SQL DDL?
Automate Everything
New Person Added– Setup in Xplanner, subversion and cruise control
Release a new patch– Version Controlled Version stamps
Unit tests for Integration Tests– DBUnit or ???– In Memory DB
IT0 Opening / Closing
Run IT0 like any other Iteration… It is the first!
– Opening Meeting• Take all these Stories and Tasks
– Break them down– Estimate them
• Define the Acceptance Criteria• The User is you!
– Closing Meeting• What’s the velocity?• Are there any stories to continue?
Benefits of Iteration 0
feedback on teams ability to estimateteam velocityfocus on automating everythingremove the human factors
46
ITX
The Machine Is ReadyCode at will!
Summary
Start The Project WellIT 0 Establishes
– Working Environment– Communication Channels– Initial Expectations