In your experience, how can you smell the B.S from a mile away?
How do you deal with it?
Thank you
Never believe that money is the only thing you can negotiate at a company. Most benefits are negotiable; the only question is who is authorized to negotiate them. Vacation policies are often negotiable, if that's a thing you value.
"Don't talk about salary" (or other compensation) is a common unwritten policy. Note that it carefully isn't written down anywhere, it's just an unwritten expectation. That's because 1) it's illegal in many jurisdictions to prohibit discussing salary/compensation, and 2) it's often to the employees' benefit to discuss salary/compensation with each other, just not to the employer's benefit. (That doesn't mean you bring it up in unrelated conversations; it means it's completely reasonable to discuss and compare compensation when you're trying to figure out things like "am I being paid fairly" or "is this person I'm mentoring/advising being paid fairly".
Set a deadline without asking the developers. Or ask them and ignore their estimates. Or ask them and ignore that they will know after some initial checks which will take two days ("nope, we must know the deadline now") - so it's basically just guessing.
Then the deadline is "set in stone". This means only that it's a good way to punish the developers. Then they are forced to work during weekends.
At the end they are punished with bad yearly reviews, decreased bonuses etc. Sometimes some are even fired.
Then the management just moves the deadline to another, equally stupid, term. Of course they will get the full bonus "you see, the developers are lazy, but we fired the worst one".
Then the cycle repeats. The most funny thing is when the deadline is for some internal stuff where the client is fully internal and really doesn't care if the product will be this month or the next one.
1. instead of giving full word names to variables, it is more efficient to just name the first one `a`, and the second one `b`, and then on the second pass through the alphabet `a1`, third pass `a2`, etc. He couldn't understand why I didn't re-use his old code written with this scheme or why I didn't adopt it going forward.
2. It is far more efficient to simply not write the bugs, as opposed to wasting so much time debugging them.
Thanks for the education Frank, I did learn a lot from you.
Yeah, right. I'm at employer #12 right now (30+ years in the business) and this has never been true. I've been at startups and big companies, I've built products and services, I've been on the good side and the bad side of this, but it has never been true. Cases where people are rewarded for doing the right thing and avoiding crises are rare. Far more often the rewards go to the people who grind out tons of feature code regardless of quality, and/or to those who pull all-nighters to debug those avoidable problems after they've already bitten a user.
If you're the kind of developer who wants to do The Right Thing, and you want to be rewarded for it, find a company and/or manager who has demonstrably done that. Do as much of it as you can, but don't rely on it to drive raises/promotions. Make sure you also do enough of the "move fast" BS so that you don't get written off before people even think to look at quality or team contributions to decide between you and the person in the next cube.
Of course, the post internship salary offers were significantly below market rates. Many would accept the offers anyways because they had invested time and energy into the company.
The lesson is to never enter into a contract without full knowledge of it's consequences and how it will play out.
What he was actually doing was trying to guess what upper management wanted before they requested it. This way, when the request did come through, he'd have the solution on the spot. It made him look great. It wasted about half our team's time. One thing it did do for us is give us more experience in solving new problems, but at the expense of getting our day-to-day work done on time.
But I did get to the point of not being so eager to jump on his "call to action" meetings unless I had outside verification that it was an actual call to action by management.
He ended up being the head guy in charge of IT.
> Politics is when people choose their words and actions based on how they want others to react rather than based on what they really think.
To know what others think and desire requires empathy. To counter B.S you have to do 2 things. Get to know yourself to create a carapace based on values that protects you, and get to know others, so you know the true reason why they want something from you. When these don't match (or don't match the proclaimed company values), this is the definition of B.S
If your values, their values and the company values match, then we can hardly call it B.S - and don't forget changing values and raising from naiveté is part of growth. It's ok to feel today you "gotta give 110%" then later realize this doesn't align with your life moment.
Programmers are often surprised by this. “But I just want to write code” – that’s just a very tiny piece of the puzzle.
2. Managing people purely for their outputs; not as individuals with lives, career goals, interests, strengths, weaknesses.
3. Insisting on process but not participating. E.g. scrums with no management present.
- Convince the engineers presenting the slides that you actually understand the challenges and complexities of the job. Make handshake agreements that none of this will be forgotten internally. Say "We just need a simple story to get through the review hoop."
- Six months later, forget that any handshake agreement took place or indeed that anyone objected to the simple, straightforward, fallacious story presented in the review. The slides, after all, are the only thing written down. Insist that the engineers never conveyed any challenges to you. Blame them for delays, overruns, and missing features.
My lesson learned: never, ever sign your name to a fictional budget, schedule, or risk summary.
Only thing I can think of is a long time ago being told if you hit this deadline here's £X thousand pound bonus for the team. We hit the deadline, they made me redundant next day and told me I wouldn't be getting my share because "you should have got it in writing"[0]
I took them to court and won eventually. Good fun.
[0] Which was a) true but b) plain nasty. Worth repeating at this point, the 3 laws of contracting:
1. Get it in writing
2. Get it in writing
3. Get it in writing
- Asking you your current pay. Not answering when you ask them their budget. A good answer is to discuss the other offers you have on the table.
- Getting private info by asking you to correct something false. "So you made 80,000" will get an answer better than "How much were you paid?"
- Repeatedly asking you the same question because they don't trust you and have read they'll "get the real answer" if they ask three times.
If you feel like management and politics are making you not trust the company, you should find another job, especially in this environment with plentiful jobs. If we suffer some sort of recession in the next couple of years, we need to hunker down in a good company that takes care of their employees.
"Work hard and the promotion come. Eventually."
"You'll be a paper millionaire at IPO time."
"This bug needs to be fixed before you go home."
A few days after switching roles and organizations within the company from regular system admin work to my first real development job, my old boss realized they were completely unprepared to continue without me. Due to the overall importance of my former customer to the company as a whole I was horse traded among senior management back to my old organization and role on a part time basis under the 'other duties and responsibilities' clause of my employment contract.
Prior to switching roles I made the case that the company should back-fill my position due to overall workload, the likelihood for burnout among my old teammates, impact to customer, etc (the original intention was to drop the role via attrition). I knew that something was up when my old manager was all excited to tell me that the company took my suggestions seriously.
As for how I dealt with it - unfortunately I bent over and took it. I have a myriad of reasons as to why, but the most salient is I feel I need the development experience and don't think I'd be able to find job elsewhere just yet. This has definitely accelerated my overall plans to leave the company entirely, but in the meantime I'm trying to milk all the experience I can from my new role and am preparing to quit at the earliest possible moment.
The silver lining out of this is that my partner, family, and friends have all been incredibly supportive. Additionally the team lead on my new team understands the situation I'm in and is trying very hard to present me opportunities to grow and expand my skill set even though I intend to leave the company in the future.
Each one is structured differently, but they have general similarities. It takes some time and study, though. One of the best lenses I have found to view the corporation is 'The Gervais Principle'[0], now about 10 years young. Rao uses 'The Office' to illustrate the dynamics of the modern corporation.
Broadly speaking: Sociopaths, in their own best interests, knowingly promote over-performing Losers into Clueless middle-management, groom under-performing Losers into Sociopaths, and leave the average bare-minimum-effort Losers to fend for themselves.
One of the key lenses is the idea of 'talk' and how people in a corporation talk to each other. Specifically, the 'power talk' of how the sociopaths talk with each other, and 'the 'posture talk' of the clueless to the losers.
Your question is about 'posture talk', how to deal with it, and how to 'baby talk' to your Clueless managers. The answer is to pull a Ryan and turn into one of the Sociopaths, not one of the Clueless.
Though it is only one lens, and one that is ~10 years old now, the 'Gervais Principle' is a valuable resource and mental model for viewing the modern corporation and may help you in understanding the kinematics that underly what is going on with your managers.
Technical chops: do they engage in the wider software engineering community, what projects have they worked on, do they publish papers, give presentations, do they have a body of work, etc.
If the answer to the first is no and the answer to the second is difficult to find out then I don't even need to work with the team for a while to know there is going to be dysfunction. It tells me that this is an ego-driven team, inexperienced and politics will play a huge part in getting work done.
If the answer to the first is yes and the answer to the second is still difficult to find there's going to be some bullshit. You will have a toehold to fight against it because you can get the data you need from your users.
The answer can be no on the first one and the leadership can come from a good history of delivering good work. There is a range of bullshit here. You can still have ego driven development with a lot of bullshit. If you can't talk to your customers it's hard to know whether your leadership is bullshitting or not. However if you have done your research on leadership and trust them then there can be minimal amounts of bullshit.
If the answer to the first is yes and the leadership has a strong background and is well known then go work on that team. This is going to be a great team with almost zero bullshit. This combination is extremely rare but wonderful when you encounter it.
How I deal with bullshit -- get a therapist if you can afford it, group sessions if you're strapped, or start a group with local people to vent and get support. Burnout happens when you can't escape an environment that puts a lot of stress on you and you feel like you cannot control it. You might need to deal with the bullshit because you need the job to support people who depend on you. You can't deal with burnout by believing in yourself. Get a support system.
Bullshit is everywhere. It's often not because you are smarter than everyone else and can see it. It is often because you can't see everything going on and nobody can read your mind either. Bullshit happens when well-meaning people with insecurities are trying to meet unrealistic expectations (whether self-inflicted or social doesn't seem to matter). The best way to not spread bullshit is to leave your ego at the door. Seek teams that minimize bullshit and don't put unrealistic expectations on people.
Making me feel guilty because I save our ass? Time to update my resume
Employee: I'll shoot for Mgr: Why can't we do This was common in my team meetings at my last company. The boss was an asshole in general. He would always reframe things to put tons of pressure on you to get things done in unreasonable timelines, but he insisted this was normal and the onus is now on you to explain why we can't get this done in a "normal" timeframe. In front of the rest of the team. Needless to say, if you're shy (or too nice), you'll buckle and try to get it done, and work yourself too hard.
Get ready to be fixing shit.
"why don't you be the team leader, but let's not tell anyone..."
Hmmm
2. You have already learnt x technology? We can move you of your current project manger can release you.
3. Sighs reskilling isn't working as per our expectation