

I *heart* Technical Debt - baberuth
http://baberuth.posterous.com/i-heart-technical-debt

======
wccrawford
Wow, I can't imagine the nightmares that this guy has left others to deal with
in the future.

Yes, a startup needs a 'get it DONE' attitude, but that HAS to be tempered
with doing things in a maintainable way, and not just duct-taping it together.
If you don't, you're forcing a complete rewrite of the entire system, and that
is a really dangerous thing to do.

So let's give some better advice for startup programmers:

1) Get it done. Just hack out that code and make it work.

2) Write some tests for the poor thing. If you -can't-, you'll need to do step
3 first and then come back.

3) Refactor/Rewrite that horrid, horrid code you wrote in step 1. Make it
readable, first of all. Then make it intelligible. Then make it pretty.

If you work at that company in the future, you'll thank yourself. If you
don't, the owners and your predecessors will thank you.

And best of all: Writing good code is a habit. Once you get into the habit, it
will horrify you if you ever have to stop, even temporarily.

~~~
beej71
And often step 1 is a valuable learning experience, as well, both long-term
and also for the immediate needs of the project at hand.

But, sadly for the OP, the very name "debt" clearly indicates there is no
escaping step 3.

~~~
wccrawford
Actually, no I don't think it does indicate that. He's saying that he loves
technical debt because it means things get written fast and furious, and he
can just leave the technical debt to someone else. If he hated the debt, he'd
take care of it.

------
Tekahera
The number of times I got hired to pick up after you because your technical
debt technically bankrupted the company and you got fired. My only hope is
that innocent new coders reading your piece will not feel "inspired" by your
little bracelet waving, but instead learn how to get good at her craft. That's
the real reason it takes you 5 days of "procrastination". What you need is not
to "just get it done", is to learn and gain experience before you tackle
something out of your league, so that you don't leave other people picking up
the pieces. Please.

------
zdw
The point of Technical Debt isn't procrastinating about perfection - the point
is when you get into a situation where you've dug yourself in so far that you
end up screwed.

For example, I consider the entirety of the Virtualization industry to be
primarily caused by technical debt surrounding legacy Windows programs.
Simpler to convert an old physical server into a VM than to redo the
application.

The fact that you actually have the code and can change the codebase = you're
far from incurring any insurmountable technical debt.

