Last Good Quote: Son's are the seasoning on our lives. - Someone on Facebook

Monday, January 31

Technical Debt

"Myrtle the Turtle told me it would take him 3 months to make my app, but Speedy Slim told me he could do it in 3 weeks? WTF?" my friend complains to me. I wince. This is not going to be easy to explain.

As with most things in life, both Speedy and Turtle are right but for different reasons. At the root of it is the Technical Debt that my friend is about to signup for.

Technical Debt is the "cost" of scaling, debugging and enhancing your application over its lifetime. Minimizing these cost up-front takes time. Sometimes a lot of time. Myrtle the Turtle is all about minimizing these costs.

An analogy that most laymen will understand

Over the entire life of your application there is a cost and the very first item that effects that cost is Speedy and Turtle. You can get this application built on cash, and pay upfront, and pay less. Or you can gt this application on credit and pay less up-front. The choice is really yours to make.

With a cash buy, you are paying every thing upfront. It's going to "hurt" more but once you get over that first build its relatively down hill from there, you will find that scaling, bugs and enhancements have a minimal cost.

With credit, your paying a little up-front but it hurts less...initially. As time passes on you'll be making continue payments to the debt of this purchase. You'll find that scaling, bugs and enhancements will cost you a fair amount of money. Inevidably, you'll pay more this way then you would from a build by Turtle. This is because of the interest on your technical debt.

What's the cost of using Speedy and receiving a "quicker" delivery?

  • Speedy is going to deliver exactly what you specify
  • Enhancements are going to take longer because Speedy will have to "re-work" a lot of code.
  • When more users start to use the app or more data gets into the system, the app will start to slow down and eventually will die
  • Speedy's going to get tired of working on the bad code in the app.
  • When you ask a "new" programmer to pickup the code up, you'll find that they tend to have to re-write the entire thing from scratch.
All of these are reasons that are not apparent in the initiall 3 to 6 months of the applications lifetime. They only become apparent down the road.

I want to point out:
  1. Even the most well built and thoughout applicaiton build can fall to the points above.
  2. There are developers out there who take 6 months but still deliver the equivalent of Speedy's work.
  3. It's not an easy thing to build a scalable, bug free, flexible application.
  4. Scaling, Bugs and Enhancements are NEVER free in any app. It's about minimizing the cost on these items.

When do I personally take Speedy up on his offer?

I'll take Speedy over Turtle when I know that what I want is a proto-type or proof of concept. I'll take Speedy when I "have" to have something done by a given date, and there is hard dollars tied to that date. I'll take Speedy when I don't know exactly what I want built yet, but I have a vague idea.

Everytime I take Speedy, I'll write down Turtle's name because I'm going to need him to build the real deal when the short need is done.

Are you a Speedy Slim or a Turtle Tim? Can a developer be both "on demand"? Which developer bills higher?

0 comments:

Post a Comment

Followers