12 ms·
I worked in an environment where a senior architect got to veto every major effort that I publically made to improve the structure and maintainability of the so
by yarg 4y ago
I worked in an environment where a senior architect got to veto every major effort that I publically made to improve the structure and maintainability of the software.
At some point I got so pissed off about this that I started assigning code reviews to him - he contacted my manager and asked that I stop, because he had no understanding of the project in question.
What did this mean from the documentation side?
I would have loved to accurately document what I was doing and how the project was structured - but I actively avoided doing so.
Every time my manager's boss knew what I was doing, I was about to be shat on from great heights.
Months of work and planning erased at the drop of a hat - time and time again.
Dependency injection? Fuck off. Spring's too heavy.
Modularity? Fuck off. The project's too small.
Hierarchical profiles? Fuck you, keep using a properties file (with an increasing number of dynamically generated keys).
I was constantly asking for a new developer to be brought in for the transfer of knowledge - at best I was told "That's not a bad idea."; yet nothing was ever done about it.
I took an unmaintainable pile of bugs and made it stable and maintainable. But nothing I ever did meant that I was someone worth listening to.
Eventually I got so burnt-out (and consumed by feelings of uselessness) that I walked away without finding another job.
I was damned near suicidal from fighting for acknowledgement.
I cannot imagine that my departure went too well for them.
- JAlexoid 4y agoYour comment is why everyone should start their engineering experience as a consultant. Primary thing that I learned being a consultant - you can leave and you don't have to suffer the disdain from the management. You learn to disconnect yourself and be replaceable. It makes for a less frustrating life. Sad that it happened to you. Don't invest yourself in someone else's child.
- andrewmcwatters 4y agoHere's the kicker, I hate to say it, but they probably didn't notice you left. That's the thing about places like that.
- fatneckbeard 4y agoyeup. and realizing that is the only way to stay sane. nobody will care if you leave, nobody cared about the last person that left, they have other priorities and software engineering is not one of them. if its that much of a problem, their business will fail and some other business that does care will take over their market. but that might take decades because software engineering isn't actually core to a lot of business activity. youd be amazed at how bad some software is for major companies, and yet they are very profitable. you only have control over yourself not other people.
- maleko48 4y agomy company's primary app/digital portal that is meant to eventually replace the bulk of phone center operations requirements is hilariously bad after years of development. I used to tell the app team daily everything that was wrong with it in great detail from a usability standpoint of both our internal operations and our external customers but they just took the chat tool down, lol. they've been slowwwwly adding new functionality before the core functions are fully baked and actually useful which is just crazy to me. if it weren't for top management pushing our sales teams to push our customers to use the platform, 98% of our customers would prefer to just pick up the phone and call us anyways. (this is the concrete industry, so not exactly tech forward)
- yarg 4y agoI was the main developer on the single most critical deployment tool in the company. My departure would've been less than ideal. Either way, the company's haemorrhaged talent (now including long term CEO and long term CTO) and the stock price has plummeted since I left. (In no way am I crediting myself for this; at best I was a canary in the coal mine - but I take my solace in schadenfreude.)
- ngc248 4y agoI have been in places like the one you talked about. I also almost had a breakdown because I used to care too much. After that I had an epiphany, now I only care if others care. Its good for my mental health.
- devwastaken 4y agoIt's a job, not the fifth world wonder. That Corp is making money based on their market position, the software functioning is an afterthought. If it all breaks, the customer isn't going anywhere. Don't fight management, leave.
- yarg 4y agoNo need for the condescension; I didn't imagine myself to be building some ivory citadel - I was working to ensure that changes required from a business perspective could be quickly and cleanly integrated without impacting the stability of the software.
- csomar 4y agoThe customers do eventually go. These companies will slowly fail, and they slowly fail because they specialized in customer retention (or more like trapping) either through legal (ie: lobbying, monopolizing, etc..) or illegal (dark shady patterns)
- lelanthran 4y ago> The customers do eventually go. These companies will slowly fail, and they slowly fail because they specialized in customer retention Maybe this is true in the general case, but there are so many exceptions to this that I feel it is not true enough. Customers don't care about about using the best tool, they only care if it is good enough, and a computer/application/software that crashes once a day is actually good enough for most desktop workflows. An OS that abuses the user might still be good enough that better alternatives cannot get a foothold. Same is true for web applications, enterprise systems, games, etc. It's only when you get into the embedded space that you face the "quality or GTFO", because people have lower tolerance for malfunctioning appliances than they do for malfunctioning computer systems.
- bentobean 4y agoI hear your frustration. I can relate. But this: > I was damned near suicidal from fighting for acknowledgement I sincerely hope this was hyperbole. Please don’t ever allow anything work related to affect you to this extent. You are more than your job. There are other opportunities. There is much more to life than software.
- yarg 4y agoSadly no. I've been depressed for over 20 years - this was the kick in the arse that I needed to spiral down into oblivion.
- theteapot 4y agoYou can say that as much as you want. Sounds completely reasonable, but good people are still going to feel like this guy. Good management should recognize this, and well, manage it, rather than have people grind themselves down, even if it is because of their own stupid pathology. I think it's just classed as being empathetic.
- geodel 4y agoWell, FWIW I have to use all the things you were proposing. However I find them eminently crappy and if I were in a position at my workplace to reject them I would have absolutely done that. > I took an unmaintainable pile of bugs and made it stable and maintainable. Same here, except it was supposedly using all best practices e.g. Spring Boot, DI/IoC, Mock testing framework, YAML configs, extremely elaborate package hierarchy and so on. The only thing it did not have was working solution for the business problem it was written for.
- yarg 4y agoIn the case of Spring what I wanted was adequate dependency injection. I was dealing with having to support releases across multiple historical branches, and wanted to separate the core and business logic to allow for easier support on the older branches. I needed the dependency injection in order to break up cyclic dependencies across modules (without which the core and client logic could not be broken into separate repositories). Internally, the deployment tooling treated the profile as hierarchical; when I took over the project it was already using dynamically generated keys to store trees of data in the .properties files it was using for user profiles. It only became more hierarchical as time went on and the internal representation fully so - using a tree structure internally allowed for very clean subtree selects (which helped to clean up an entire class of bug, introduced on mass, during a particulary ill advised (and strongly advised against) piece of work (completed (despite being given without notice) in a single iteration - when it really needed at least 2). I would still have preferred to use an external format that allowed me to specify or generate schemas for the user profiles, and it also would have helped with supporting profile versioning (which would have been valuable for company internal users).
- bitexploder 4y agoThe one thing agile is aimed in the right direction about is that software is for users. Users use it to create value in a business context. Many developers are too far removed from value creation and making sure their features and design changes will actually benefit users in the long run. Tech debt is a thing, but so is business value driven development that works well for users. All of these refactoring side treks need to really be necessary. I do greatly empathize with grandparent, lack of being seen and acknowledged really sucks. And who knows what their situation really was like.
- theteapot 4y agoSounds like you needed some workplace allies there.