death by technical debt: lessons learned to get you unbuired

55
Death by technical debt: lessons learned to get unburied QA & Developer Joint Forum Event

Upload: technologyassociationoregon

Post on 02-Jul-2015

231 views

Category:

Technology


2 download

DESCRIPTION

Technical debt is inevitable in applications development and many organizations and teams struggle to manage it – when to take it on, when to avoid it and when and how to pay it down.

TRANSCRIPT

Page 1: Death by Technical Debt: Lessons Learned to Get you Unbuired

Death by technical debt:lessons learned to get unburied

QA & Developer Joint Forum Event

Page 2: Death by Technical Debt: Lessons Learned to Get you Unbuired

SERIES SPONSORS

Page 3: Death by Technical Debt: Lessons Learned to Get you Unbuired

JAMES SHOREConsultant, AuthorThe Art of Agile@jamesshore

Page 4: Death by Technical Debt: Lessons Learned to Get you Unbuired

1800GOAGILEby Becky James

Debt Counseling

Page 5: Death by Technical Debt: Lessons Learned to Get you Unbuired

#surelytheremustbeoneanswer

Page 6: Death by Technical Debt: Lessons Learned to Get you Unbuired

#managersbringconstraints, #debtfreewithoutmanagers

Page 7: Death by Technical Debt: Lessons Learned to Get you Unbuired

#oldnews, #boldstatement#noteamcohesion

#itsalltheirfault

Page 8: Death by Technical Debt: Lessons Learned to Get you Unbuired

#unempowered, #overthewallthinking#lacksownership, #actualquotes

I shouldn't have to spend any of

my resource pool on technical

debt that the Development

teams introduced.

Surely, we don’t need that much

time to fully test the

feature – let’s cut that

estimate in half.

What do you mean my

feedback is too late…I just got pulled into the

project yesterday.

Product Owner Developer QA Engineer

Page 9: Death by Technical Debt: Lessons Learned to Get you Unbuired

#completetransformation, #declaredbankruptcy

Page 10: Death by Technical Debt: Lessons Learned to Get you Unbuired

#empowered, #teamsownsdecisions

Page 11: Death by Technical Debt: Lessons Learned to Get you Unbuired

#selforganizingteams, #nobystanders#deliberatedecisions, #ownership

I own quality and I own

keeping our technical debt under control.

I own quality and I own

keeping our technical debt under control.

Product Owner Developer QA Engineer

I own quality and I own

keeping our technical debt under control.

Page 12: Death by Technical Debt: Lessons Learned to Get you Unbuired

#theybringdonuts

Page 13: Death by Technical Debt: Lessons Learned to Get you Unbuired

Technical DebtDeath by Technical Debt:

Lessons Learned to get you Unburied

Product Owner Point of View

Todd Whitaker, Product Owner

Tripwire, Inc.

Page 14: Death by Technical Debt: Lessons Learned to Get you Unbuired

What is technical debt?

14

• Technical work that should have been completed, but for whatever reason was not and thus it is being “carried” in the product/codebase.

• Analogies:

Page 15: Death by Technical Debt: Lessons Learned to Get you Unbuired

Technical Debt – This PO’s POV

If you are a product owner you should care about technical debt.

If you work with a product owner, you need to help him/her know why they should care.

15

Page 16: Death by Technical Debt: Lessons Learned to Get you Unbuired

How does it happen?

• “Startup mode”• Time to market pressure• Inexperience• A natural side-affect of an imperfect median

16

Page 17: Death by Technical Debt: Lessons Learned to Get you Unbuired

Technical Debt – Points to consider

• +1 for not incurring it in the first place• If it is being incurred, make it visible!• In reality it happens and should be tracked

– Tracking too much becomes ineffective

• Developers are usually the most aware• Others are impacted in many ways:

– Dev teams, Support, Prof Services, etc. and customers!

17

Page 18: Death by Technical Debt: Lessons Learned to Get you Unbuired

Motivating your PO• Make the PO aware of tangible effects and

benefits of addressing• Help him/her understand and quantify ROI

– Performance (speed/throughput)– Improved dev team velocity– Faster time to market– More features in the release– Increased sales– Benefit to Prof. Services and System Engineers (sales)

• Be willing to let go if you cannot justify it.

18

assign $

Page 19: Death by Technical Debt: Lessons Learned to Get you Unbuired

Questions?

19

Page 20: Death by Technical Debt: Lessons Learned to Get you Unbuired

ADP Dealer ServicesADP Dealer ServicesTechnical Debt Technical Debt DiscussionDiscussion

