Why is that weirder? The people writing scientific software are, by and large, less good at writing software than people who only specialize in software development. I'd expect there to tons of terrible engineering practices in an old code base like that
Because even trivial things like Fourier transforms (to people like me) are very difficult to understand to those that don't know them. They took me years to understand. Non scientific software engineers do not understand those. It's just a different course of education.
You're also right about old code base as well. Algorithms like these belong in c++ (or C or fortran), and it's extremely difficult to explain why to people who have no understanding of numerical computing.
in real life, I'm fighting with - I'm not joking - a few dozen "quick patches". code does not reflect in any point functional requirements, and dude is adamant he's in the right and supersarcastic in any occasion.
Rarely have I ever actually had consequences for my sins, which tends to be why I don't go back and fix them…
If tech debt weight is felt in any way, it tends to get fixed. If it's not felt, it's just incredibly easy to forget and disregard.
(This is mostly me not learning my lesson well enough from my time being on Tech Debt: The Team. I do try and figure out the correct way to do things, but at the end of the day, I get paid to do what the boss wants as cheaply as possible, not what's right :/ money dgaf about best practices until someone gets sued for malpractice, but on that logic, maybe the tech debt piper just hasn't returned for payment from me yet… Only time will tell)
Ah yeah, that would be a worry, except I forgot to mention that most of the code I work on usually gets thrown away after like 6 months. Makes tech debt not have nearly as big of an impact on me.
We do have a longer lasting code base that the little widgets I make run off of. That has a much more strict requirements to ensure tech debt is not introduced specifically so we don't end up in that sort of a position.
That said, and yet we couldn't even keep it out of our own code base. So yeah, I think my original comment is just wrong because I forgot all the ways tech debt actually has effected me in the past and how my industry's project cycle is so short term that i rarely have the opportunity to run into tech debt that I caused in a problematic way…
Most software engineers also have to actively maintain and add features to their finished project, and those aspects change a lot about how the problem can be approached.
I failed to take into account why might I have not been effected by tech debt despite occasionally creating it before commenting. Will have to make sure that filter gets a bit stronger lol
Fair point, I work in a consumer facing, fast turn around, short lived code project industry. Not a typical software project with long life cycles.
These practices would almost certainly bite my company in the ass if we had to maintain anything for longer than year.
Occasionally, we do have to support a client for multiple years, and everytime it's a hilarious shit show trying to figure out how to keep all the project dependencies up to date. This is likely platform tech debt, and would be the beginning of the problem if we didn't have the privilege of being able to start over from scratch code-wise for each client's new order.
I guess I'm just in a lucky spot in the programmer pool where tech debt literally doesn't hit me as hard as it usually does others, and I just couldn't identify that before now lol
Instead of saying tech debt isn't that bad, my tune will change to something else. Like I said, I was on a team at one point that had a worse than usual tech debt problem, and it was unworkably stressful to deal with. Im guessing that experience is more typical of being near tech debt than my other experiences.
If you’re smart you do it the quick and easy way and leave the company before it bites you in the ass. Only suckers stay with the same company for more than a few years
Most people suck at software engineering.
Plus, there's always the temptation to do it the shitty way and "fix it later" (which never happens).
You pay your technical debt. One way or another.
It's way worse than any gangster.
Not if you leave the project soon enough. It's like tech debt chicken.
Then, at your new job, you see garbage code and wonder what dumbass would put global variables everywhere
That's how this industry works ;)
You’re gonna see that even if you were pious at your own job. So you’re only wasting time.
amen
double amen
// TODO: Fix later
In a 10 year old commit from someone who's left the company 5 years ago.
Bruh. I fixed software from the 90's.
Scientific software too. Which is way weirder.
😀
Why is that weirder? The people writing scientific software are, by and large, less good at writing software than people who only specialize in software development. I'd expect there to tons of terrible engineering practices in an old code base like that
good question.
Because even trivial things like Fourier transforms (to people like me) are very difficult to understand to those that don't know them. They took me years to understand. Non scientific software engineers do not understand those. It's just a different course of education.
You're also right about old code base as well. Algorithms like these belong in c++ (or C or fortran), and it's extremely difficult to explain why to people who have no understanding of numerical computing.
It's just different education.
That's like what happens if From Software made programming challenges.
I wish I was so lucky to have comments.
in real life, I'm fighting with - I'm not joking - a few dozen "quick patches". code does not reflect in any point functional requirements, and dude is adamant he's in the right and supersarcastic in any occasion.
I've been working at my current company for almost a year.
I had no idea it could be this bad.
I actually had to fight/plead with someone to "please read the code". Guy did get fired though.
Later is the name of the intern my company hired when I resigned :)
Rarely have I ever actually had consequences for my sins, which tends to be why I don't go back and fix them…
If tech debt weight is felt in any way, it tends to get fixed. If it's not felt, it's just incredibly easy to forget and disregard.
(This is mostly me not learning my lesson well enough from my time being on Tech Debt: The Team. I do try and figure out the correct way to do things, but at the end of the day, I get paid to do what the boss wants as cheaply as possible, not what's right :/ money dgaf about best practices until someone gets sued for malpractice, but on that logic, maybe the tech debt piper just hasn't returned for payment from me yet… Only time will tell)
For me most of the people who have written our most annoying tech debt left the company long time ago.
Ah yeah, that would be a worry, except I forgot to mention that most of the code I work on usually gets thrown away after like 6 months. Makes tech debt not have nearly as big of an impact on me.
We do have a longer lasting code base that the little widgets I make run off of. That has a much more strict requirements to ensure tech debt is not introduced specifically so we don't end up in that sort of a position.
That said, and yet we couldn't even keep it out of our own code base. So yeah, I think my original comment is just wrong because I forgot all the ways tech debt actually has effected me in the past and how my industry's project cycle is so short term that i rarely have the opportunity to run into tech debt that I caused in a problematic way…
That make sense. Most industry best practices are there to prevent problems that arises when code is evolving over a long period of time.
Yeah, that makes total sense.
Most software engineers also have to actively maintain and add features to their finished project, and those aspects change a lot about how the problem can be approached.
I failed to take into account why might I have not been effected by tech debt despite occasionally creating it before commenting. Will have to make sure that filter gets a bit stronger lol
What industry do you work in?
Fair point, I work in a consumer facing, fast turn around, short lived code project industry. Not a typical software project with long life cycles.
These practices would almost certainly bite my company in the ass if we had to maintain anything for longer than year.
Occasionally, we do have to support a client for multiple years, and everytime it's a hilarious shit show trying to figure out how to keep all the project dependencies up to date. This is likely platform tech debt, and would be the beginning of the problem if we didn't have the privilege of being able to start over from scratch code-wise for each client's new order.
I guess I'm just in a lucky spot in the programmer pool where tech debt literally doesn't hit me as hard as it usually does others, and I just couldn't identify that before now lol
Instead of saying tech debt isn't that bad, my tune will change to something else. Like I said, I was on a team at one point that had a worse than usual tech debt problem, and it was unworkably stressful to deal with. Im guessing that experience is more typical of being near tech debt than my other experiences.
Good on you for acknowledging that. 👍
I've fixed 20 year old issues that could kill people.
Different requirements. Different solutions.
That's why it's great to be an engineer!
If you’re smart you do it the quick and easy way and leave the company before it bites you in the ass. Only suckers stay with the same company for more than a few years
and thats why we are reading a book about clean code at my apprenticeship