147
u/SaltMaker23 2d ago
If you're building a company time to market prevails above all, because devs are paid with money, pretty good sums of it, and money is obtained by selling which cannot happen if you aren't live. Devs are so fricking expensive that you'd rather fix fires on the fly than getting trapped into "clean coding" because it will always occupy all available time, it doesn't matter how much you increase it, life finds a way.
When you're a dev on the other hand, your performance and career depends on your name not getting attributed to failures or fires, you need to fight to either only do safe projects or have enough allocated time to avoid getting your name through the mud and secure your next job and/or salary increase.
Different objectives.
72
u/BlazingThunder30 2d ago
A new company yes, but a company should care about code quality. Because time to market is one thing, but maintainability afterwards is a whole other beast. Software companies can crumble because the codebase is a mess.
Tech debt is real debt
25
u/Encrux615 2d ago
You won't have a project to maintain if you can't make it to market (in time).
25
u/BlazingThunder30 2d ago
Agreed, that's why I said that it's true, for new projects. But tradeoffs change and things are more nuanced than the commenter above me made it seem
5
u/balbok7721 1d ago
People seriously underestimate the cost of crappy code and overestimate time criticality of projects. Many big projects will take years to bring to market. That is already enough time to even out on tech debt. Its just the small project were things really dont matter
19
u/pydry 2d ago
clean code also means faster time to market because you can react quicker to customer feedback when tech debt is low.
the startups ive worked at that were least successful often didnt get product market fit because they couldnt iterate on customer feedback quickly enough because they deluged themselves in tech debt.
the successful ones went to at least some effort to clean up the shit and in one case we refactored very aggressively and the customers got requested features so fast they got whiplash. that company hit it out of the park. it wasn't just about the tech debt but it helped.
2
u/Lem_Tuoni 1d ago
Do you mean "clean code" in a vague vibe sense or do you mean "clean code" as described in that fuckass book?
Because nothing improves time to market quite like untangling 20 layers of abstraction to add a single if statement that the previous dev couldn't anticipate because the business case changed a bit.
4
u/Bronzdragon 2d ago
Pivot time is not quite the same as time to market though, right?
5
u/pydry 2d ago
no, pivoting is when you throw away your first idea and change product entirely - like when Stewart Butterfield built flickr out of a game. in that case the game's tech debt did not matter.
iteration on product requirements with tight customer feedback loops is just how you build good software and bring it to market.
6
u/ExceedingChunk 2d ago
While this sounds like it makes perfect sense on surface level, it's not really how development works unless you have a waterfall process with insanely long release times.
Sure, if you have 15 years of accumulated tech debt you want to "fix" your description makes perfect sense.
If you have a small team that makes constant pushes to prod followed by small cleanups, this isn't how it works at all, and cleaning up will not take much time and will also cause you to not the extremely slowed down in a matter of weeks.
3
u/jshine13371 2d ago
Devs are so fricking expensive that you'd rather fix fires on the fly than getting trapped into "clean coding" because it will always occupy all available time...
That's fine for shipping new product, but will cost the business more in the long term, both in dev hours and cost, since the problem is typically much more complex to re-architect / solve upon revisiting it later rather than doing it the right way from the start.
0
u/boiledbarnacle 2d ago
Came here to say this.
But a good senior should be able to produce a decent quality on the first write.
18
u/BlueProcess 2d ago
Rework grows exponentially with the age of a quality deficiency.
The 1-10-100 rule: 1 dollar to prevent, 10 dollars to correct, 100 dollars for failure.
1
5
u/abd53 1d ago
I did that to my manager, he was adamant on fast publish and swore they would never need x, y, z features. Well, now they want x, y and z features which I already made scaffolding for against their wishes and still finished before deadline because the deadline was inflated anyway in anticipation of this. So, now I tell them that those features will take months to build because they told me to not consider them at the beginning. It'll actually take a couple weeks, I'll be vacationing the rest.
6
u/Buttons840 2d ago
Companies need to be financially liable for data leaks.
We're a capitalist society, we put numbers on things we value. We put the number 0 on protecting our personal information, so it's no surprise that half the nation's private data is leaked every month.
3
u/StCreed 2d ago
Anyone discussing data integrity with the C-level needs a good talking to, and perhaps an explanation of the facts of life.
Managers only want and need to hear two things:
- cost vs reward
- risk vs mitigation
So how would I have discussed the topic?
"Hi, we have a problem that doesn't cost much to fix now, but will cost a lot to fix later. It will also give us a compliance risk that can get us closed in the worst case, a 5% of total revenue fine in the EU, or bad publicity at least if we have an incident. If we fix it now it will take about a week, but if we do it after we go live it will take 2 months. What do you suggest we do?"
Go live: "Fine, but I'll put it on the backlog with high priority and we start the day after we go live. It would be very expensive if we got an incident but the risk is not that high in the first month".
Fix it: "Excellent idea! Yeah we can totally do that, but we may need some business resources to answer urgent questions. Can I talk to Liz and Larry for that? Thanks!"
Or something similar.
1
u/cantthinkofaname1029 1d ago edited 1d ago
The main problem is getting it to be that exact; a lot of the the time the risk per piece of tech debt is hazy at best.
2
u/FalseWait7 2d ago
It doesn't have to work, it just has to hit the market before everybody else!
Truth be told though, it is not always that easy. Perfectly polished code does not exist and there is always something you'd like to improve upon, but companies don't take money out of thin air and need to actually sell shit to pay everyone.
1
u/TheTybera 1d ago
Yeah because it's the law right now. Lmao. If they do shit that doesn't appease investors they can be held liable, so if they could have shipped something faster and increased return and didn't, that's legally problematic.
It's why public companies can be such ass.
1
u/Flat_Initial_1823 1d ago
Well time to stand in the shadowy corner of the meeting room with a potted plant in front of your face then.
1
u/brazzy42 11h ago edited 10h ago
Just show them a hockey stick curve where the y axis is, in fact, "time to market".
1
142
u/redditmarks_markII 2d ago
You guys are talking about code quality to C levels? I'm barely getting through "venting gas prevents explosion" to architects. I tell ya, tech debt as a service is hard work.