41
1 Microsoft Agile 2012 1 Microsoft Agile 2012 1 Slow Down to Go Fast: Lessons Learned Shipping Bing Voice Search on Xbox James Waletzky Director of Development & QA Practices, Crosslake (formerly Dev Lead @ Microsoft) [email protected] Randy Santossio Senior SDET, Microsoft (Xbox) [email protected]

Slow down to go fast agile 2012 - slides 0

Embed Size (px)

Citation preview

Page 1: Slow down to go fast   agile 2012 - slides 0

1 Microsoft Agile 2012 1 Microsoft Agile 2012 1

Slow Down to Go Fast: Lessons Learned Shipping

Bing Voice Search on Xbox

James Waletzky

Director of Development & QA Practices, Crosslake

(formerly Dev Lead @ Microsoft)

[email protected]

Randy Santossio

Senior SDET, Microsoft (Xbox)

[email protected]

Page 2: Slow down to go fast   agile 2012 - slides 0

2 Microsoft Agile 2012 2 Microsoft Agile 2012 2 J J

Who is this James guy?

http://blogs.msdn.com/b/progressive_development/

Page 3: Slow down to go fast   agile 2012 - slides 0

3 Microsoft Agile 2012 3 Microsoft Agile 2012 3 J J

The little engine that could

Page 4: Slow down to go fast   agile 2012 - slides 0

4 Microsoft Agile 2012 4 Microsoft Agile 2012 4 R R

Who is this Randy guy?

Page 5: Slow down to go fast   agile 2012 - slides 0

5 Microsoft Agile 2012 5 Microsoft Agile 2012 5 R R

From that little Redmond startup…

Page 6: Slow down to go fast   agile 2012 - slides 0

6 Microsoft Agile 2012 6 Microsoft Agile 2012 6 J J

How is your short term memory?

Dory says… “Please jot down your

questions and save

them for the end.”

Page 7: Slow down to go fast   agile 2012 - slides 0

7 Microsoft Agile 2012 7 Microsoft Agile 2012 7 J J

How to win the race

Page 8: Slow down to go fast   agile 2012 - slides 0

8 Microsoft Agile 2012 8 Microsoft Agile 2012 8 R R

Agile vs. agile

Page 9: Slow down to go fast   agile 2012 - slides 0

9 Microsoft Agile 2012 9 Microsoft Agile 2012 9 J J

Just Bing it!

Page 10: Slow down to go fast   agile 2012 - slides 0

10 Microsoft Agile 2012 10 Microsoft Agile 2012 10 R R

The internal workings

Controller

Input

Voice Input

(Kinect)

Voice to

Text

Xbox

LIVE

bing

Games

Movies TV

Music Apps

Applications

Page 11: Slow down to go fast   agile 2012 - slides 0

11 Microsoft Agile 2012 11 Microsoft Agile 2012 11 J J

Story time!

Page 12: Slow down to go fast   agile 2012 - slides 0

12 Microsoft Agile 2012 12 Microsoft Agile 2012 12 J J

Once upon a time…

Page 13: Slow down to go fast   agile 2012 - slides 0

13 Microsoft Agile 2012 13 Microsoft Agile 2012 13 R R

They lived in a world where…

Page 14: Slow down to go fast   agile 2012 - slides 0

14 Microsoft Agile 2012 14 Microsoft Agile 2012 14 R R

Boundaries existed

Page 15: Slow down to go fast   agile 2012 - slides 0

15 Microsoft Agile 2012 15 Microsoft Agile 2012 15 J J

Kick off!

Page 16: Slow down to go fast   agile 2012 - slides 0

16 Microsoft Agile 2012 16 Microsoft Agile 2012 16 J J

Their first task

Page 17: Slow down to go fast   agile 2012 - slides 0

17 Microsoft Agile 2012 17 Microsoft Agile 2012 17 J J

Best buddies?

Page 18: Slow down to go fast   agile 2012 - slides 0

18 Microsoft Agile 2012 18 Microsoft Agile 2012 18 J J

Test/Dev: Best Buddies?

Page 19: Slow down to go fast   agile 2012 - slides 0

19 Microsoft Agile 2012 19 Microsoft Agile 2012 19 R R

The buddies worked together…

Dev:

• sends code review

Team:

• reviews code changes

• builds & tests new code

• finds new bugs

Dev:

• fixes found bugs

• updates code review

Team:

• signs off on code

• dev checks in code

Page 20: Slow down to go fast   agile 2012 - slides 0

20 Microsoft Agile 2012 20 Microsoft Agile 2012 20 R R

They huddled every day around this archaic board

