
Hacking debt - ColinWright
http://www.johndcook.com/blog/2013/04/24/hacking-debt/
======
larsberg
I'm not sure I agree completely with his characterization of what happens.
I've noticed that people, particularly in larger organizatons, will start
shoehorning their "hacking work" into real projects if it is left out for too
long. So, you end up with systems that are on bleeding-edge languages, tools,
runtimes, and platforms because, frankly, the team was just dirt-sick of
Scala/Java + Beans, even though that would've met the company's goals much
more quickly and cheaply.

That said, I definitely support his statement that people should have some
hacking / learning time budgeted, even if only to avoid the scenario I
mentioned above.

~~~
johndcook
Maybe it's better to let people do explicit side projects as a creative outlet
so that they don't shoehorn them into production projects.

~~~
larsberg
I completely agree. I've worked at a company where we had explicit weeks taken
out of the schedule to do "app building" where we were expected to do a mix of
kicking the tires on the product and experimenting with random tech we wanted
to play with (subject to the Legal Overlords and their hatred for OSS, at the
time). Speaking with my manager hat on, it worked quite well for exorcising
those demons.

------
bryanlarsen
Ironically, the best way to pay off 'hacking debt' is with 'real work'.

If you want to learn technology X, the best way to do that is to build
something with it. You want to build something that is motivational in itself,
something that is useful or fun. Building something useful is real work.

~~~
Falling3
I've had a lot of luck discovering technologies in my off-time and then
figuring out how to incorporate them into my paid work. It's really an awesome
approach.

------
mswen
I have long noticed a similar correlation in my own work. Whenever I find
myself using the phrase "playing around with" it usually signals that I am
actually doing my most creative/inventive work. Hard becomes easy when insight
arrives and work turns into play because of the joy of discovery.

------
brianbreslin
I thought this would be about hacking your financial debt. Perhaps useful tips
to achieve financial freedom.

~~~
johndcook
For hacking financial debt, see
<http://www.johndcook.com/blog/2010/11/02/snowball-strategy/>.

~~~
stevesaldana
I had a friend that approached me about 18 months ago regarding the best way
to pay down his loans. I started with a simple model and as it came to
fruition, wound up with a solution[1] that factors in the present value of
savings, future interest rates, and tax consequences. This is a more
mathematical effective strategy for paying down debt.

By considering the present value of savings, you are able to judge the
relative difference between a loan that recognizes savings in 30 years vs 10
years, for example. Future interest rates are important here because it
reflects your opportunity cost of paying down debt (ie you could be saving
this money in a risk-free investment instead). Lastly, taxes are extremely
impactful because, for those who qualify, paying down a tax-deductible
mortgage or student loan ultimately lowers your after-tax income.

Although my site is still somewhat beta, I invite folks to come sign up for
free and give it a try.

[1] - <https://beanjockey.com>

------
OldSchool
In the now-ancient Cringely book called "Accidental Empires" the author
relates the story of how the lead engineer working on 3COM's first ethernet
card paused his assigned work to measure the reflectivity of his office's
ceiling tiles while the seedling company awaited his fundamentally important
work. This is the sort of hacking that, while off-task, is still often
valuable. Every suit's nightmare and yes fairly irresponsible in the context,
but this really is productive overall if it staves off boredom. It's
indicative of what I would call a born engineer: curious, resourceful, and
compulsively productive regardless of material as long as it's by choice.

------
henrik_w
I think Tom DeMarco makes the same point in the book Slack:
[http://www.amazon.com/Slack-Getting-Burnout-Busywork-
Efficie...](http://www.amazon.com/Slack-Getting-Burnout-Busywork-
Efficiency/dp/0767907698)

------
guylhem
Technical debt is similar to real life debt:

1) Pay all your debt now, unless you have a sure way to make money at a higher
interest rate _CONSIDERING INFLATION_ (ie if you hold debt at a fixed 2%
annual rate and can access 3% guaranteed placement, don't pay your debts if
inflation is <1%)

2) Never make any debt ever again _UNLESS_ it is for a productive investment.
A productive investment is something that will pay the amount due + interest +
leave you something to leave on. Physicial capital (tools) is an investment.
Today you must have a really good reason to buy your own server instead of
paying-as-you-go for a virtual server. Education may - or may not be, it 's a
complex question (credentialing may mean you need paper diplomas more than the
actual knowledge)

3) Leave beyond your expenses, save and invest. There're various websites with
suggestions on how to do that exactly.

The most important thing is the endgoal : no debt, money in the bank, freedom
to work on jobs or projects you value, without the short term constraints of
putting food on the table.

When in doubt about making a debt, go see 2) - purchasing property to flip it
on the market is taking a risk. If you have followed 3), it's a risk you can
take.

Now let's translate that to development debt :

