3 ms·
After 15 years, I no longer judge past coding decisions, and I think you can save yourself a lot of grief by not waiting as long as I did to realize this. You
by TameAntelope 4y ago
After 15 years, I no longer judge past coding decisions, and I think you can save yourself a lot of grief by not waiting as long as I did to realize this.
You don’t know the constraints the previous person was under, so you can’t possibly know what you really would have done or what “should” have been done.
I mention this because there’s still a tone of, “there is approximately one right way to code” in this article, and I really doubt that.
Make good choices now, but don’t be harsh to the folks who came before you.
- iainctduncan 4y agothis. 1000x this. I work in tech diligence, I talk to founders about how their project got the way it is when they are selling it, and what the potential ramifications of those constraints and the resulting decisions are for the acquirer. Most developers have little to no understanding of the constraints under which businesses are built and are quick to complain that code must have been made by idiots without thinking of all the drivers that might have created a situation where non-optimal code was a good (or the only possible!) decision. Tech debt absolutely kills companies - I've seen bad tech debt torpedo potential acquisitions or result in very significant changes in valuation - but not as much as does running out of money.
- retrocryptid 4y agothis. 1000x this. Conway's Law says the structure of code mirrors the structure of the organization that produced it. There's a correlary to that somewhere that says the financial history of an organization is embedded in the structure of the code it writes. I've also started having problems with the phrase "Technical Debt." Talking with a non-techincal co-founder once about why they had so much technical debt, their concept was "debt is great! we cut corners today and pay it back when we get more funding!" I had to break it to him that unlike regular debt, where it's easier to structure budgets to meet interest payments, technical debt reduces velocity making it harder and harder to reliably deliver software on time and on budget. The interest payment on technical debt is super-polynomial, not linear.
- ywei3410 4y agoMaybe the answer is not the term "debt" but explaining the currency that you're paying the "debt" in? In the end, how did the non-technical founder take it?
- retrocryptid 4y agoYup. We started usi the term "Development Molasses" and the non-tech people started to grok what was happening. I think the product people grokked it since our discussions about what's in the backlog and code quality were much more in-depth. So you can teach marketing people things, you just have to use jargon they can understand.
- mikewarot 4y ago>their concept was "debt is great! we cut corners today and pay it back when we get more funding!" They don't understand that the interest rate for technical debt is worse than any loan shark. At least that's what my estimate is. I thought this was a sufficiently interesting question that I made an Ask HN thread [1] [1] - https://news.ycombinator.com/item?id=32175184
- TheCoelacanth 4y agoTech debt is basically owing Don Corleone a favor. You don't know what you're going to have to do or when, but you do not want to take that obligation lightly.
- hirvi74 4y agoI agree. I was taught that computers don't care how you format things, where you place things, what language or principles you use, etc.. All of that is for OTHER developers. The machines do as instructed, but all the fluff around coding is so other developers can see what you were trying to tell the machine to do.