failed and successful stories with technical debt

96
Failed and successful stories with Technical Debt Antonio Cobo @Mind_of_AC

Upload: antonio-cobo-cuenca

Post on 21-Jan-2018

107 views

Category:

Presentations & Public Speaking


0 download

TRANSCRIPT

Failed and successful stories with Technical Debt

Antonio Cobo @Mind_of_AC

“Technical debt is a concept in software development that reflects the implied cost of additional rework caused by choosing an easy solution now instead of using a better approach that would take longer.” - Wikipedia

Antonio Cobo @Mind_of_AC

Antonio Cobo @Mind_of_AC

but also…

A bad code review process (or a non existing one) will generate unconsciously Technical Debt

Antonio Cobo @Mind_of_AC

but also…

Antonio Cobo @Mind_of_AC

Who am I?

Senior Agile Delivery Consultant

Software developer2000

2017

Antonio Cobo @Mind_of_AC

Who am I?

Java DeveloperHead of Backend DevelopmentTechnical Project ManagerProject ManagerAgile Project ManagerScrum MasterAgile Delivery ConsultantSenior Agile Delivery Consultant

IT Manager

Software developer2000

2017

Antonio Cobo @Mind_of_AC

What’s the accent?

Antonio Cobo @Mind_of_AC

What’s the accent?

Antonio Cobo @Mind_of_AC

Warning!

Antonio Cobo @Mind_of_AC

Warning!

Antonio Cobo @Mind_of_AC

Warning!

Antonio Cobo @Mind_of_AC

Warning!

https://images.fineartamerica.com/images/artworkimages/medium/1/darth-vader-watercolor-olga-shvartsur-transparent.png

Antonio Cobo @Mind_of_AC

Prelude

Antonio Cobo @Mind_of_AC

Misunderstanding

Antonio Cobo @Mind_of_AC

http://www.brainlesstales.com/2009-07-06/bowling-misunderstanding

Misunderstanding

What Business think

Antonio Cobo @Mind_of_AC

What Business think

Antonio Cobo @Mind_of_AC

What Devs think

Antonio Cobo @Mind_of_AC

What Devs think

Antonio Cobo @Mind_of_AC

Explain technical debt using business words

Antonio Cobo @Mind_of_AC

Explain technical debt using business words

Antonio Cobo @Mind_of_AC

Impact on our customers

Explain technical debt using business words

Antonio Cobo @Mind_of_AC

Impact on our customers Impact on our brand

Explain technical debt using business words

Antonio Cobo @Mind_of_AC

Impact on our customers Impact on our brand

Antonio Cobo @Mind_of_AC

Chapter 1: The bad teacher

Antonio Cobo @Mind_of_AC

Situation:

• Junior Developer• Big company• “Senior” Developer with no real experience• Fixed Price contract• Save as much money as you can mentality

Antonio Cobo @Mind_of_AC

Antonio Cobo @Mind_of_AC

Antonio Cobo @Mind_of_AC

Antonio Cobo @Mind_of_AC

Bad team work

Antonio Cobo @Mind_of_AC

Bad team workNot teaching good practices

Antonio Cobo @Mind_of_AC

Bad team workNot teaching good practicesNot making the junior developer to think

Antonio Cobo @Mind_of_AC

Bad team workNot teaching good practicesNot making the junior developer to thinkIf the original class used as a model is poorly written

Antonio Cobo @Mind_of_AC

Bad team workNot teaching good practicesNot making the junior developer to thinkIf the original class used as a model is poorly written

Antonio Cobo @Mind_of_AC

Bad team workNot teaching good practicesNot making the junior developer to thinkIf the original class used as a model is poorly written

Antonio Cobo @Mind_of_AC

Chapter 2: The sellotape fix

Antonio Cobo @Mind_of_AC

Situation:

• Extremely optimistic deadline• Development manager asked to be “hands on”• We MUST deliver something tomorrow• After helping the team, it’s late and DM is alone

Antonio Cobo @Mind_of_AC

Antonio Cobo @Mind_of_AC

Antonio Cobo @Mind_of_AC

Antonio Cobo @Mind_of_AC

Antonio Cobo @Mind_of_AC

Antonio Cobo @Mind_of_AC

Chapter 3: The Outlaw

Antonio Cobo @Mind_of_AC

Situation:

• Developer finding Tech Debt• Willing to correct it• Refactoring a small part…• Without telling anyone

Antonio Cobo @Mind_of_AC

https://blog.frankel.ch/dont-talk-about-refactoring-club/

