How we do Agile? - download.microsoft.comdownload.microsoft.com/.../how_we_do_agile.pdf · Do...

Preview:

Citation preview

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

Recommended