How we do Agile? - download.microsoft.comdownload.microsoft.com/.../how_we_do_agile.pdf · Do...
Transcript of How we do Agile? - download.microsoft.comdownload.microsoft.com/.../how_we_do_agile.pdf · Do...
How we do Agile?
Don Smith Ajoy Krishnamoorthy
What is agile?
“Continuous delivery of value by self-organizing teams in the face of changing requirements”
Flow/Summary
The most important thing is to work on the most important thing
Rhythm of execution The Whole Team Rigorous testing by all Communication
Gotchas & challenges
Customer Connected Engineering Communication
− Breadth: Codeplex communities
− Depth: Customer Advisory Boards
Think in terms of real stories not just features− Software from the customer perspective
Frequent checkpoints with customers− Using frequent drops to the communities− Customer workshops− Prototype testing− Advisory meetings
Planning and Estimation
Be date driven Maintain prioritized
story backlog Choose initial t-shirt size Play the planning game Monitor velocity Plan for iteration zero
Low-Fi Iteration Planning: Warm
Hi-Fi Iteration Planning: Still Warm
Low-Fi Progress Tracking
Hi-Fi Progress Tracking
Team Formation
Program management
Dev lead + developers
Test lead + testers
Technical Writer(s)
Domain experts (SMEs)
Core teams with consistent members− Consultants available
But it’s about what you do, not job titles!
Team Management- Do’s & Don’ts
DO:− Self organizing teams− Retrospectives – need to be more diligent
− do iteration retrospectives before IP
− Preserve team continuity if possible− Be careful about team size: small can be too small− Ramp up new team members quickly
DON’T:− Multiplex− Micromanage
Distributed Teams
This is the reality of software development today
Maximize communication− Join project kick off iteration− More formal story management
There is only one team not local and remote− Everyone participates in daily stand-ups
Frequent on site visits Time zones harder to manage than distance
Distributed Teams - Do’s and Don’ts
Do maximize communication bandwidth Don’t continually reorganize your teams Do plan to travel Don’t distribute your work by components Do provide tools to augment existing practices Don’t let remote team members get forgotten Do evolve the team’s practices Don’t forget retrospectives Do focus on coaching
14
Execution: Process Agnostic Practices
Unit testing (tests are assets not liability) Test-Driven Development (TDD) Continuous Integration (CI) Acceptance testing (automate what makes sense) Iteration planning Daily stand-ups Retrospectives
You don’t have to be agile to get the benefits…
Challenges & Lessons Learnt
Multiplexing Getting feedback Too many cooks Rewarding teams Invest in MQ
− Automate environment creation− Integrate doc builds into regular builds
Teams should feel empowered and encouraged to address their challenges within the team
Learn from us!
References
Microsoft patterns & practices− msdn.microsoft.com/practices
Blogs− Don’s: blogs.msdn.com/donsmith − Ajoy’s: blogs.msdn.com/ajoyk
Twitter: @mspnp