Robert V. Binder

Technical Equity

March 27, 2012  |  Blog, Business, Process, Software Products

A pile of shiny gold barsTechnical Equity is the value that accrues when a software system is well-formed.  Instead of burdening you with unnecessary excess cost, your codebase works for you. Technical equity pays dividends: you avoid wasted effort and the consequences of buggy releases, and gain the advantage of releasing sooner and/or with more features, for the same cost.  It is the opposite of technical debt.  It is manifested in better than average productivity and lower than average bug escapes.  Instead of code that bleeds you dry, you create an asset that produces value.

The concept of technical debt has certainly gotten a lot of mindshare.  But even if your codebase is debt-free, that’s not enough. We should seek to maximize technical equity.

While it takes focus and skill, it often takes less work (cost) to produce technical equity than to go into technical debt.  The value-building practices are nothing new or secret.

  • Build the right “it:” know the user’s problem and engineer requirements accordingly
  • Design a coherent and rationalized system architecture to solve the real problem
  • Consistently produce well-structured code: high cohesion, low coupling, absence of code smells, minimal complexity
  • High code readability and documentation of intent
  • Clean out dumb bugs with routine use of static analyzers
  • Consistently produce robust code that handles errors, bad input, and exceptions correctly
  • Consistently, frequently, and automatically test code to achieve both high black box and white box coverage
  • Scope increments, iterations, or sprints to manage risk

The secrets of technical equity are not secrets — they’ve been advocated for over thirty years by thousands of well-known and anonymous software engineers and their management.  They do not require exotic or arcane knowledge. They do not require a huge and expensive investment in tools or training (some is necessary.)  But they do take clarity of purpose and sustained, disciplined focus.

So instead of trying to avoid technical debt, try to build technical equity.  Accentuate the positive.

Model-based testing is a significant new tool for creating technical equity — more about that in my next post.

 



Leave a Reply

Comment moderation is enabled, no need to resubmit any comments posted.