16. 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
17. 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
18. Value of the Closing Meeting
Quality Check
User Feedback
Estimate Check
Team Performance Check
Velocity?
Bug Level?
15
19. 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
21. 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
22. Agile at a Macro Level
Missing Details
– Great Information on Running Agile
– Less Information on:
• Starting Agile
• Pre-IT0
• IT0
24. Pre-IT0 Stage 1
Project Inception
Stake Holder Level
– Business Opportunity / Concerns
– Often not exposed to all developers
25. Pre-IT0 Stage 2
Collection of Stories
Estimating
– ROI
– Project Justified
Build up of Team / Resources
Iteration Sizing
Initial List of Risks
Release Plan
26. Building a Team
Co-Ownership
Prepared to Steal Tasks
Pairing Capable
Expected Velocity?
– Adjust Story Alignment and
Release Plan
27. 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
28. Iteration 0
Creation of the Machine!
Environment Setup
– Continuous Integration (CI)
– IDE
– Communication
Project Alignment
– To other concerns outside the core team
Release Plan
30. Release Plan
Internal Releases Every Iteration
Planned QA Releases
Planned External Releases
Initial Breakdown of Stories
– Iteration Based on Priority
31. 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
32. Alignment With QA Option 1
BA IT 2
Story Refinement
Dev IT 1
Code BA IT 3
Story Refinement
QA IT 1
Dev IT 2 BA IT 4
Test Plan
Code Story Refinement
Iteration 1 QA IT 2
Test Plan
Dev IT 3
Code
BA IT 5
Story Refinement
QA IT 1 QA IT 3 Dev IT 4
Execution Plan Test Plan Code
QA IT 2 QA IT 4
Iteration 2 Execution Plan Test Plan
QA IT 1 QA IT 3
Regression Execution Plan
Iteration 3 QA IT 1 & 2
Regression
Iteration 4
33. Alignment with QA Option 2
Dev IT 1
Code
Dev IT 2
Code
Iteration 1 Dev IT 3
Code
Iteration 2 Dev IT 4
Code
Iteration 3
QA IT 1
Test Plan
Dev IT 5
Iteration 4 Code
Alignment to:
– DBA
– Enterprise Architects
37. Iteration 0
Version Control
IDE Setup
IT0 Spikes
Build System
Continuous Integration
Report Mechanism
Core Infrastructure
Xplanner / JIRA / Wiki
Initial Design Strategies
Multiple Domains
38. Version Control
Establish Project Layout
Questions
– 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
39. IDE Setup
Project Structure
Setup cvsignore or svnignore files
– What isn’t shared in the project?
Plugins
– App Server of Choice
– Subclipse
– PMD
– SpringIDE
Libraries
– Core
• Spring, Logging
40. IT0 Spikes
Using a new tool?
– FIT
– Selenium
– jsUnit
Testing Something that is difficult to test?
– 3rd Party Machine
– External Connection
41. Build System
Back to Project Structure
Ant / 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
42. 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 Setup
Must Build, Test and provide reports
43. Reports
Code Quality
– Compilation
– Unit Test
– Code Coverage
– Static Analysis
Burn Down Reports
44. XPlanner / JIRA
Setup Story Repository
Setup IT0 and IT1 and a Future Stories IT
Setup Wiki / Forum
45. Initial Design Strategies
Standards
General Use of Annotations
General Upfront patterns (if it make sense)
– MVC
– Presentation Model
– Logging all in Aspects
Don’t Spend too much time here!
It will evolve.
46. Multiple Domains
Setup Dev Box
Understand other domains
– Prod, QA
Automate the promotion path if possible
– How to handle SQL DDL?
47. 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
48. 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?
49. Benefits of Iteration 0
feedback on teams ability to estimate
team velocity
focus on automating everything
remove the human factors
46