1) you should fix your code now, unless there are more productive uses of your
time. Fixing old complex code is like fighting inflation - don't bother. You
may win some battle but can't win the war. Fixing new code however is a good
idea, while it's still clear in your head.

2) you shouldn't have made a technical debt in the first place, except to
ensure a sale or quick money. if you did, you'd rather have a good reason and
some profits to show

3) code in a "beginner me could understand that" way. Remember it takes
someone twice as intelligent to debug some code, so make life easy for
yourself.

The end goal is the same : code that work, with the freedom to repurpose it,
without the short term hassle of fighting bugs everyday.

When in doubt about creating technical debt, go see 2) - feature creep to try
to secure a sale is taking a risk. If you have followed 3) and your code base
is clean enough, it's a risk you can take.

EDIT : Downvotes, really? At -1 now ?? Please tell me how I am not following
the guidelines and not contributing to the discussion.

EDIT2: falcolas, sorry, but I see technical debt just like real life debt. It
is a powerful and dangerous tool, and if one is looking for solutions on a
blog where a guy advise playing around for the fun of it you're not doing to
lower your technical debt - you're going deeper into technical debt.

In his own works : "hacking debt" : _"Some portion of a career should be
devoted to hacking. Not 100%, but not 0% either. Without some time spent
exploring and having fun, people become less effective and eventually burn
out."_.

Huh? "hacking debt" won't resolve the "technical debt" - that's completely
unrelated. I just don't and can't agree with his approach of playtime for the
sake of it. One should remember the dead simple advice posted above (and
heavily downvoted) before trying to do better. Not everyone is a rockstar or a
special gem needing daily bouts of playtime to keep inspiration. Most however
need to keep a training routine and consider which technical debt is worth
taking on, and which is worth leaving aline.

BTW, as I posted 2 weeks ago (<https://news.ycombinator.com/item?id=5508906>)
:

 _"Take a military analogy - if you're not doing something "shippable" (ex:
fighting), you are training to maintain or raise your potential for when you
will have to get in action - or at least to maintain discipline."_

That's not playing for the sake of playing or having fun. That's playing with
a goal.

~~~
gte910h
>Pay all your debt now, unless you have a sure way to make money at a higher
interest rate CONSIDERING INFLATION (ie if you hold debt at a fixed 2% annual
rate and can access 3% guaranteed placement, don't pay your debts if inflation
is <1%)

Some people over-emphasize this. Generally speaking, 10k in debt, 10k in the
bank, at a non-usurious interest rate is far more stable than 0 in debt and
$3.50 in the bank.

I'd contend that debts south of 5% fixed interest rate should be HIGHLY
considered as "not worth paying down" until your retirement account is fully
loaded with enough cash to retire TODAY as this is a very strangely low rate,
and one that will be over the life of most loans in that tier, at or less than
inflation (looking at historical levels of inflation)

You're not going to be able to borrow at 4% when inflation is at 5%, but you
sure can keep on to that 4% debt from now for 10 years, and instead bank extra
payments or invest them

~~~
felideon
_> Generally speaking, 10k in debt, 10k in the bank, at a non-usurious
interest rate is far more stable than 0 in debt and $3.50 in the bank._

That's not usually the advice financial counselors give. Dave Ramsey, for
instance, would probably say keep $1k in the bank and pay pay off $9k of the
debt and [snowball] the remaining payments.

Also, assuming you can get a 12% ROI over the years, and accounting for
inflation, you'd be left with 12%-5%-4%=3%

Is that hypothetical 3% gain worth keeping the debt, which has risks of its
own? e.g. you are incapacitated due to an accident, or you incur a huge
medical bill that you need to split into payments, but you can't pay much
because, oh "i just have this loan at 5% that's not worth paying off.

~~~
bstpierre
> Is that hypothetical 3% gain worth keeping the debt, which has risks of its
> own? e.g. you are incapacitated due to an accident, or you incur a huge
> medical bill that you need to split into payments, but you can't pay much
> because, oh "i just have this loan at 5% that's not worth paying off.

Actually, if something bad happens you've got $10k in the bank. So when you
are incapacitated, you've got several months' of living expenses -- or you can
pay off the medical bill outright.

The common "pay it all off; no debt ever" advice that I've seen given out for
free on the internet is geared toward people with tons of debt. This advice is
not great for persons with small amounts of debt, good cash flow, and a
healthy emergency fund. When you reach this point, you have the option to use
debt as a tool, and you have the ability to negotiate with lenders to get
better terms. (Implied here is that you can negotiate better terms because you
have the ability to simply pay cash and walk away from the debt-negotiation
table.)

~~~
fyi80
I'd rather go bankrupt than actually have to pay all my net worth.

------
codeoclock
How about 20% of time spent working should be spent hacking? Seems to be
working well for Google employees.

