More like: you know when you get home after a long day and you just toss your clothes wherever, then when you wash them you just toss the clean clothes on your bed rather than putting them away properly because ‘i know which ones are clean’?
Tech debt is all the minutes you spend in the morning and each week on laundry day, sniffing stuff to see if it needs to be washed, and the massive organizational task you’ll have to do if you ever buy lots more clothes or think you might bring company to bed or ever have to move to a new place.
Or: ‘tech debt is at home in the mirror. That is its address.’ ‘yeah I hate kids.’
This is horror. I’d ask how you get a project manager job without understanding the concept, but I know.
This is an explanation on why it never gets fixed.
The technical debt would be the additional damage being done to the rest of the house each time it rains.
Shall we renovate?
Yeah sure, just spend 4 x more to carefully work around the roof hole! Install waterproof furniture! Give out umbrellas to guests!
This is possibly the best analogy I’ve ever seen.
Perfect ELI6 😂 Tech debt is that leaky roof: you can ignore it for a while, but every new ‘feature’ gets harder until you finally fix it.
it’s a stretch goal
… just like the regular goals
kicks can down the road
This seems more like an example of procrastination not technical debt. Technical debt as I understand it requires a previous decision to impeed new decisions/progress because it wasn’t done properly the first time.
A better example would be he wants to add a brick chimney to the roof but can’t because the roof is made of straw thatch and can’t support the weight, so it would need to be rebuilt first out of timber, and then a chimmney can be added.
It’s an abstract analogy but i think it works… When the roof is really needed, it’s not possible to fix it because rain / deadline.
When it’s sunny, no deadlines, the hole doesn’t impede any work, so there’s no need to fix it, difficult to convince PM that it needs fixing.
What’s with the unnecessary use of highlighter?
I suspect the person who made the screenshot searched for something including the words “hole in roof” on Google Books - this style of yellow highlighting looks the same as the highlight auto applied for search terms there
Well, the PM really needs to understand so, like in excel: yellow background on important cells. This is muscle memory, right ?
7 words too long didn’t read
3 words ok
fr fr no cap
Simple. To highlight the hole in his roof.
You mean hole in (…) roof
This why any good engineer would bake it into their estimates when working around the area. I think Martin Fowler covers this in Refactoring. Eiher that or it was Kent Beck in TDD. Both books complement each other really well.
A good civil engineer doesn’t ask a Project Manager if they can add in structural supports. A good software engineer shouldn’t ask to build things right.
“Before we build x, we need to adapt the foundations by resolving x problem. If we don’t get this right, it’ll increase the chances of bugs surfacing in production and would make our team look like a joke.”
Counterpoint: tHe ShArEhOlDeRs SaY jUsT sHiP iT
Yeah ultimately CivEs get to withhold a signature and if they don’t sign it’s illegal to build. Software doesn’t need a PE
I don’t know those guys so they can say what they want. We don’t just ship. We code, review, test and only then deploy. I will build this the only way I can see and it’ll take 3 days. Want me to start this?
Too late. They already outsourced it to someone who promised to get it done in one day for half the price.
Of course, it will take six months to fix all the problems it causes, but that is next quarter’s problem.
Lol, who outsources 1 piece of work like that. Never seen it done. Onboarding and exposure of code to outside world are big risks.
Bad PO: “So it will only increase the chance of bugs if we don’t do it? There won’t necessarily be any. So we can skip it and just put the feature in.”
I hope you have a good PO who is on the same page as you, but to a bad PO, it still sounds optional.
A civil engineer doesn’t say “If we don’t put supports there’s a chance the ceiling will fall in and people may die,” because history has shown there are plenty of unscrupulous project managers who are quite willing to take construction risks, even with people’s lives. As a result of this there are now plenty of laws in construction, and a civil engineer has a convenient fallback of saying “If we don’t put supports it won’t pass inspection, and we won’t get paid.”
Everyone wants to get paid.
In software we don’t have many laws we can fall back on to justify our work, but we can still treat our tech debt and refactoring as if it’s equally mandatory.
“To add feature x, we need to resolve problem y. The feature can’t be added until we’ve completed this prerequisite.”
You’re trusting a PO to decide on how you build? They ain’t coders. They decide on value, you estimate and build and they prioritise based on the information you provide. POs aren’t the boss of devs. That’s usually engineering managers. You are both specialists in your field. You don’t lecture them on value and how pointless a feature is, you size it, and using velocity they can anticipate how much will likely be delivered in next sprint. If they really object, “if you feel you can build it in 1 day, go ahead, ill give you access. I have no idea how that could be done”
PO wouldn’t like it during live incident when shit goes wrong that you suggest “I did highlight the risk of this occurring and proposed mitigation steps but was overruled”.
My current boss: so I sold this at least 10% below budget and we have to make it work.
Fuck that guy!
Reality is already fucking him sideways but he keeps escaping reality. He’s like a financial Houdini.
Just build and deploy it! We have the shareholders to think of!
This person has high level management energy
Me? No. But I’ve met plenty of those types.
“Are you willing to own the risk? If so, what will it look like? Can you budget additional time for addressing these bugs, and draft contingency plans?”
“You’re overthinking it” - real response from my management
“True. It’ll be perfectly fine, and because of that, you won’t need me on call when it all goes dramatically wrong. If you need access to the repo, I’ll add you in though. Good luck.”
Or, if you’ve worked together a while “like I overthought it when we worked on x, and y went wrong, and I called it before it happened. Turns out I’m quite good at seeing car crashes in advance.”
*Sticks fingers in ears* Can’t hear you!
“I only know 1 (credible) way to build it. I’ll take x days. I’ll go right ahead with that.”
We need it yesterday! Just get it done!
Thats a scheduling issue on your end. I’ve given the time estimate my team needs. You can adjust expectations and shift around my allocated time but it will take x hours no matter what.
There is no putting up with half of these complaints. They just arent real things that occur in a workplace.
“Why are we only learning about this now? How long has this requirement been known? I think we need to look into the process that work comes into the team otherwise, if we don’t learn, we are going to take the website down and cost the company thousands/millions. It’s worth working with the business to get a batter understanding of upcoming requirements so we know what’s going to be needed in a months time”. There is a reason retros exist. Oh, and you have to be good at teasing out real deadlines vs arbitrary deadlines made up with no justifiable reason.
“You ask me how long it’ll take, and it’s 3 days. You probably need to manage expectations on this. Maybe let them know the risks of x, y and z and why it will take this long”.
I feel like every retro I’ve attended has been a farce.
“What went bad? We said doing it this way would be harder and more risk prone. Management insisted we do it that way, and it took longer than and caused a site outage.”
"What should we do differently?’
“Listen to the team next time”
“That won’t happen”
yeah but when I do that, people get mad at me and ask “why number so big”, then when I explain they say “ok but what if there aren’t any issues” and then they make schedules based on that clearly incorrect number
Mad? In a professional workplace?
“If you can give me that issue free codebase, I’m happy to do that, but failing that, it takes 3 days to add that feature that is akin to the leaning tower of Piza taped together with duct tape. There is only so much tech debt you can pile on until you are in code hell, and unfortunately, we are.”
If they do some weird ass schedule “well, you can write down that if you wish, feel free to write down that my other car is a Bugatti, if we are just theorising on a perfect unicorn world”.
The big difference is a civil/structural engineer has to individually certify a plan sets and take legal responsibility for it. The project manager can’t override them.
They can fire them and hire another engineer, but even if they found someone to stamp bad plans for a fee, the original engineer could report the new engineer and have their credentials yanked.
We don’t have that in software engineering. And outside of critical software we don’t need it. When the audio fucks up in Teams and you have to leave and re-enter the meeting, people don’t die.
We don’t have that in software engineering. And outside of critical software we don’t need it. When the audio fucks up in Teams and you have to leave and re-enter the meeting, people don’t die.
I had a co-worker who was writing remote control software for a baseball-throwing machine. Not exactly “critical software” but he ended up firing a 125 mph knuckleball a foot above a 10-year-old kid’s head.
Fuck Teams. The buggiest, most crash prone mess I’ve even been forced to use. They keep bolting on new, unnecessary “features” that only selectively work on some of their “supported” platforms.
Changed my AD password today. Teams noticed, as it always does, and refused to load the login page in the window that popped up after it signed me out. Too bad most everyone is on vacation because on any ordinary day it would’ve been quite welcome.
But what if the audio fucking up in Teams ends up costing a big man the wealth he’s entitled to?
The difference there is that our project manager guy is afraid they’re gonna go to prison if they don’t let you add those supports and something goes wrong. But for the software dude, building things properly is unfortunately mostly a concern for you and the other software engineers, and mr project manager doesn’t have that much of an incentive to let you do that
I find project managers don’t want to be responsible for building shit that is flaky on prod. Either the consultancy reputation or team reputation becomes mud and their promotion opportunities vanish.
Yes that is probably the case for project managers that are actually held accountable
Then if you trust your team, have dev meetings and don’t give alternatives. Make it clear there is one way to do it and it’ll take x days long.
Sure, then you get outbid by another contractor who is willing to cut corners.
That’s why you get jobs at the consultancy that has to clean up those messes after companies are burnt enough. Most companies that get burnt will feel the reputation damage and go for reputable ones with integrity who respect push back.
Usually you’re not selling work on a feature by feature basis. It’s usually on huge projects or multi year deals.
Companies don’t remember or learn. People come and go and after a software lifecycle everything is forgotten as the top management gets refreshed.
That’s why you should go work at big corporate enterprises. Then you have both job security as well as the ability to spend as much time as necessary on getting things right. And you might even learn to say no to middle management.
Aw do they also hand out unicorns for Xmas?
Some corporations do that, most don’t even if they’re trying to, because incompetence.
A good project manager understands technical debt.
Edit: moderately good
and the response will invariably be: “Is there a way we can just ship feature x now and fix up the other stuff after?”
Just increase your time estimate,
calculate in the time needed to refactor,
but don’t tell them you’re gonna refactor.Works out most of the time.
Only when they ask why the estimate is so long, then you explain your reasoning behind it, and then they might reply with your statement and block your refactoring idea.However, getting time to refactor most of the time, is aleady way better then never being allowed to do so.
I have more than 20 years experience. I’ve never once not gotten the “can we do it without refactoring?” question. Bad managers? Not necessarily, the pressure always comes from above. Short term thinking always wins out in the for profit private sector.
In my case those almost never pass. Maybe you’re the only one exclusively working on that system…? When you’re one of a number of contractors competing to do something in software that cannot be regulated, you’re basically screwed.
Then you don’t give another option and only give estimates for doing it correctly.
If you’re saying “I could hack it in for you this way”, you’re a cowboy dev.
LOL! OK sure.
How can they block? Usually they cannot code so cannot do it themselves. Working in a place that micromanages you this badly must by soul destroying and degrading. Job sites are a good option.
By not accepting your time estimate,
requesting your reasoning why it takes that long, you explaining you calculated time in for refactoring, then rejecting your idea and granting you only time to implement the new thing, without granting time for refactoring.And dw, my project manager is a pretty chill friend and fellow senior developer, who is reasonable and helps me with calculating in time for refactoring whenever possible/nessecary.
It’s only higher up, CEOs/management, who seek to cut corners, with rocks for brains, who don’t see that in the long run such practices are bad for business.
Which sadly is the case for most IT businesses. But at least in my workplace the project manager is not a rat & on the side of the developers.
That ain’t pretty. In the UK, there is much more trust and less micromanagement, though it’s important devs learn to be assertive, communicate well and don’t give too much info to be hanged with. The way you communicate can determine his much time you free for yourself. A baker never asks of they can use flour and egg or negotiate on cook time.
Context is important though and if folk find themselves in the cheapest price consultancy, they probably need to find their way out for their own self-respect and mental health. When you find your way into an org that wants to build quality stuff, it’s much happier for them.
Depends where you work.
If you’re good and they respect you , you’ll get away with “no” or, “I’ll build it, but if it goes wrong, I’m not fixing this evening and weekends”. Safest option is “in all honesty, I cannot see another credible option, no” and if you’re fed up of the follow up, drop the word credible.
This reminds me of some issues in my relationship. Some problems that never gets solved.
I highly recommend solving the important ones and learning to let the rest go, speaking as someone whose marriage just exploded over exactly that.
I’m sorry to hear that. How are you doing now? If you don’t mind me asking, if there was a point where things were still salvageable, do you think you were both aware of the direction things were heading? Did the realization come at the same time for both of you, or at different times that it was beyond that point? What were the critical signs?
Better! We’re working it out, so that’s good, but we have over a decade of things to go through, plus working on ourselves as individuals. It’s exhausting.
My partner was the one to pull the divorce card, actually with no warning whatsoever. It’s so appropriate for a relationship that turned out to be significantly defined by poor communication.
In retrospect, the critical signs were pretty obvious, but we both mistook them for other things. We had become very emotionally disconnected, but we were preparing for a huge move out of the country with a small pack of house pets so each of us thought that’s why the other was stressed. This actually was true for me while my partner was stressed because they wanted to run screaming but didn’t feel comfortable saying anything.
We had both been withholding some major concerns about the other throughout our relationship, so each had a second, secret narrative that wasn’t being discussed or challenged in couples counseling. Plus we both have CPTSD from shitty childhoods and have cross-reactive behavior. Lots of angst here.
This stuff can sneak up on you if you don’t have healthy habits that help identify and prevent it, but it’s clear as day once you learn. We’re getting there and we’ll be better people for it, but it’s brutal sometimes and we’re just at the beginning.
Oh, then there’s hope :) It sounds like there’s been a lot of introspection and a will to change course. Does she feel the same?
For me I’ve been the one saying that our current lifestyle is not working for me. I’ve been saying it for 6 months and I don’t know what more I can do at this point. I wish I had hope. We have good days, but the fundamental issues remain.There has been a lot of talk about their intent to change, but I fear I still see them leaning hard on the same maladaptive coping mechanisms that helped get us here. It’s still early yet, but I’d be lying if I said I wasn’t concerned. I drew up a plan that I’m following, so I’m just waiting until I have enough info to know to continue or divorce.
I’m sorry you’re feeling frustrated and hopeless about your relationship. It’s really demoralizing when the other person doesn’t want to hear there’s an issue, or understands but there are issues with them working on it. I’ve experienced both from both sides and understand it’s often more complex than it seems, but it still comes down to if they have the commitment and follow through necessary to make positive, sustained change, because that’s hard to do. Really hard.
If I may provide some unsolicited advice, couples counseling can be great. If you go that route or have already and want to try again, I’d recommend seeing a therapist that specializes in couples and is experienced in providing therapy for any conditions present, like ADHD, borderline personality disorder, or PTSD. The Gottman Method is great. Couples counseling is also most effective in conjunction with individual counseling, so partners can really dig into their own experience and what they bring to the relationship.
How is this so accurate…
translate from french
Outstanding.
Très magnifique!
As an aside, a Scottie dog called Haggis wearing a tam o’ shanter is an adorable character for a children’s book
Oddly enough there are roof patch compounds that works in wet areas. Have used them
Resolution: Issue solved by applying patch.
I saved it for a new years mail for my company :)















