52
Iteration 0

Agile - Iteration 0 CodeMash 2010

  • Upload
    kensipe

  • View
    2.480

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Agile - Iteration 0 CodeMash 2010

Iteration 0

Page 2: Agile - Iteration 0 CodeMash 2010

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]

Page 3: Agile - Iteration 0 CodeMash 2010

Agenda

Agile Intro EditionAgile Micro Edition

– Inside an Iteration

Agile Macro Edition– Leading up to Iteration 0

Iteration 0

Page 4: Agile - Iteration 0 CodeMash 2010

Development Processes

4

Waterfall

Page 5: Agile - Iteration 0 CodeMash 2010

Development Processes

4

Iterative

Page 6: Agile - Iteration 0 CodeMash 2010

Value of Iterative

5

Page 7: Agile - Iteration 0 CodeMash 2010

Value of Iterative

Continuous focus – Improvement– Quality– Priority – Adding Business Value– Ability to Estimate– Team / Team Ability

6

Page 8: Agile - Iteration 0 CodeMash 2010

Value of Iterative

Continuous focus – Improvement– Quality– Priority – Adding Business Value– Ability to Estimate– Team / Team Ability

6

Page 9: Agile - Iteration 0 CodeMash 2010

Value of Iterative

Develops trust with the Business!

7

Page 10: Agile - Iteration 0 CodeMash 2010

What Agile is NOT

EvolutionaryNo DocumentationNo ArchitectureCowboy Development

8

Page 11: Agile - Iteration 0 CodeMash 2010

What Agile is NOT

EvolutionaryNo DocumentationNo ArchitectureCowboy Development

8

Page 12: Agile - Iteration 0 CodeMash 2010

9

Agile Micro View

Page 13: Agile - Iteration 0 CodeMash 2010

What is an Iteration?

10

Opening Meeting Closing Meeting

Standup Meetings

Page 14: Agile - Iteration 0 CodeMash 2010

Does Size Matter?

11

Page 15: Agile - Iteration 0 CodeMash 2010

Opening Meeting

Who comes?– Developers– DBA– User / BA– Architects– QA

12

Page 16: Agile - Iteration 0 CodeMash 2010

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

Page 17: Agile - Iteration 0 CodeMash 2010

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

Page 18: Agile - Iteration 0 CodeMash 2010

Value of the Closing Meeting

Quality CheckUser FeedbackEstimate CheckTeam Performance Check

15

Velocity?Bug Level?

Page 19: Agile - Iteration 0 CodeMash 2010

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

Page 20: Agile - Iteration 0 CodeMash 2010

17

Agile Macro View

Page 21: Agile - Iteration 0 CodeMash 2010

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

Page 22: Agile - Iteration 0 CodeMash 2010

Agile at a Macro Level

Missing Details– Great Information on Running Agile– Less Information on:

• Starting Agile• Pre-IT0• IT0

Page 23: Agile - Iteration 0 CodeMash 2010

Agile Full Life Cycle

Page 24: Agile - Iteration 0 CodeMash 2010

Pre-IT0 Stage 1

Project InceptionStake Holder Level

– Business Opportunity / Concerns– Often not exposed to all developers

Page 25: Agile - Iteration 0 CodeMash 2010

Pre-IT0 Stage 2

Collection of StoriesEstimating

– ROI – Project Justified

Build up of Team / ResourcesIteration SizingInitial List of RisksRelease Plan

Page 26: Agile - Iteration 0 CodeMash 2010

Building a Team

Co-OwnershipPrepared to Steal TasksPairing CapableExpected Velocity?

– Adjust Story Alignment and Release Plan

Page 27: Agile - Iteration 0 CodeMash 2010

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

Page 28: Agile - Iteration 0 CodeMash 2010

Iteration 0

Creation of the Machine!Environment Setup

– Continuous Integration (CI)– IDE– Communication

Project Alignment– To other concerns outside the core team

Release Plan

Page 29: Agile - Iteration 0 CodeMash 2010

Planning for Success

Working with Users– Stories

• Acceptance Criteria!!!!

– Priorities

Project Alignments– DBA / Database– QA– Enterprise Architecture– Management

Page 30: Agile - Iteration 0 CodeMash 2010

Release Plan

Internal Releases Every IterationPlanned QA ReleasesPlanned External ReleasesInitial Breakdown of Stories

– Iteration Based on Priority

Page 31: Agile - Iteration 0 CodeMash 2010

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

Page 32: Agile - Iteration 0 CodeMash 2010

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

Page 33: Agile - Iteration 0 CodeMash 2010

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

Page 34: Agile - Iteration 0 CodeMash 2010

Iteration 0

Page 35: Agile - Iteration 0 CodeMash 2010

What would stop you from doing a 1 week iteration?

32

Page 36: Agile - Iteration 0 CodeMash 2010

Purpose of Automation

PredictabilityFrequent repeatable feedbackShorter iterations possible

33

Page 37: Agile - Iteration 0 CodeMash 2010

Iteration 0

Version ControlIDE SetupIT0 Spikes Build SystemContinuous IntegrationReport MechanismCore InfrastructureXplanner / JIRA / WikiInitial Design StrategiesMultiple Domains

Page 38: Agile - Iteration 0 CodeMash 2010

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

Page 39: Agile - Iteration 0 CodeMash 2010

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

Page 40: Agile - Iteration 0 CodeMash 2010

IT0 Spikes

Using a new tool?– FIT– Selenium– jsUnit

Testing Something that is difficult to test?– 3rd Party Machine– External Connection

Page 41: Agile - Iteration 0 CodeMash 2010

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

Page 42: Agile - Iteration 0 CodeMash 2010

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

Page 43: Agile - Iteration 0 CodeMash 2010

Reports

Code Quality– Compilation– Unit Test– Code Coverage– Static Analysis

Burn Down Reports

Page 44: Agile - Iteration 0 CodeMash 2010

XPlanner / JIRA

Setup Story RepositorySetup IT0 and IT1 and a Future Stories ITSetup Wiki / Forum

Page 45: Agile - Iteration 0 CodeMash 2010

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.

Page 46: Agile - Iteration 0 CodeMash 2010

Multiple Domains

Setup Dev BoxUnderstand other domains

– Prod, QA

Automate the promotion path if possible– How to handle SQL DDL?

Page 47: Agile - Iteration 0 CodeMash 2010

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

Page 48: Agile - Iteration 0 CodeMash 2010

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?

Page 49: Agile - Iteration 0 CodeMash 2010

Benefits of Iteration 0

feedback on teams ability to estimateteam velocityfocus on automating everythingremove the human factors

46

Page 50: Agile - Iteration 0 CodeMash 2010

ITX

The Machine Is ReadyCode at will!

Page 51: Agile - Iteration 0 CodeMash 2010

Summary

Start The Project WellIT 0 Establishes

– Working Environment– Communication Channels– Initial Expectations

Page 52: Agile - Iteration 0 CodeMash 2010

Questions

Please Fill Out Surveys

[email protected]

twitter: @kensipe