Agile - Iteration 0 CodeMash 2010

4,268 views

Published on

Published in: Technology, Business
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
4,268
On SlideShare
0
From Embeds
0
Number of Embeds
36
Actions
Shares
0
Downloads
50
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Agile - Iteration 0 CodeMash 2010

  1. Iteration 0
  2. About Speaker http://kensipe.blogspot.com/ http://del.icio.us/kensipe twitter: @kensipe kensipe@gmail.com Developer: Embedded, C++, Java, Groovy, Grails, C#, F# JavaOne 2009 Rock Star, NFJS Microsoft MCP Sun Certified Java 2 Architect Master of Scrums Agile Coach Instructor: VisiBroker CORBA Rational Rose, OOAD
  3. Agenda Agile Intro Edition Agile Micro Edition – Inside an Iteration Agile Macro Edition – Leading up to Iteration 0 Iteration 0
  4. Development Processes Waterfall 4
  5. Development Processes Iterative 4
  6. Value of Iterative 5
  7. Value of Iterative Continuous focus – Improvement – Quality – Priority – Adding Business Value – Ability to Estimate – Team / Team Ability 6
  8. Value of Iterative Continuous focus – Improvement – Quality – Priority – Adding Business Value – Ability to Estimate – Team / Team Ability 6
  9. Value of Iterative Develops trust with the Business! 7
  10. What Agile is NOT Evolutionary No Documentation No Architecture Cowboy Development 8
  11. What Agile is NOT Evolutionary No Documentation No Architecture Cowboy Development 8
  12. Agile Micro View 9
  13. What is an Iteration? Standup Meetings Opening Meeting Closing Meeting 10
  14. Does Size Matter? 11
  15. Opening Meeting Who comes? – Developers – DBA – User / BA – Architects – QA 12
  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
  20. Agile Macro View 17
  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
  23. Agile Full Life Cycle
  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
  29. Planning for Success Working with Users – Stories • Acceptance Criteria!!!! – Priorities Project Alignments – DBA / Database – QA – Enterprise Architecture – Management
  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
  34. Iteration 0
  35. What would stop you from doing a 1 week iteration? 32
  36. Purpose of Automation Predictability Frequent repeatable feedback Shorter iterations possible 33
  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
  50. ITX The Machine Is Ready Code at will!
  51. Summary Start The Project Well IT 0 Establishes – Working Environment – Communication Channels – Initial Expectations
  52. Questions  Please Fill Out Surveys kensipe@gmail.com twitter: @kensipe

×