How to be proud when you are done

44
HOW TO BE PROUD WHEN YOU ARE DONE

description

Although all of us speak the same language, each of us uses different meaning of words "soon”, "fine” and "done”. That’s why for one developer "I’m done” means that just a moment ago the part of the code with implemented functionality has been successfully executed, while for another developer it means that code has been committed to repository but without checking if build is green or not on continuous integration server. At the same time "done" of developer-perfectionist means totally refactored and optimized code. And only for "black swan”-developer phrase "I'm done“ means that all tests were passed, new functionality was documented on wiki and a new feature was verified by customer on the demo server.So if you want to decrease a risk of misunderstanding inside a team or between team and customer you should make agreement about common vision of “definition of done“ and then start using it on a daily basis. In order to prevent losing your time and stepping on the hidden rake during discussion of your done criteria we will share our knowledge about creating compact and most effective “definition of done“. We will talk about lifecycle of this document and about approaches that help you to add important items to it. We will discuss doneness on different levels (preplanning, user story and task development, sprint). And of course we won’t forget to tell you how to create “Definition of Done“ which will satisfy not only your team but your customer as well.

Transcript of How to be proud when you are done

Page 1: How to be proud when you are done

HOW TO BE PROUD WHEN YOU ARE DONE

Page 2: How to be proud when you are done

Java Technical Lead/Scrum Master at Zoral Labs 6+ years in software development 4+ years of working by Agile methodologies Expert in Agile engineering practices Agile coach at XP Injection

Mikalai Alimenkou

Architect at Infopulse Ukraine Agile volunteer Certified Scrum Practitioner Coordinator of translation of the book "Scrum and

XP from the Trenches" and “Kanban and Scrum – making the most of both” into Russian

Agile coach at XP Injection

Aleksey Solntsev

Page 3: How to be proud when you are done

Everybody has own “dreams”

Latest frameworks No overtimes No bug fixing Clean code

Team

More features In time delivery No defects!

Customer

Goal achievement Predictable plans On budget

Manager

Page 4: How to be proud when you are done

What all of them have in common?

And good quality

With fast delivery

At low price

Done product

Page 5: How to be proud when you are done

Why in real life it is not so simple?

Whhhyyyy?!!!

Page 6: How to be proud when you are done

“Uncommitted stuff”Can I start testing this new feature?

But I can’t even build the product…

Yes, it is done!

Ops, I forgot to commit some files...

Page 7: How to be proud when you are done

“Useless build”

Well done! Let’s deploy new build on production server.

Not so fast. We need to do integration testing, prepare DB migration scripts, etc. I hope it

will be finished in a week.

???

Page 8: How to be proud when you are done

“Unstable velocity”Well done! Our velocity

in the last iteration increased up to 32 SP.

Let’s use it as base line.

How will it change our velocity?

Let’s say 20.

Agree, but we have to make some small fixes, finish testing and update

documentation.

Page 9: How to be proud when you are done

“Unverified tasks”WTF! A new order form is

nightmare. It looks like random set of fields and

doesn’t accept basic values.

Have somebody tried to use it before assign to me?

Don’t panic! I just made a quick fix…

Page 10: How to be proud when you are done

“Forgotten requirements”

John, have you made load and

performance testing?

Guys, as we discussed on the planning meeting, we’ve

just started pre-orders program for iPad2. And now our site is extremely slow.

Well, but …

Page 11: How to be proud when you are done

Why this happens?

Whhhyyyy?!!!

Page 12: How to be proud when you are done

Hidden conflicts in goals• Developers like always implementing interesting features,

but customers want working software• Team want to show productivity, but customers want

predictability• Developers believe they are perfect, but customers want

software without defects• Management want to deliver in time, but customers want

ready to use software• Developers see technical side of the project, but

customers see it from end users perspective

Page 13: How to be proud when you are done

And the main reason is …

Everybody has his own definition of words ‘done’, ‘fast’, ‘low price’,

‘good quality’!

Page 14: How to be proud when you are done

“Definition of Done” is a "contract" between all parties on subject when … a checklist of valuable activities for … gates your product has to go through before …

… you can label the product “Done“

Let’s start from definition