Antonio Cobo @Mind_of_AC

https://blog.frankel.ch/dont-talk-about-refactoring-club/

Antonio Cobo @Mind_of_AC

Situation:

• Developer finding Tech Debt• Willing to correct it• Refactoring a small part…• Without telling anyone

Antonio Cobo @Mind_of_AC

Situation:

• Developer finding Tech Debt• Willing to correct it• Refactoring a small part… • becoming bigger and bigger and bigger…• Without telling anyone

Antonio Cobo @Mind_of_AC

Antonio Cobo @Mind_of_AC

Antonio Cobo @Mind_of_AC

Antonio Cobo @Mind_of_AC

Antonio Cobo @Mind_of_AC

Situation:

• Developer finding Tech Debt• Willing to correct it• Discuss with the Team• Refactor

Antonio Cobo @Mind_of_AC

Antonio Cobo @Mind_of_AC

Antonio Cobo @Mind_of_AC

Antonio Cobo @Mind_of_AC

Chapter 4: The good team

Antonio Cobo @Mind_of_AC

Situation:

• Seven senior developers + PO• Long term product development• Some intermediate tight deadlines• Second retrospective and Tech Debt is here!

Added technical debt as new issue type in the backlog

Antonio Cobo @Mind_of_AC

Antonio Cobo @Mind_of_AC

Technical debt tickets were prioritised alongside the stories and tasks

Antonio Cobo @Mind_of_AC

Antonio Cobo @Mind_of_AC

Good team work

Antonio Cobo @Mind_of_AC

Good team workCommunication between devs and PO

Antonio Cobo @Mind_of_AC

Good team workCommunication between devs and POManage to reduce the technical debt fast after its creation

Antonio Cobo @Mind_of_AC

Good team workCommunication between devs and POManage to reduce the technical debt fast after its creation

Antonio Cobo @Mind_of_AC

Good team workCommunication between devs and POManage to reduce the technical debt fast after its creation

Antonio Cobo @Mind_of_AC

Chapter 5: It’s a trap!

Antonio Cobo @Mind_of_AC

Evil Team Member

Antonio Cobo @Mind_of_AC

Evil Team Member

Antonio Cobo @Mind_of_AC

Evil Team Member

Antonio Cobo @Mind_of_AC

Evil Product Owner

Antonio Cobo @Mind_of_AC

Evil Product Owner

Antonio Cobo @Mind_of_AC

Evil Product Owner

Antonio Cobo @Mind_of_AC

Antonio Cobo @Mind_of_AC

Antonio Cobo @Mind_of_AC

Chapter 6: Avoiding the trap

Antonio Cobo @Mind_of_AC

Scenario: Evil Team Member

working agreements

Antonio Cobo @Mind_of_AC

We agreed to dedicate a % of time to repay your debt on each sprint

Antonio Cobo @Mind_of_AC

We reviewed that % on every retrospective

Antonio Cobo @Mind_of_AC

Show improvements in the demo

Antonio Cobo @Mind_of_AC

Show improvements in the demo

Antonio Cobo @Mind_of_AC

Antonio Cobo @Mind_of_AC

Chapter 7: The storyteller

Antonio Cobo @Mind_of_AC

Scenario: Evil Product Owner

Antonio Cobo @Mind_of_AC

Make it a story!

Antonio Cobo @Mind_of_AC

Antonio Cobo @Mind_of_AC

“Improve how we handle DB concurrent connections”

Antonio Cobo @Mind_of_AC

“Improve how we handle DB concurrent connections”

Antonio Cobo @Mind_of_AC

“Improve how we handle DB concurrent connections”

As a Head of Product I want to enable special sales events in our website (ie. Black Friday) so that we can increase our revenue

Antonio Cobo @Mind_of_AC

“Improve how we handle DB concurrent connections”

As a Head of Product I want to enable special sales events in our website (ie. Black Friday) so that we can increase our revenue

Antonio Cobo @Mind_of_AC

Antonio Cobo @Mind_of_AC

Epilogue

Scout Camp Rule

Leave the code you touch cleaner than the way you found it!

Antonio Cobo @Mind_of_AC

CODE REVIEW

Never approve added technical debt! Challenge and suggest improvements while reviewing

Antonio Cobo @Mind_of_AC

Antonio Cobo @Mind_of_AC

https://www.lynda.com/Business-Skills-tutorials/Communication-Tips/170778-2.html

Communication, communication, communication!

Antonio Cobo @Mind_of_AC

Antonio Cobo @Mind_of_AC

…and they lived happily ever after.

THE END