4 ms·
This article is kind of the equivalent of saying if one aspirin is good, ten must be great. The better logic for follow, when cleaning code, is the concept of
by ecaron 16y ago
This article is kind of the equivalent of saying if one aspirin is good, ten must be great.
The better logic for follow, when cleaning code, is the concept of technical debt (http://gettingreal.37signals.com/ch10_Manage_Debt.php http://gettingreal.37signals.com/ch10_Manage_Debt.php or http://www.codinghorror.com/blog/2009/02/paying-down-your-technical-debt.html http://www.codinghorror.com/blog/2009/02/paying-down-your-te...). Essentially the concept is that quality code is an investment, and hacked code is a loan. Too many loans and you'll file bankrupty, too much time on quality and you'll not be able to build fast enough - balance is key. This idea is easy for everyone, from noob to pro to manager, to understand and establishes a common lingo.
As a manager, if I found a fresh code monkey doing nothing but assuming they had the aptitude to pay down my standing code depts, I'd promptly show him the door for grossly undervaluing the abilities of his peers.
- Stormbringer 16y agoIt isn't quality that stops you from building fast enough, it is yak shaving in the guise of quality. Programming is a weird thing, unlike almost everything else higher quality almost always translates to lower costs and faster delivery. To explain this counter-intuitive phenomenon, partly this is due to the exponentially increasing costs of fixing bugs. E.g. fixing a bug at design time = $1, fixing it at coding = $10, fixing it during testing = $100, fixing it once it has been deployed = $1000. ---- Also, the phrase "code monkey" is no longer politically correct. The correct phrase is "software simians" :D
- ecaron 16y agoCan anyone in the web-based software realm back up that scaling costs mythos? I get it in the hardware realm, and to a lesser extent in the distributable software realm... But having worked with everyone from Salesforce.com to Facebook to Amazon, I've never seen any indication of exponential costs from coding to testing to deployment - at worst I would say it is linear.
- Stormbringer 16y agoSee also: http://www.superwebdeveloper.com/2009/11/25/the-incredible-rate-of-diminishing-returns-of-fixing-software-bugs/ http://www.superwebdeveloper.com/2009/11/25/the-incredible-r... If I recall from my Software Engineering courses this is based on research that IBM did, back when they still did research into this sort of thing. There is nothing magical about the "web-based software realm" that separates it from other sorts of software and development and allows it to bypass the issues that cause the cost of fixing a bug to sky-rocket like this the later in the process you leave it.
- nostrademons 16y ago"There is nothing magical about the "web-based software realm" that separates it from other sorts of software and development and allows it to bypass the issues that cause the cost of fixing a bug to sky-rocket like this the later in the process you leave it." Sure there is - people writing easily deployed consumer software don't write code like this. It's crazy to spend months designing software, based on things you think you know, when you could just build and release it and have far more information in far less time. Anyone who writes software where the deployment cycle is measured in minutes to hours (that's anyone on the web, or desktop or mobile apps with auto-updaters) relies on an iterative process of code -> release -> gather data from real users -> refine the product -> repeat. People who don't do this get creamed in the marketplace, because their competition does, and their competition gets far more information to build a better product through it. Most of the stuff taught in Software Engineering courses is complete bullshit when applied to the types of problems that actual practitioners face. This is because the field of software engineering is far broader than most people can imagine, and certainly more than you can teach in an undergrad education. A development cycle like you site is pretty much the norm if you're writing embedded microcontrollers for avionics (actually, the cost increases are probably even steeper). Very few people are writing embedded microcontrollers for avionics. For the majority of us, who're working on software developed and deployed over the web, the cost curve you cite is ridiculous.
- maigret 16y ago