November 2013November 2013

Page 21: Death by Technical Debt: Lessons Learned to Get you Unbuired

21

ADP Dealer ServicesADP Dealer Services

FOCUS

Page 22: Death by Technical Debt: Lessons Learned to Get you Unbuired

22

ADP Dealer ServicesADP Dealer Services

PRODUCTS

LEAD MANAGER

CRM

DESKING

CREDIT

COMPLIANCE

F&I

MENU

STOCKING

MERCHANDISING

Page 23: Death by Technical Debt: Lessons Learned to Get you Unbuired

23

ADP Dealer ServicesADP Dealer Services

PEOPLE

37 SPRINT TEAMS250+ ASSOCIATES

Page 24: Death by Technical Debt: Lessons Learned to Get you Unbuired

24

ADP Dealer ServicesADP Dealer Services

PROCESS

Page 25: Death by Technical Debt: Lessons Learned to Get you Unbuired

25

ADP Dealer ServicesADP Dealer Services

OUR TECH DEBT STORY…

Page 26: Death by Technical Debt: Lessons Learned to Get you Unbuired

26

ADP Dealer ServicesADP Dealer Services

FIRST, THE OLD…

My Top 5 Favorites

Page 27: Death by Technical Debt: Lessons Learned to Get you Unbuired

27

ADP Dealer ServicesADP Dealer Services

1.Our application tips over every Saturday

2.We need to plan a hot fix after every release

3.We are scared to change ‘X’

4.Slow Releases

5.We Had to Roll Back the Release Because of xyz.dll

Page 28: Death by Technical Debt: Lessons Learned to Get you Unbuired

28

ADP Dealer ServicesADP Dealer Services

1.Our application tips over every Saturday

2.We need to plan a hot fix after every release

3.We are scared to change ‘X’

4.We Can’t Release That for Another 10 Days

5.We Had to Roll Back the Release Because of xyz.dll

Page 29: Death by Technical Debt: Lessons Learned to Get you Unbuired

29

ADP Dealer ServicesADP Dealer Services

1.Our application tips over every Saturday

2.We need to plan a hot fix after every release

3.We are scared to change ‘X’

4.We Can’t Release That for Another 10 Days

5.We Had to Roll Back the Release Because of xyz.dll

Page 30: Death by Technical Debt: Lessons Learned to Get you Unbuired

30

ADP Dealer ServicesADP Dealer Services

1.Our application tips over every Saturday

2.We need to plan a hot fix after every release

3.We are scared to change ‘X’

4.We Can’t Release That for Another 10 Days

5.We Had to Roll Back the Release Because of xyz.dll

Page 31: Death by Technical Debt: Lessons Learned to Get you Unbuired

31

ADP Dealer ServicesADP Dealer Services

1.Our application tips over every Saturday

2.We need to plan a hot fix after every release

3.We are scared to change ‘X’

4.We Can’t Release That for Another 10 Days

5.We Had to Roll Back the Release Because of xyz.dll

Page 32: Death by Technical Debt: Lessons Learned to Get you Unbuired

32

ADP Dealer ServicesADP Dealer Services

Now the New…

Page 33: Death by Technical Debt: Lessons Learned to Get you Unbuired

33

Culture ChangeCulture Change

Page 34: Death by Technical Debt: Lessons Learned to Get you Unbuired

34

EndEnd

Page 35: Death by Technical Debt: Lessons Learned to Get you Unbuired

© 2012 Portland General Electric. All rights reserved.

Technical Debt Management

TAO Panel Discussion

Date: November 7, 2013Presenter: Mark Menger

Page 36: Death by Technical Debt: Lessons Learned to Get you Unbuired

3611/13/13

15 application delivery teams1 large scale project teamExperience ranging from months to

decades

People, …

Page 37: Death by Technical Debt: Lessons Learned to Get you Unbuired

3711/13/13

ScrumKanbanWaterfall

…Process, …

Page 38: Death by Technical Debt: Lessons Learned to Get you Unbuired

3811/13/13

.Net & T-SQLJava / WebSphereDatapowerDataStageOracle Forms & PL/SQLAnd others

…and Technology …

Page 39: Death by Technical Debt: Lessons Learned to Get you Unbuired

3911/13/13

Unacknowledged technical debtUnmanaged technical debtVendor technical debtKnowledge debt

Technical Debt Challenges

Page 40: Death by Technical Debt: Lessons Learned to Get you Unbuired

4011/13/13

Unplanned and planned workCommitted workCone of uncertainty

The importance of language

