At my company time is always running short which is the excuse for all kinds bad or short sighted decisions, IMHO. Obviously this slows us down and makes time short again. I try to raise awareness of technical dept and common anti patterns, but i don't come through. I talked to some of my coworkers and they see the same, but all of us seem unable to change a thing.
I wonder if anyone can give me directions on how to improve things. Especially with the product owners/managers that have less technical background.
Or maybe a piece of good advice on how to deal with that personally. I also considered if I was the problem - by somehow misjudging the situation or something - but i think like myself, so don't spare the criticism.
---
A current example of the type of problems we face.
A big move from our DC to a private cloud based solution is coming up because our hoster closes that location.
My coworker and I where charged with building the new infrastructure. We built a sweet CI/CD infrastructure using gitlab and kubernetes. We did in ~5 months which took ~10 devs twice that the last time. So things are improving actually - yay! All our newer services where easily migrated, new prometheus monitoring is a treat. There is the last big monolith tho - two people and a short hard deadline while maintaining all the other services. So we sat together with the relevant devs and decided to fix away all those doodads in nginx and varnish configs and make the software usable on the new infrastructure together.
Now product owners start to complain that their tickets don't get completed and some even started to pull rank and moved devs to other tasks - moar tracking. They seem unable to grasp that a site can actually fail when load can't be handled, so they don't get stressed like i do.
Currently the site takes ~20 seconds to render at some places. so there is no urgent need for improvements? I don't get it, should i just watch it fail and relax some?
Before anything else, I really like and respect your attitude. As a developer, I would like to work with more people like you.
Further, as a developer, seeing an application take 20 seconds to render makes me physically ill. I would feel exactly the same way you do, and ask the same questions.
The 20 second rendering time needs to be fixed. But, in a situation like this, there are always two options. It should be the first priority, or other things are higher priority.
Sometimes, I think it's good for developers to look at a business as a predator. It doesn't particularly care about anything other than staying alive. It has to take in as many or more calories than it expends or it will die. And, in order to catch that many calories, it has to be ruthless.
Businesses are like that. If a business consistently spends more than it makes, it will eventually die. It has to maintain positive cash flow over a certain period, no matter what. (That isn't completely true all the time as tax planning can come into it, but just accept this as a helpful half truth.) This means that when it comes to fixing problems, it's not about fixing the bullshit, it's about fixing the most expensive bullshit first.
A 20 second render time is fucking atrocious, but maybe, at worst that will cost $5,000 a month. Whereas, maybe there is a feature that will bring in $8,000 a month. In that case, the new feature wins, technical debt be damned.
All isn't lost though because again, you have a good attitude and I'd bet that other people notice that too. If you are prepared to lose graciously, you can bring up your concerns to management.
However, it's important to speak their language. They likely can grasp that a site will fail under load, but they might not care. They might not care because either something else is more valuable to work on, or because they don't know how costly your problem is. If you want to win this argument, put together some numbers and go at it. But, always remember that a starving lion isn't going to pass up a sick gazelle because gazelle meat gives it gas...:)