Page 15: How to be proud when you are done

4 mainquestions

Page 16: How to be proud when you are done

How to start?

Take from previous project

From business problems and wishes

From code quality in mind

Page 17: How to be proud when you are done

Start from flow visualization

Image from Henrik Kniberg book “Scrum and Kanban - making the most of both”

Page 18: How to be proud when you are done

Who should define?

Team

Customer

Page 19: How to be proud when you are done

Retro

When to define?

Start

Page 20: How to be proud when you are done

Where to store?

Morecommon

More personal

Electronic

Paper

Page 21: How to be proud when you are done

main formats3

Page 22: How to be proud when you are done

Plain list

Page 23: How to be proud when you are done

Different levels of granularity

Release

Pre-planning

Iteration

Iteration planning

FeatureUser Story 1 User Story 2

User Story 1

Task 1 Task 2

User Story 2

Task 1 Task 2

Page 24: How to be proud when you are done

List categorized by level

Pre-planning• Criteria 1 • …• Criteria N

Iteration• Criteria 1• …• Criteria N

Feature

• Criteria 1• …• Criteria N

User Story• Criteria 1 • …• Criteria N

Task• Criteria 1• …• Criteria N

Release

• Criteria 1• …• Criteria N

Page 25: How to be proud when you are done

Complex structure

Pre-planning• Criteria 1 • …• Criteria N

Iteration• Criteria 1• …• Criteria N

Feature• Criteria 1• …• Criteria N

User Story• Criteria 1 • …• Criteria N

Task• Criteria 1• …• Criteria N

Release• Criteria 1• …• Criteria N

User experience

Test Has QA been part of preplanning?

User experience

Documentation Has the end-user documentation been updated?

Working software

Has the implementation been reviewed be a peer?

Test

User experience

Test Is the scalability testing done?

Documentation

User experience

Test

Documentation

User experience

Test

Documentation

Page 26: How to be proud when you are done

main control principles3

Page 27: How to be proud when you are done

Automation

Use SVN hook for verify comments in commits

Add static analyzer to build

Page 28: How to be proud when you are done

Fixed workflow

Review

Fix and documentworkflow

Task tracking system can help

Page 29: How to be proud when you are done

Responsible persons

ManagerTeam Lead

Page 30: How to be proud when you are done

How does it work in real world

Page 31: How to be proud when you are done

Binary state

Not done

Done

Will be done

In progress

Nearly done

Page 32: How to be proud when you are done

week 1 week 2 week 3 week 4 week 5 week 6 week 7 week 8

End of iteration 1 Start of stabilization End of project

Traditional approaches

Depends on context

Scrumweek 1 week 2 week 3 week 4 week 5 week 6 week 7 week 8

End of sprint 1 End of sprint 2 End of sprint 3 End of project

week 1 week 2 week 3 week 4 week 5 week 6 week 7 week 8

End of project

Kanban

PM: Are tasks done?Devs: No.PM: OK, go on. But don’t forget about new features.

PM: Done?Devs: We hope so.

PM: Done?Devs: No yet.

PM: Done?Devs: Yes.

PM: Done?Devs: Of course!

PM: Done?Devs: Of course!

Page 33: How to be proud when you are done

main problems7

Page 34: How to be proud when you are done

No common understanding

Page 35: How to be proud when you are done

No commitment

Page 36: How to be proud when you are done

Unrealistic

Page 37: How to be proud when you are done

Too ideal

Page 38: How to be proud when you are done

Partially done tasks are accepted

Done?

Page 39: How to be proud when you are done

"Broken windows" principle

Page 40: How to be proud when you are done

“Development” only

Page 41: How to be proud when you are done

Let’s try to build Definition of Done!

Page 42: How to be proud when you are done

Conclusions

Common vocabulary helps us to avoid hidden conflicts …

… and work together as a team to archive our goals!

Page 43: How to be proud when you are done

• Introduce “Definition of Done” ASAP to avoid broken expectations

• All parties must take part in definition process• Automate as much as possible• Don't lie yourself, DONE means DONE• Learn from your mistakes• Inspect and adapt continuously

Page 44: How to be proud when you are done

Q&A

Email us:• [email protected][email protected]