Every decision made during the course of a project can affect the quality of the final product. Compromises in functionality, design, or implementation invariably come with a cost, which must be paid. Without an adequate measure of the debt a product is carrying, no strategy to repay it can be formulated, and the project may ultimately become bankrupt, affecting your business case, your users’ productivity, and your organization’s bottom line. Taking from the concept of technical debt, Jordan Setters gives it a quality twist. “Quality debt” is the cost in time and money paid by the system's users through productivity lost due to inefficient functionality. Learn how to measure, track, and prioritize this debt. Discover ways to manage your quality debt and how to organize development to pay back the interest and principal as soon as possible. Take back an approach for using quality debt as a tool to inform project stakeholders of both the costs and the added business value of their decisions and choices.
1.
BT7
Session
6/6/2013 2:15 PM
"Quality Debt:
Is Your Project Going Bankrupt?"
Presented by:
Jordan Setters
PlanIT Software Testing LTD, New Zealand
Brought to you by:
340 Corporate Way, Suite 300, Orange Park, FL 32073
888‐268‐8770 ∙ 904‐278‐0524 ∙ sqeinfo@sqe.com ∙ www.sqe.com
2. Jordan Setters
Planit Software Testing, Ltd.
A test consultant for Planit Software Testing, Ltd. in New Zealand, Jordan Setters has been in
software testing for twelve years in both the public and commercial sectors. Jordan has worked
with companies as diverse as Telecom NZ, testing their capacity to lawfully intercept
communications for law enforcement agencies; Transpower NZ, helping implement a new
electricity market system to manage New Zealand’s national power grid; and the Ministry of
Social Development. Jordan is proud of his hands on approach to testing. A proponent of
pragmatic testing approaches, Jordan is passionate about achieving the best possible system
for the users, using whatever means and methods necessary.
3. Quality Debt
Is your project going bankrupt?
Presented by:
Jordan Setters
jsetters@planittesting.co.nz
So . . . What is “Quality
Debt”
4. A Brief on “Technical Debt”
Ward Cunningham:
inventor of Wiki, and all
around brainy guy
Shipping first time code is like going
into debt. A little debt speeds
debt
development so long as it is paid back
promptly with a rewrite. . . . The
danger occurs when the debt is not
repaid. Every minute spent on notquite-right code counts as interest on
that debt. Entire engineering
organisation can be brought to a
stand-still under the debt load of an
unconsolidated implementation,
object-oriented or otherwise.
-Ward Cunningham, 1992-
A Brief on “Technical Debt”
Debt can be simply broken into two parts:
Principal:
The direct cost of fixing those structural
flaws in the production system – at a
minimum is a cost calculated by:
• number of hours to fix
x
• fully burdened hourly cost of those
involved – design, developing, testing
7. Types of Quality Debt
Unintentional:
These are not strategic, b t are a result of
Th
t t t i but
lt f
people doing a bad job and is often
occurred unknowingly:
•
•
•
Bad Coding*
A poor design approach
Incomplete requirements*
requirements
Types of Quality Debt
Intentional:
Project makes a conscious decision to
optimise for the present at the expense of
the future. Characterised by decisions
that include statements like:
•
“If we don’t get this release done on time, there
won t
won’t be a next one
one”
•
“We don’t have the time to . . .”
•
“We can work around by . . .”
•
“We’ll clean this up later”
•
“We’ll do that after go live . . . in another phase”
9. Debt MUST BE SERVICED
There is a tipping point
• D th by a thousand WTF’s
Death b
th
d WTF’
• The debt of the hundred little inefficiencies
building up, adding time and frustration to
their daily tasks
• This is “Interest” on your debt.
Often not paid by th project, b t paid by
Oft
t
id b the
j t but
id b
the business in lost time and
productivity.
Debt MUST BE SERVICED
When do you know you have Problem
•
•
•
•
•
•
•
A growing dislike for the system admitted by
developers, testers, and users
Small defects never get fixed
A bad user experience or UI is a clue it is
rotten to the core
Growing number of workarounds
Consistently not meeting requirements
Lack of knowledge of what the system does
and why
Unused features