Hacker News new | ask | show | jobs
by whatshisface 1815 days ago
First we have to ask, "why does programming get harder as the project goes on?"

Let's say you are designing a system - any kind of system - with the philosophy that everything should be connected to everything else. Your first part goes in quick with no connections. Your second part goes in quick and has one connection. Your third part has to be connected in two places for it to work right, but that's not a problem. Your hundredth part has to be connected in a ninety nine places for it to work right, and now you're spending more time wiring than you are on making parts.

Then we ask, "what can we do when that happens?"

You have to put effort into the design of the system, reassigning duties and studying the nature of the problem it's solving, so that you lay down the connections along the true contours of the map, and not between every single component. Afterwards the next component you add has to be connected only to the three other things it's actually related to and you're back in business. This results in a period of time with no new features or even bugfixes, but afterwards you move faster.

Then we ask, "why do people call it debt?"

Because you pay interest on it when you have it, you run it up when you're short, and you better have a plan to pay it down or else you will go out of business.

1 comments

I intend to add it to my quotes collection.

Should I attribute you or someone else? :-)

Edit: added as a private bookmark to pinboard with tags:

  technical_debt quotes by:whatshisface