Aboutsoftware developer since 2008, with 1 year episode as engineering manager
Skills.Net, AWS, DDD, microservices, RDBMS
Joined devRant on 4/24/2021
Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple APILearn More
CI CD pipelines in my company... Having CICD suppose to help development... Now we have countless templates and tools (github actions, circle ci, agro, aws beanstalk, azure pipelines, serverless, terraforms, cloud formation, helm charts, ECR, Vault... and few more).
Total chaos, doing simple CICD for 1 api and 1 lambda took 3 days so far, and will take bit more.
On top of that, no one have idea which part of scripts are doing what exactly, as responsibilities are in different tools (each tool have different config files).
Does deployment have to be so complex? Or is it that my company DevOps team makes it so unnecessary complicated?4
Another project, another team, another shitshow in codebase.
Now instead of doing work and implementing long awaited features... few weeks of minor refactorings ahead, untangling unnecessary complexities...
... but mostly - explaining the team why their 12-months work is pile of shitty spaghetti, and how it should really be done.
Explaining basics to "seniors" is the most exhausting thing.3
Can someone explain to me the need of a "technical management"? I know my question is naive, but try to explain it like to kindergarten kid.
Case 1. When team is good, and has a good tech leader(s) then the software director/manager makes more harm with his silly ideas, pompous cliche "calls to arms" etc.
Case 2. On the other hand, when software team is shit, it means that the management is responsible for assembling such team. Then it further means that they can't distinguish impostors from really good talents, which leads to bad quality, missed deliveries, bugs, frustrations, etc.
I saw many times when good technical lead (aka architect, staff, principal) made a positive difference. But I NEVER EVER saw that things were bad and "manager/director" made a positive change. This concept is soooo flawed....
... any one explain please?6
Did anyone of you worked for a company where:
- there was a financial success
- code was clean and was enabler for fast delivery
- tests were professional
- CI/CD pipeline was working as expected
- features were developed in small chunks (few PRs per day)
- managers were trustful and were solving real issues to help you
- refactor was part of the everyday development
Is it even possible? Is there at least one company who achieved success doing the above?16
Company: we care about work/life balance (as long as shit gets done)
Company: we care about mental well-being (except when shit has to be done "now!")
Company: we help each other (we push work around until someone finally do it)
Company: management is here to help you do your work (as long as you don't ask them to help you to solve a real problem)
Company: we are agile (except we have more sub-processes than ever)
Company: we only hire best (and then put them in the team of morons)
Company: we are customer centric (that's why we are delivering bugged features)
Company: we constantly rise the bar (deliver more shit in shorter time)
... did I forget about something?12
Today my friend told me that it's part of our job to calmly and politely explain to our non-tech manager about the tech things (tradeoffs, risks, possibilities, etc.).
And I answered him: but my manager is techy, his title is literally "technical manager".
My friend: oh... shit.
To all self made seniors (and those who got granted this title because it was a morale boost): is it really so difficult to grasp ideas like: Single responsibility? Don't repeat yourself? Encapsulation?
Seriously? Is it difficulty level of some quantum physics or what?
I'm not a fucking genius myself either, but when I see 300-500 LoCs function, accepting 10 parameters, having half of code duplicated in different parts of solution - I really wanna start firing people ON THE SPOT.
To all shitty developers advocates - I know that everyone makes mistakes sometimes - I'm talking here about consistent "don't give a shit about code" behaviour.23
Can I go to CTO and demand that he will demote a "senior engineer" (who takes senior's paycheck) who don't know what "race condition" is, and how to design/deal with it?
Why? Why I can't?15
Me: code quality is important
Everyone: <no shit given>
Director: code quality is important
Everyone: yes, it is very important, hurray!
Fast forward few weeks/months...
Me: why this function accepts 14 arguments?
ShitDev: yhm, you know, we need to fix it... maybe
Me: why this exception is swallowed?
ShitDev: oh, really? yhm, yhm
Me: why this function is copy-pasted and repeated (20 LoCs)?
ShitDev: yeah, true, but we wanted to make it fast.
Me: Dear director, this project sux and its quality is shit.
Director: you're exaggerating, it can't be that bad, it works, right?
Me: <polishing CV>
ShitDev: got praised for delivery14
Guys, I have all symptoms of wasting time in bad work (can't stop thinking about it, anxious, can't relax, can't focus on a hobby, etc.)
But - how the hell you can know if next company won't be even worse? How can you be at least basically sure that today's "bad" isn't that bad in comparison to your next employer?6
What is thin line between:
- "being a leader" and "helping others succeed" and "making team working together"
- having to get shit done myself because team can't reliably deliver even basic tasks, and ultimately managers expect you to make "the team" shit done
IMO these are 2 different things. Complete opposite. Like snow vs fire. Like shit vs parfume. Yet my manager see it as almost same thing.9
Recruiter: we're looking for someone who knows .Net and "JAVA practices".
Me: <WTF is "java practices">
Me: <googling "java practices">
Me: dear recruiter, I know dotNet and good programming practices but there isn't thing like "java practices" in dotNet.
Recruiter: <no shit given>
Me: <why such incompetency is in charge of my potential future job?>7
What do you think about my sibling observation today (he/she is not in software):
- if you want make money in any company, deal with all the shit: incompetent co-workers, shitty management, unreasonable deadlines, misinterpreted Agile, no test coverage, etc.
- if you want to grow and develop yourself: join some easy startup or make your own app/project3
Today I learnt by hard, that even best management don't want to hear how bad things are.
You're supposed to shut up, and make things shine.
You can't fix few years of sh*t in 3 months? You can't work with people who don't understand basics? You can't fake results to show to the management?
Why management has such orgasmic attachment to numbers?
Mngr: split this into tasks
Mngr: now estimate these tasks
Me: can't. Team is new and codebase is unknown. Any estimations would be subjected to huge error and I will not commit to anything if I'm not at least partially sure.
Mngr: but we need some timeline
Me: so give it yourself. I'm not doing it
Mngr: we need to measure how your knowledge sharing sessions impacts our organisation
Mngr: e.g. amount of bugs lessen in next quarter
Me: bugs can go up and down because of hundred other reasons. Also, knowledge sharing is just to inspire people, it's up to them if they keep educating and growing. Me sharing knowledge 1h per week, I can't guarantee they will understand and apply this new knowledge.
Mngr: but we need to measure it somehow, otherwise it is useless.
Me: <speechless facepalm frustrated>22
Who the hell invented this industry where smartest individuals are being evaluated by those who didn't understood technology well enough and moved to management (it's usual scenario, though there are exceptions)?
Can you imagine surgeon performance/quality being evaluated by some clerk who may or may not had studied medicine earlier, but wasn't good enough to become surgeon itself so ended up in hospital administration.
Or can you imagine bridge engineer having his/her performance/quality evaluated by someone who had built bicycle shed 5 years ago?
Damn, yet in software industry it's pretty normal.
(Don't confuse management with performance evaluation. I know management have different scope and duties, but idea that management does the performance evaluation is so damn broken.)6
A) Create something that works, is fast, minimum bugs, have edge cases covered, nice testes, clean code. Cool, you did your job. END.
B) Create something shitty with bugs, performance issues, non or poor test coverage, mess code, etc. Cool, you did you job. But...
Next week you reduced bugs by 50%. Wow, you're rockstar.
Another week you improved performance by 15%. Again, you're the hero.
2 weeks later, you reached 85% test coverage. Management is so happy that almost got orgasm.
"A" took 3 months, "B" took 3 months plus few months of fixes. The only time where B was winning was first 4 weeks, where A was carefully building it's architecture and quality.
Yet B is seemed more successful.
This industry is F****d Up beyond my understanding.7
Been assigned to the team by management.
Management and I both know team members are junior/early-medium levels.
Management expects outcome.
After few weeks I clearly communicated that these engineers are unreliable. I can grow and coach them, but outcomes can't be guaranteed.
I was told it's my responsibility to deliver outcome anyway.
I was told they know it's unfair - but if whole team fails, it's on me to fix everything.
And most importantly: of course IT IS NOT MANAGEMENT FAULT OF ASSEMBLING TEAM OF WEAK ENGINEERS.
... placing me there should fix it "somehow"6
Does your bosses/managers also posting shit ton of pathetic buzzwords posts on LinkedIn (like: embrace, family, awesome organisation, very proud, guru, celebrating) and yet you know the organisation from inside and it's same corporate sh*t as everywhere else?13
One team was delivering for 12 months.
... but definition of done not met. Code crap everywhere. Tests barely there and are total mess.
I inherited mess after previous lead engineer.
I exposed all the issues to the management in a straight way, no sugar coating.
... and now guess who's the bad guy for "complaining" instead of shut up and "making it work"?
"Giving accurate report about situation" is seen as "complaining".7
Candidate claims being seasoned "senior".
Him: i don't know how the solve this
Me: you have to use binary search
Me: do you know binary search?
Me: can you please explain binary search?
Him: eghm, hmm, sorry I can't20