Prototypes are Forever - XP 2010 - EN

Preview:

DESCRIPTION

Presents the benefits and dangers of prototypes. We're talking about creating prototypes to speed up the validation of an idea but being careful enough not to keep the quick and crappy result as the end result of work.

Citation preview

Prototypes are forever: Evolving from a prototype project to a full-featured

system

Alexandre FreireFernando FreireHugo CorbucciMariana Bravo

Introduction

Why should we throw our prototypes away?

Introduction

Why is technical debt considered harmful?

Context

3 months prototype RCP project=+ 4 developers

80 pair hours per iteration

Context

3 months prototype RCP project=+ 4 developers

80 pair hours per iteration

Goal: exp

loration and

discove

ry for a

demo

Iteration 1 - 25 commits - Jun/2008

Practices

No full test coverage Only crucial tests→

Practices

Invest in Continuous Deployment (hourly builds)

Practices

“Buggy” software for well-behaved users

Client priorization:● No corner-cases● No validation● No verification● No exception handling● Lots of new features

Iteration 4 - 211 commits - Oct/2008

Ready for demo?

Ready for demo?

No!

Ready for demo?

Needs text editor

Ready for demo?

Needs text editor

Deadline: Dec/2008

Complete focus on the editor

Iteration 6 - 352 commits - Dec/2008

Changing the rules

Demo cancelled!

Changing the rules

Demo cancelled!● Less pressure Fight against technical debt→● January 2009: a whole iteration dedicated to

refactoring

Changing the rules

● 6 months evolving editor features● A complex editor means other less new

features

...● Still no demo

Iteration 12 - 937 commits - Jun/2009

This is no longer a prototype

Dedicated study group

of dramaturgy experts● More ideas for new features● Investment in UX

This is no longer a prototype

Outsourcing editor so team can focus on new features

Tracking Technical Debt

Tracking Technical Debt

Difficulties

GUI testing

Loss of a team member

Difficulties

Prioritizing integration VS new features● Integration with outsource team● No steady rhythm

New direction

“I've invested too much!

This software is mine.”

New direction

“I've invented something new.”

New direction

Focus on quality

Aim for complete, bug-free features

Iteration 23 - 2005 commits - now

Conclusion

No need to throw away prototypes:

just write tests for crucial elements

and refactor mercilessly

Conclusion

Technical debt is acceptable if kept under control and software delivers value for client

Conclusion

Throw away if all you wanted was to gain knowledge

Questions?

contact@agilbits.com.br