Page 41: Death by Technical Debt: Lessons Learned to Get you Unbuired

4111/13/13

Introduce the concept at all levelsCommon term used by IT senior

managementDon’t create more technical debtScrumMaster / Product Owner

partnershipOccasional topic at business

sponsor groups

First steps out of the pit

Page 42: Death by Technical Debt: Lessons Learned to Get you Unbuired

4211/13/13

Improve fluency with the concept Informally capture technical debt

backlogsExpand upon success of SM/PO

partnershipDocument project end technical

debtAdditional process measures (e.g.

code coverage)

Next steps out of the pit

Page 43: Death by Technical Debt: Lessons Learned to Get you Unbuired

Tech DebtThe NWEA Product Engineering Perspective

Page 44: Death by Technical Debt: Lessons Learned to Get you Unbuired

Recommendations

1. Change the language• “Technical Debt” is “Business Debt”

1. Create owner and advocate for technical debt

2. Make the cost transparent (Get your CFO’s partnership!)

3. Create both initiatives and pre-allocated capacity

4. Invest in good design early• Good design early beats Great design late

1. Be proactive

Page 45: Death by Technical Debt: Lessons Learned to Get you Unbuired

NWEA

• Mission - “Partnering to Help All Kids Learn”• $100 Million Revenue• 500+ Employees• Serve 7+ Million kids World Wide• 42+ Million Assessments per year • 100+ Engineers• Based in Portland

Page 46: Death by Technical Debt: Lessons Learned to Get you Unbuired

Our Challenge

• Scaling Web Applications• High Capacity, High Transaction Volume• High Concurrency• > 1,000 moving to > 100,000 Concurrent Users

• Moving from Product to Platform• Moving from Single Product to Suite• Wrong Architecture• Both Hardware and Software• Built for one purpose, deployed for a different one

Page 47: Death by Technical Debt: Lessons Learned to Get you Unbuired

Technical Debt Definition

• “A confusing combination of black magic, voodoo, and artifacts generated in the daily activities of Software Developers, Technical Architects, System Engineers and Operations of Technology Platforms, which is not readily apparent to, or valued by, customers and business partners.” • The Evil Twin of product “Features”• The “Buzz-Kill” of Product Managers customer focus groups

and initiative funding meetings• The “Hard Sell”

Page 48: Death by Technical Debt: Lessons Learned to Get you Unbuired

Examples

• The Obvious• Hardware and OS Infrastructure EOL• Legacy or EOL Software Frameworks• De-supported Software and Hardware Platforms

• The Non-Obvious• Short-Cut and/or Wrong Architecture and Design Decisions• Lowest Bid Technology Acquisition (a.k.a the cheapest route is the

most expensive long term solution)• The Prototype gone wild (a.k.a “Fast is Good”)• The “Tent City” – Bad Urban Planning in Technology Architecture

Page 49: Death by Technical Debt: Lessons Learned to Get you Unbuired

Strategies to Manage Technical Debt

1. Create an Initiative

2. Hide Capacity

3. Pass it to your Successor

Page 50: Death by Technical Debt: Lessons Learned to Get you Unbuired

Create an Initiative

• The Good• Full Organization Sign-up and Support• Focus• Resources • Targets

• The Bad• Need strong executive sponsor• Usually driven by pain not typical positive drivers• Seen as “Necessary Evil”• Must compete with customer facing, revenue generating, projects

Page 51: Death by Technical Debt: Lessons Learned to Get you Unbuired

Hide Capacity

• The Good• No negotiation required• Give engineers license to do this work• Self Protection• Less likely to be caught “out”

• The Bad• Tough to keep in the priority work• Needs internal governance and oversight• Requires discipline

Page 52: Death by Technical Debt: Lessons Learned to Get you Unbuired

Pass it to your Successor

• The Good• No management required• No architecture and design required• No negotiation required

• The Bad• Can’t predict the timing of “The Crisis Point”• Your tenure has limited time horizon• Your infrastructure will fail (i.e. What color is your parachute?)

Page 53: Death by Technical Debt: Lessons Learned to Get you Unbuired

Recommendations

1. Change the language• “Technical Debt” is “Business Debt”

1. Create owner and advocate for technical debt

2. Make the cost transparent (Get your CFO’s partnership!)

3. Create both initiatives and pre-allocated capacity

4. Invest in good design early• Good design early beats Great design late

1. Be proactive

Page 54: Death by Technical Debt: Lessons Learned to Get you Unbuired

Q&A

Page 55: Death by Technical Debt: Lessons Learned to Get you Unbuired

SERIES SPONSORS