beyond technical debt

15
Beyond Technical Debt The interest we pay on our failures. 8/27/22

Upload: jeff-schneider

Post on 13-Jan-2015

3.992 views

Category:

Technology


1 download

DESCRIPTION

Technical debt plagues many software projects - but others are held back by more critical issues. Increase your software delivery efficiency by moving beyond technical debt!

TRANSCRIPT

Page 1: Beyond technical debt

April 10, 2023

Beyond Technical DebtThe interest we pay on our failures.

Page 2: Beyond technical debt

April 10, 2023

Technical Debt

Ward Cunningham suggested the term “technical debt” to refer to the cutting of corners when you build software.

His premise was that if you cut corners, the shoddy work would accumulate in the form of “interest” that needed to be paid on the “principal”, much like a financial debt.

Some use the term to describe shortcuts they intend on taking, while others use it as a historical view to identify what has already accumulated.

Page 3: Beyond technical debt

April 10, 2023

Accumulation of Debt

We find the concept of technical debt useful to describe the ‘sins of the past’ and to encourage our customers to clean up the debt or they’ll pay the price

Clearing up the debt comes in many shapes: Taking time to refactor code bases Document the system Revisit the non-functional requirements / re-architect Replace an outdated component or technology

Page 4: Beyond technical debt

April 10, 2023

The Real Debt Threat

In addition to the traditional technical debt, we’ve encountered new forms of debt that plague software delivery teams

1. Organizational Debt2. Personnel Debt3. Process Debt4. Practice Debt

5. Tooling Debt6. Automation Debt7. Testing Debt8. Operations Debt

Page 5: Beyond technical debt

April 10, 2023

Organizational Debt refers to ineffective organizational structures that obstruct the efficient delivery of work.

Many organizational hierarchies are ancient relics. They haven’t been changed to reflect new work patterns.

Some organizations are designed around office politics. Conway’s Law suggests that our deliverables reflect the

organizational structure that created it.

Let software processes drive the organizational design.

Page 6: Beyond technical debt

April 10, 2023

Personnel Debt refers to organizations that have the wrong people, leading to inefficient delivery.

Poor hiring practices let the wrong people in the door. Poor firing practices kept the wrong people in. Poor retention and training practices failed to get the most out

of the good people.

An organization can clean up technical debt but if they have a personnel debt problem, technical debt will come right back.

Page 7: Beyond technical debt

April 10, 2023

Process Debt refers to organizations that have the wrong delivery processes: Too much, not enough, or just wrong.

Some still using “agile” to mean “process free” Many stuck in older methods (waterfall, RUP, etc.) Few have Introduced cross-cutting process owners (such as

crossing DevTestOps)

It’s easy to detect a good process – and a bad one. It’s much harder to define one and keep it around.

Page 8: Beyond technical debt

April 10, 2023

Practice Debt refers to organizations that fail to accumulate and disseminate best practices to their teams.

“Those who fail to learn from the past are condemned to repeat it.” – we must document tacit knowledge and leverage it.

The body of knowledge gets stale. Out with the old and in with the new.

Only the most important practices should be enforced as policy.

Those who want to establish a TRUE culture should think more about institutionalizing knowledge.

Page 9: Beyond technical debt

April 10, 2023

Tooling Debt refers to organizations that don’t have the right tools or platforms for the job at hand.

“If all you have is a hammer, everything looks like a nail.” Some organizations have failed to refresh the tools needed. Other organizations have gone “tool crazy”; they have too many

tools to get knowledgeable on any one of them.

Languages, IDE’s, Platforms and other tools make us efficient but only when we find the right balance.

Page 10: Beyond technical debt

April 10, 2023

Automation Debt refers to organizations that continue to do things by hand that should be automated.

No continuous builds. No continuous delivery. No automated operational recovery. Tool chain isn’t integrated.

Our industry is going through a rebirth in how we automate the software development process and connect it to infrastructure and platforms: DevOps + Software Defined Computing

Page 11: Beyond technical debt

April 10, 2023

Testing Debt refers to organizations that built software but did inadequate testing.

System lacks unit or functional tests. System lacks operational tests (perf, load, resilience, security) System lacks UI or usability tests Disaster recovery routines never tested

Debt associated with testing has a VERY HIGH interest rate. This is a MUST FIX area.

Page 12: Beyond technical debt

April 10, 2023

Operational Debt refers to organizations that create systems that are hard/expensive to operate in a production setting.

System wasn’t properly instrumented (logs, monitors, …) Didn’t plan for patches or versioning up-front System was hard-coded to specific hardware/platforms and can’t

be easily moved to new gear or DC locations System only runs on most expensive gear or platforms

Developers make mistakes but it shows up in operations budget. Huge opportunity to save money in this area!

Page 13: Beyond technical debt

April 10, 2023

Declaring Bankruptcy or Paying off the Debt

On occasion, we find a software system that has accumulated large technical debts. Business owners are forced to make a decision: Declare bankruptcy or pay off the debt.

Remember: It’s not just “technical (application) debt”. If the other eight types of debt are still in place, it’s likely that

any effort to fix technical debt will fail.

Don’t just fix technical debt. Do root cause analysis on your whole environment!

Page 14: Beyond technical debt

April 10, 2023

MomentumSI Consulting

Consulting – Strategy - Delivery

Assessment of current state, workshops and roadmaps Culture transformation: rethinking processes, incentives and systems Upgrading capabilities in continuous builds, testing and deployment Experts in modern tooling and implementation practices

For a briefing on our offerings, email: Jeff [email protected]

Cloud - App Dev - Big Data - DevOps

Page 15: Beyond technical debt