• The Entrepreneur Forum | Startups | Entrepreneurship | Starting a Business | Motivation | Success
  1. The forum software will be upgraded on Sunday May 26th and may not look normal during the transition. Some functionality may be offline. This is TEMPORARY and is expected to last up to 8 hours.
  2. Join 50,000+ entrepreneurs
    who are kicking butt and
    winning their dream life.

    Unscripted™ Entrepreneurship:
    A Business That Pays More Than Money, It Pays Time.

    "Fastlane" is an entrepreneur discussion forum based on The Unscripted Entrepreneurial Framework (TUNEF) outlined in the two best-selling books by MJ DeMarco (The Millionaire Fastlane and UNSCRIPTED™). From multimillionaires to digital nomads, the forum features real entrepreneurs creating real businesses.

    Download (Unscripted) Download (Millionaire Fastlane)  Register
    Registering for the forum removes this block!

Software Business and Technical Debt

Discussion in 'Product Creation, Inventing, Importing, Sourcing' started by wordwarrior, Feb 24, 2019.

  1. wordwarrior
    Online

    wordwarrior Contributor Read Millionaire Fastlane I've Read UNSCRIPTED

    Messages:
    50
    Likes Received:
    75
    Joined:
    Feb 16, 2019
    Gender:
    Male
    Location:
    Montreal, Canada
    Rep Bank:
    $536
    I've been a software developer for close to 20 years so I thought I'd share some thoughts that might be of interest to fellow Fastlaners looking to get into the software business.

    Running a business based on software requires a correct perspective. Failing to do so can be deadly to such a business. One of the main factors that must be managed correctly is technical debt. I'll expand more on the concept of technical debt later.

    What is a business that relies on software? It's a business whose core product either is the software itself or it relies heavily on its *own* software. Such a business develops this software in-house and does not rely on an external supplier. Examples of core software is either shrink wrapped (ex Microsoft Office), software as a service (SaaS) such as AWS (Amazon Web Services). An example of non-core software is a company web site that is just the company's web presence and nothing more.

    There are two divergent views on developing and maintaining such software in such a company:

    * Businessmen: Get the software out there as quickly as possible and start making money.
    * Techies: Software must be architected, designed, developed, tested and deployed carefully.

    The first school of thought involves the old adage that time is money. If a company doesn't release its product on time and start making money, then its business is threatened. Perfect is the enemy of the good. Lots of rock-solid businesses have been built on mediocre code that was good enough.

    The second school of thought is that software is inherently complex. Such complexity can result in dire consequences for a given business if not managed correctly. One extreme example is a software bug that accidentally deletes customer data under a specific software use scenario. Furthermore, software evolves over time. Software that is not correctly designed can not only become progressively buggier over time, but become more difficult to add new features to. Additionally, certain software libraries and frameworks used by the software can become obsolete over time. They need to be updated and if those inevitable updates are put off, they can cost more the longer they're delayed.

    This alludes to the concept of technical debt. Technical debt, like financial debt, is used to fund a business. Similar to financial debt, accumulating technical debt can fuel massive early expansion. Also similar to financial debt, a large amount of technical debt can result in interest payments to service it. These technical debt interest payments take the form of:

    1) An increasing rate of newly discovered bugs in the software
    2) An increasing rate of difficulty in developing new features on top of the shaky software foundation, and each new feature leading to more of 1)
    3) As more software developers leave the company over time, new developers must climb the steep learning curve of understanding how software domain and codebase

    Also similar to financial debt, repaying part of the debt leads to lower interest payments. These repayments take the form of overhauling or redesigning the software to remove part of the technical debt. This eliminates some long-standing bugs and makes subsequent development of new features easier.

    So what's the right answer? Well, the astute business owner needs to balance the need for rapid expansion with software maintainability. A startup, especially one with at most three employees, doesn't have the luxury of designing software perfectly. You need to get your product out there and start making money. Shortcuts, even shortcuts requested by a single client, can mean the difference between the life or death of the business. Still, another consideration is what will happen years later when it comes time to sell the company to a larger competitor. Will the accumulated technical debt become a consideration when setting the sale price of the company? Might a large enough technical debt make the company unattractive altogether?

    There is a strategy to deal with this. It's developing the 2.0 version of the software. At one point in its history, a software company could rewrite its software product completely in a way that removes the debt. All the best features, as well as the failures and mistakes, associated with the current product are catalogued into requirements for the rewritten product. The benefits are a more maintainable product that has a stronger foundation to add new features. The risks are that the original unwritten requirements were misunderstood and customers are no longer served correctly as they were before. Furthermore, the company could eventually lose the will to devote so many resources given the inevitable delays and missed deadlines.

    Some 2.0 products have succeeded. Many more have failed. An example of a failure is Copland, Apple's 1990's failed attempt to replace MacOS Classic: the Mac's first ever operating system. Apple had to kill the project because of bad execution. On the other hand, Mac OS X eventually succeeded in replacing MacOS Classic, and is still the Mac operating system to this day.

    So my advice to any of you starting a software business is to take the above factors into consideration and find the right balance based on your judgment and assessment of the specific situation.
     
    Never1, daru and Dramolion like this.
  2. OverByte
    Offline

    OverByte Bronze Contributor Read Millionaire Fastlane I've Read UNSCRIPTED FASTLANE INSIDER

    Messages:
    112
    Likes Received:
    122
    Joined:
    May 18, 2014
    Gender:
    Male
    Location:
    NS, Canada
    Rep Bank:
    $886
    My two cents. Be as scrappy as you can starting out and get sales, this is your number one priority as an entrepreneur. You can use revenue to hire better devs and fix tech debt later. Yes it will be more expensive but that is irrelevant, no point making something exquisitely engineered that no one will pay for.

    Tech debt is a more relevant concern when you are looking to scale (users or features) and you already have customers. Note that bugs are not tech debt, good software teams will help reduce bugs but not eliminate them, no non-trivial software will be bug free. Tech debt is more like... instead of building this piece of software in such a way I can easily reuse it (for that idea on the future roadmap) I'm just going to get it done for this specific use case which is a very pragmatic approach when building a business.

    Does this short term thinking lead to costs down the line... yes absolutely. Billion dollar companies spend hundreds of thousands (and in some cases millions) of dollars (in the cost of engineering hours/salaries) because things were put together quickly to scale and gain market share and the kicker is... they can afford it and are still worth billions. Meanwhile many startups with a single tech founder can't get past shipping imperfect software and instead get's no where. Real artists ship.

    Note once more to any aspiring tech entrepreneurs (and mostly to non-technical founders) - this does not mean cheap out on software dev and hire cheap devs to write shitty software. Hire the most expensive developer(s) you can afford (while retaining budget for marketing, design, etc). If your software is full of bugs or is non-performant you won't have to worry about scaling up to please more customers. Keep in mind 1 excellent developer is worth 3 good developers and an infinite times more than 3 bad ones.

    TLDR - If your dev team says that doing something quicker will result in "tech debt" ask them specifically how this will affect the product roadmap for the next 6-12 months, likely it won't.
     
    wordwarrior likes this.

Join 1000s of entrepreneurs who are rewriting life's script and winning financial freedom.

---- ----

You must be a member to join the conversation.

Create Account

Join the community fast and easy!

REGISTER

Log In

Already have an account? Login here.

LOG IN

Share This Page