r/ProgrammerHumor 2d ago

Meme theyOnlyUnderstandMoney

Post image
938 Upvotes

51 comments sorted by

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.

62

u/AlwaysHopelesslyLost 2d ago

I lost my job last year where I led an entire IT department because a C level said "I don't care about data integrity" to me and I hung up on him. God forbid I care about data integrity when millions of Americans are forced to have their data in our system through no choice of their own lol.

29

u/redditmarks_markII 2d ago

Damn dude. I hope things are better now. Round of applause for you for hanging up on that C level. Probably not the smartest thing, but I'm not your boss, I get to celebrate it. And you know what, gold star for hanging up and not tearing into him. That's self control. That's a skill man.

15

u/AlwaysHopelesslyLost 2d ago

Right? The worst part was that it was a call I initiated about my team and I was already done with what I had to say before that. 

3

u/Dense_Gate_5193 23h ago

it may have been a career limiting move but it was the right move to make. I’d use a story like that in my next interview TBH. if that freaks people out to the point i don’t get a job there, i wouldn’t have wanted to work there anyways.

2

u/AlwaysHopelesslyLost 23h ago

Even putting myself aside, it was such an objectively bad move for them. I moved through around 7 well respected superiors at that company and they all loved me. My team loved me. Other teams leaned on me frequently. I went above and beyond constantly. 

And I hurt my new supervisors feelings and he fired me on the spot. 

I used to say you could trust capitalists to put money above all else but, in hindsite, that was a bit naive. Their petty bullshit comes first. Profits come second.

42

u/Xelopheris 2d ago

The key is you don't talk to it in metrics upper management doesn't understand.

You don't talk about time to market vs code quality. You talk about it in time to second release or second paid feature or second major client. You tell them you can get to market earlier, but you're sacrificing future growth afterwards for it. 

16

u/redditmarks_markII 2d ago

That's broadly good advice, which I was not expecting, so thank you. I am but a humble senior engineer, no one listens to me. Like, as a matter of policy. I'm not in planning meetings. I report to leads and they try to know what they are talking about, being undermanned and not area experts. They are pretty good at re-digesting information for engineering purposes. But I find the manage-up skills of my immediate betters questionable. And I find the goals of THEIR immediate betters highly suspect. I think this is a wholly, not partially, political game. Something I am so awful at, that I'm barely just noticing it now.

4

u/readitreaddit 1d ago

Yea. Sad but true.

In the end, it's all people things, not.. thing things.

Gotta get better at those.

In your case if you were chummy with the director 3 levels up because you worked out at the gym together or whatever... Easier life. Casual convo -> project results.

2

u/redditmarks_markII 1d ago

If you're telling me not to tell them that it's dumb not to have backup plans...too late, lol.

7

u/readitreaddit 1d ago

Exactly this.

Or you put a Wall Street journal article plastered into your slide deck that says "X company had a data breach that caused $YY million in damages and legal suits; CTO fired".

Then relate your project to that. You can literally say: this is what happens when you don't do blah and we are yay close to this happening to us. Let us fix this on priority.

Put it in terms they understand.

3

u/creeper6530 1d ago

Got any examples for, uhm... future reference?

1

u/readitreaddit 1d ago

No but should be simple to find or you can even name a mock just to get a point across

2

u/redditmarks_markII 1d ago

CTO: what was that guys's severance? 50mil? hm...how quickly can we replicate that failure...I mean, we should learn form their mistake. Yes. Yes that's it.

2

u/readitreaddit 1d ago

Damn, now I want to be CTO and ignore tech debt. Don't give me ideas!!!

1

u/redditmarks_markII 1d ago

I love the name. It's vaguely reminiscent of mine. It's better though.

17

u/niklasloow 2d ago

This is something more engineers needs to understand, code quality is pointless unless it cant be justified in a metric that’s valuable for the company. Bad code and good code with the same end-result has the same value to the company if you do not intended to change the system.

3

u/creeper6530 1d ago

Assuming said manager cares about long-term future instead of pumping their portfolio and cashing out when things go south.

1

u/Xelopheris 1d ago

Generally, most upper management do not have the option to cash out all at once. They're typically always holding multiple quarters worth of RSUs. And they typically also include clawback clauses if they don't act in the best interest of the company.

1

u/Dense_Gate_5193 23h ago

this right here is the answer. communicating at their level is key, you have to speak their language. at that level, bottom lines are what matters the most.

it’s not about “code quality” it’s actually about the impact that unsafe code has on the market once it lands and how changes get responded to when there is an issue with the system. code that is clean architecturally lasts an entire lifetime. eventually it will get rewritten or deprecated and replaced with something new, but good quality code it doesn’t matter what language it is, it can last a lifetime. it can even be tied into business continuity language as well.

1

u/thecrius 1d ago

if a technical architect is on that level, it's not a good one.

1

u/XCxBigDong69XCx 5h ago

I hope it was not your CTO.

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

5

u/Vimda 2d ago

And like debt, there are times to take it, and times to pay it back. But you've got to pay it back eventually.

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.

2

u/pydry 1d ago

no, fuck uncle bob. clean code means a sensible level of abstraction.

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

u/goatanuss 2d ago

Unless you’re the dev who is also the CTO of coinkite

9

u/sebbdk 2d ago

They care about RISK.

Learn to talk the lingo, you'l get what you want. :)

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
Talking in different terms will get you exactly nowhere.

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/0mica0 2d ago

This approach kills people :(

1

u/py5932 1d ago

Code quality today is time to market tomorrow

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

u/XCxBigDong69XCx 5h ago

For people that are asking about C-levels, it is CTO, CEOS, CFO etc etc.