Page 21: Slow down to go fast   agile 2012 - slides 0

21 Microsoft Agile 2012 21 Microsoft Agile 2012 21 J J

Comprehensive documentation? Well, no…

Page 22: Slow down to go fast   agile 2012 - slides 0

22 Microsoft Agile 2012 22 Microsoft Agile 2012 22 R R

Many dependencies, great responsibility

Page 23: Slow down to go fast   agile 2012 - slides 0

23 Microsoft Agile 2012 23 Microsoft Agile 2012 23 R R

We used Milestones “checkpoints”

or

Page 24: Slow down to go fast   agile 2012 - slides 0

24 Microsoft Agile 2012 24 Microsoft Agile 2012 24 J J

Nobody is perfect

Page 25: Slow down to go fast   agile 2012 - slides 0

25 Microsoft Agile 2012 25 Microsoft Agile 2012 25 R R

“I got your back, Bro”

Page 26: Slow down to go fast   agile 2012 - slides 0

26 Microsoft Agile 2012 26 Microsoft Agile 2012 26 R R

What’s this about “Exit Criteria”?

Page 27: Slow down to go fast   agile 2012 - slides 0

27 Microsoft Agile 2012 27 Microsoft Agile 2012 27 J J

Reality hurts

Page 28: Slow down to go fast   agile 2012 - slides 0

28 Microsoft Agile 2012 28 Microsoft Agile 2012 28 J J

The answer? Begin with the end in mind!

Page 29: Slow down to go fast   agile 2012 - slides 0

29 Microsoft Agile 2012 29 Microsoft Agile 2012 29 J J

It’s the thought that counts

Page 30: Slow down to go fast   agile 2012 - slides 0

30 Microsoft Agile 2012 30 Microsoft Agile 2012 30 R R

Automation happens!

Page 31: Slow down to go fast   agile 2012 - slides 0

31 Microsoft Agile 2012 31 Microsoft Agile 2012 31 R R

…but we didn’t automate everything

Page 32: Slow down to go fast   agile 2012 - slides 0

32 Microsoft Agile 2012 32 Microsoft Agile 2012 32 R R

Why NOT automate everything?

Page 33: Slow down to go fast   agile 2012 - slides 0

33 Microsoft Agile 2012 33 Microsoft Agile 2012 33 J J

We all took responsibility for quality

Quality Ownership

Dev Test PM Design

Page 34: Slow down to go fast   agile 2012 - slides 0

34 Microsoft Agile 2012 34 Microsoft Agile 2012 34 R R

Working in lockstep

Page 35: Slow down to go fast   agile 2012 - slides 0

35 Microsoft Agile 2012 35 Microsoft Agile 2012 35 J J

I Unit Tests!

“Unit Tests make

me feel cuddly”

“Thinking test-first

helped me get the

design right the

first time”

“Is it failing because of

a problem in the code,

or because I don’t

understand the code”

“Unit tests flagged a

real bug in legacy

code that I never

would have found”

“In God we trust.

Everything else we

unit test”

“My unit tests revealed a

subtle bug that never would

have been found otherwise

[except potentially by the

customer]”

Real, unsolicited quotes

from Xbox developers

Page 36: Slow down to go fast   agile 2012 - slides 0

36 Microsoft Agile 2012 36 Microsoft Agile 2012 36 J J

No unit tests? You’ve got some ‘splaining to do!

Page 37: Slow down to go fast   agile 2012 - slides 0

37 Microsoft Agile 2012 37 Microsoft Agile 2012 37 R R

Bugs still happen

Page 38: Slow down to go fast   agile 2012 - slides 0

38 Microsoft Agile 2012 38 Microsoft Agile 2012 38 J J

Bugs were “bliss” to this team

Page 39: Slow down to go fast   agile 2012 - slides 0

39 Microsoft Agile 2012 39 Microsoft Agile 2012 39 J J

What should YOUR team do?

Start “by the book”, and always follow the principles, but break agile

as necessary

Form dev/test buddies early

Build quality in early – remove the walls

Collaborate in person and in writing

Create “done” definitions based on tests

Automate pragmatically, using coverage to adapt

Pay down your technical debt before it is long-term

Page 40: Slow down to go fast   agile 2012 - slides 0

40 Microsoft Agile 2012 40 Microsoft Agile 2012 40

Page 41: Slow down to go fast   agile 2012 - slides 0

41 Microsoft Agile 2012 41 Microsoft Agile 2012 41

James Waletzky

Director of Development & QA Practices, Crosslake

(formerly Dev Lead @ Microsoft)

[email protected]

Randy Santossio

Senior SDET, Microsoft (Xbox)

[email protected]