Skip to main content

No test - inconceivable. Not Technical Debt.

Technical Debt

The software term "technical debt" is getting a lot of play on the air waves.  But I do not think we are using it the way Ward was when he invented the term (a metaphor) to explain to his buisiness team why creating software fast to get feedback was a good thing.  But that they had to be willing and able to sustain a pace of repayment on the debt of doing just good enough design to get product feedback.  Their form of repayment was constant refactoring.  Always keeping the software model moving toward the best possible business model, which modeled the real world.  Using many XP practices to enable the repayment plan of the debt they were consciously assuming.

In this vain, technical debt does not cover the process of writing bad code, of poor design, of skipping steps (such as testing).  Those behaviors would be considered to be incompetent design and implementation.  That behavior results not in debt at all but a breach of the inherent contract between development team and the business. The warranty of merchantability.


The warranty of merchantability is implied, unless expressly disclaimed by name, or the sale is identified with the phrase "as is" or "with all faults." To be "merchantable", the goods must reasonably conform to an ordinary buyer's expectations, i.e., they are what they say they are. For example, a fruit that looks and smells good but has hidden defects would violate the implied warranty of merchantability if its quality does not meet the standards for such fruit "as passes ordinarily in the trade".

This industry (software development) is deceiving its customers and pass off bad products as if they just have a little bit of debt to be repaid.  As if the product was a 3 year old car with a 5 year loan.  One purchases the car and the debt.  But I suggest that is not the same thing as purchasing software the has been created in such a poor fashion as to have no unit test, or no acceptance test. Little if any way to become the application it appears to be.  A car on the outside but with a faulty electrical system, blown engine, and bad transmission, but really good tires and paint.

A case in point - a team wishes to upgrade the compiler that produces their application.  They have little to no tests for the application - it just works.  They then ask for a test group to provide the effort required to prove that the compiler upgrade doesn't cause any bugs.  I do not think one can pass off the warranty of merchantability to the test team and expect good things to come from this - pass the hot potato behavior.  This is not technical debt - it is incompetency - it is inconceivable.

"You keep using that word. I do not think it means what you think it means."
-- Inigo Montoya


Ward Cunningham on the creation of the "Technical Debt" metaphor.


I think we keep using the phrase technical debt - but it doesn't mean what we think it means.  Technical debt means a conscious decision to defer up-front design and research in the product development, in order to get to market with a model that is capable of becoming the the desired solution, and capable of eliciting the customer feedback that we desire, which proves that the product is evolving in the proper direction.  And provide return on investment earlier.

See Also:

A Technical Debit - Collateralized Debt Obligation you should not invest in

The SQALE method is particularly devoted to the management of the Technical Debt (or Design Debt) of software developments. It allows:
  • To define clearly what creates the technical debt
  • To estimate correctly this debt
  • To analyse this debt upon technical and business perspective
  • To offer different prioritisation strategies allowing establishing optimised payback plan.
Managing Software Debt - by Chris Sterling

3 comments

Most Popular on Agile Complexification Inverter

David's notes on "Drive"

- "The Surprising Truth about what Motivates Us" by Dan Pink.

Amazon book order
What I notice first and really like is the subtle implication in the shadow of the "i" in Drive is a person taking one step in a running motion.  This brings to mind the old saying - "there is no I in TEAM".  There is however a ME in TEAM, and there is an I in DRIVE.  And when one talks about motivating a team or an individual - it all starts with - what's in it for me.

Introduction

Pink starts with an early experiment with monkeys on problem solving.  Seems the monkeys were much better problem solver's than the scientist thought they should be.  This 1949 experiment is explained as the early understanding of motivation.  At the time there were two main drivers of motivation:  biological & external influences.  Harry F. Harlow defines the third drive in a novel theory:  "The performance of the task provided intrinsic reward" (p 3).  This is Dan Pink's M…

Software Development terms applied to Home Construction

Let's Invert the typically wrong headed view of Software Development project management as a construction project.  We can map it the other way just to see if it works... to have some fun, to explore the meaning of phrases we toss around quite frequently.


Normally Project Management terms come from a construction domain.  We are going to apply the lexicon of modern software to the construction of a home.  We will follow the construction project and meet some of the people doing the work.

This is a very small (8 homes from $600,000 skyward) program in my 30-40 year old neighborhood.

About 6 months ago I saw the programs landing page go up.  It gives casual observers and some of the stakeholders a general idea of the intent of the program.  And most importantly who to contact for additional information if you happen to be interested in their products.

The Refuge program has 8 product projects and has them running independently.  Yet much of their DevOps infrastructure has already b…

Where is Shakespeare When We Need Him?

We are desperately searching for a term for people that connotes the best of human kind.  The creative, sensing, combinatorial synergistic, empathic solutioning persons that have yet to been labeled with a role name that works.

Some of the old terms:
Staff, Workforce, Human Resource, My Team, Army, Company

Shakespeare created 1700 words in his time.  He mutated verbs to nouns, and vice-a-versa, transformed verbs into adjectives, and formed words from whole cloth never before heard.  This skill is rare, but there is a poet that can create the term we need in the twenty-first century.

What should this term define?

21st Century Human Resource; the generalizing specialist.

Yes, but what more?  What less?

Suggest your poetry in the comments, let us see if we cannot do 1/1700 as well as The Bard.

By-the-way; who create the phrase "coin a word"?




a little feedback please...

some feedback please...
How do you like the new look and feel of our site?
  ___)  nah (I like the old one better - bring it back)
  _X_)  yeah (much cleaner and easy to navigate)



powered by Typeform
See Also:

Innovation in the Automobile Industry

In the 1900s the automobile industry was the most important and innovation industry in the USA.  But one could question if this was good for our society in the long run.  And one could question if they actually innovated.

In the early 1900s there were few automobiles, very little infrastructure created to support the industry.  For example the road system was still designed for horse drawn wagons and the wagon wheel (remember a steal rim and wooden compression spoke wheel).  The future US Highways, or the 1950s Interstate Highway System at the cost of $425 billion were decades and many innovations away. There was no gas service station, there were however horse stables, farriers, and blacksmiths in each town along the roads.  There was no real "road map", there was no road naming system, like was created in 1926 - the United States Numbered Highway System.

The industry employees millions of people, and was a large factor in the economy of the USA.  It created or was created b…