310 likes | 413 Views
Introducing Agile and Lean Practices into a Chaotic Environment. An overview of what practices the team was using 6 months ago. Where We Were THEN. Team. Brand new 4 Developers No Tester No Project Manager Product Owner shared. Cadence / Capacity Management. “Shock Therapy” Scrum
E N D
Introducing Agile and Lean Practices into a Chaotic Environment
An overview of what practices the team was using 6 months ago Where We Were THEN
Team • Brand new • 4 Developers • No Tester • No Project Manager • Product Owner shared
Cadence / Capacity Management • “Shock Therapy” Scrum • 1 week iterations • Short feedback cycles
Meetings • Prioritisation • Occurs iteration – 1 • Requirements / Analysis • Planning • Stand Up • Demo • Retrospective
Analysis • Whole team and Stakeholder for feature • Whiteboard • Converted to scenarios (G,W,T) after meeting
Estimation • Occurs at planning meeting • Planning Poker • Story Points using Fibonacci Sequence • Unable to do longer term planning at this stage as not enough data but points were very helpful
Testing / QA • All testing done by the developers • Nobody tested their own work though!
Continuous Integration • All Projects were under CI • Some deployments done using CI • Working towards having all deployments automated
Development Practices • Pair Programming, Unit Testing, Refactoring and more • Coding Standards – Document and Resharper • All new code; Unit Tests, Integration Tests, Acceptance Tests
Team Principles • No multi-tasking • All new or changed code must be thoroughly unit tested • No more than 2 pieces of work in “Active Work” at any time (our team is 3 developers) • We always work on the highest priority task • Our definition of done is “In UAT” • Leave it in a better condition than you found it • No hidden work • No overtime • No disruptions • Don’t SysTest your own work (we don’t have a tester yet)
Which practices are we using now? Where we are now
Team • 5 Developers • Dedicated Tester • No Project Manager • Product Owner shared
Cadence / Capacity Management • 1 week iterations • Short feedback cycles • Less Meetings overhead • Meetings when needed
Meetings • Prioritisation • Occurs iteration – 1 • Requirements / Analysis • Planning • Stand Up • Demo – When we can… • Fortnightly Retrospectives
Analysis • Merged with Prioritisation Session • Whole Team and Stakeholders • Whiteboard • Convert to scenarios (G,W,T) after meeting • Team proposes features too
Estimation • Occurs at Analysis meeting • T – Shirt Sizes • Estimation • Occurs at planning meeting • T-Shirt sized estimates • Can do longer term planning • Delivery road map
Testing / QA • All testing lead by the tester • Some testing done by developers • Automated acceptance tests
Continuous Integration • All projects now under CI • CI runs acceptance tests after deployment • Fully automated deployment to Live
Development Practices • Pair Programming, Unit Testing, Refactoring and more • Coding Standards – Document and Resharper • All new code = Unit Tests, Integration Tests, Acceptance Tests • More effort spent on Acceptance Tests
Code Metrics • CI generates a code metrics dashboard, using NDepend on every check-in • Visibility into code quality
Ask us about our experiences… Panel Discussion
Contact Us • Dan Rough: dan.rough@7digital.com • Hibri Marzook: hibri.marzook@7digital.com • Rob Bowley: rob.bowley@7digital.com • http://blogs.7digital.com/dev