Ask HN: What is a business anti-pattern you've experienced at work?

20 points by TheMightyLlama ↗ HN
I've seen a couple of posts recently where commenters refer to anti-patterns they've experienced while at work.

One referred to the team consisting of one manager plus one team member. Causing the team member issues as there was no way to validate thinking or to validate output (if anyone knows the post let me know)

I've experienced attempting to run Scrum teams with an off-shore company whose resourcing model was flexible. Meaning that our team composition was fluid over time and there was competition between projects to get an individuals time on the project.

Better yet, do we have names for these anti-patterns?

28 comments

[ 4.0 ms ] story [ 68.9 ms ] thread
One antipattern I've seen at a few companies is analysis paralysis, where there are endless meetings and strategy sessions to discuss a solution to a problem, but there is never an actual decision made. One company I worked for had a series of meetings with 5 or 6 people to discuss the solution to a problem and still couldn't decide on a solution (copying themes/templates between multiple sites. In the end I purchased a $60 plug-in that solved the issue. This same company paid a contractor $20k to build a custom app to turn a shared inbox into a ticketing system. This feature and more is available as a SaaS product for $20 from multiple vendors.

Another is gold plating, where more requirements get added on even after the initial requirements have been met. A few years ago I worked at a startup that made a dashboard for small businesses to manage their online business listings (Yelp, Facebook, Google, etc). They could see all reviews across sites, reply, update info, etc. So product comes up with a new feature to create offers/coupons and post them on sites. We implement all the requirements for an MVP which was creating and posting immediately. Then on the eve of releasing it they add a new requirement to schedule posts (the engineers all objected but were overruled). That led to complexity with timezones that added an additional 2 months of development and bug fixes. In the end, analytics showed that only 2% of users scheduled posts, the other 98% sent immediately.

Along these same lines, I see the business wasting a lot of IT time by including the entire IT team in a meeting where the business discusses what they want and it doesn't produce an answer. The business needs to know their own processes an then include IT to discuss the implementation.
Partial remote communication: Some members are remote, some are in office. The remote workers are often left out of the loop, and often out of friendships, and communication is not done on tools where they can listen in on. This is usually less productive than fully remote.

Mushroom management: Managers keep the developers in the dark like mushrooms. Often consulting companies afraid of being undercut by their developers. It adds communication overhead and "telephone game" communication between the managers and developers, and very often devs don't understand why something is to be done a certain way and are less motivated or cut the corners.

2nd System syndrome: The first system someone designs is underengineered. The second one is often overengineered, which is worse than underengineering. Worst case is making such a person team lead. This isn't just engineering, but also management, sales, etc, as well.

Bikeshedding: If an objective seems simple enough, nobody can agree to it, because it's within the Dunning-Kruger zone of people who want input.

Duck decoy: Middle management feels like they have to give input and criticize to be useful. An engineer can set up a "duck" feature (search for Battle Chess) which is easy to criticize and easy to remove, to appease such managers.

Friendly fire: For some reason, not enough resources are allocated to a project. Often time/tight deadlines. Team A blames Team B for not fulfilling their role. Team B blames Team A later. Blaming often freezes progress as they have to make meetings to explain the situation and possible solutions and negotiate adjustments to the schedule/budget. This can lead to a deadlock. A common option is to bring in a consultant then blame the consultant. That way only two teams are frozen in place, while the third team makes progress unhindered. The consultant will also blame the in-house teams, but their role is to keep it minimum and buy more time.

Budgeting as needed: A budget increases and decreases according to its needs. This often results in departments requesting extra computers, resources, printer cartridges, etc to finish a budget so that their budget isn't reduced next year.

socialistic workplace: Everything that happens has to happen as a group. All work has to be approved by everyone. Everyone works on everything and is responsible for everything.

Business managers at some point began thinking it was their job to destroy the individual professional. It is ridiculous, nothing gets done and no one can do anything. Imagine if a surgeon had to have a live feed of the operation and the entire hospital watched and told the surgeon they were doing it wrong. Imagine if the entire law firm came to the courthouse to sit behind the desk at a hearing, no one was in charge, everyone just spoke when they wanted, and every action was heavily attacked.

And something HN doesn't like to talk about: every hire has to be some sort of social case: handicapped, LGBTQ, under-represented minority, political refugee, or other.

75% of chief diversity officers are black women. There are virtually no other races represented.

Just some stupid stuff that started happening a few years ago.

Diversity quotas are definitely a factor in my demoralization. I've seen completely incompetent people be promoted because they meet the right diversity criteria.

I was also surprised at how little tenure our CDO (chief diversity officer) has. I would love to hit the C-level in less than ten years at a large company. I was also interested to see what a CDO does. I couldn't find any internal resources or examples, but it seems like an easy job.

CDO is a political officer assigned to the company who enforces social/political rules for corporations of a certain political persuasion. I think everyone can see that now. The social/political rules are not diverse, legal, or moral.
Yeah, but what do they actually do?

I'd love to get paid big money to do basically nothing.

They decide who can and can't have a job. Toe their political party line or you can't work or be in business, or get cancelled and lose your job. It's a political racket, same as if your corporation had a political officer in the USSR. It's troubling to see so many corporations have this position.

These companies really showed their hand when they started a few years ago saying there are too many Asians, Asians weren't diverse, etc. Real problem is Asians usually are politically conservative and that is not OK with CDO's.

Mechanically, CDO's get review of every new hire in a company and can veto candidates. They also exfiltrate corporate money by scheduling periodic diversity training with third party political organizations that bill in the tens to hundreds of thousands per session.
They actually review every candidate? That's very interesting. I guess I'll be screwed if I ever need to find a new job. If they do it internally too, maybe this is why I can't get promoted.
ding. ding. ding. ding. ding.
But the CDO doesn't actually carry out any of that. They just tell the people under them to follow the policies they set. It sounds like you get to sit around, make policies, tell your people to make sure everyone follows them, and make big money.
Not trusting employees to make good decisions is a big one where I'm working at the moment. Everything we do comes from the top down often by people who don't really understand software.

For example, we have an extremely outdated code base that's full of security and performance issues which we can't fix because doing so "isn't MVP". Unless something becomes a critical issue such as a server going down we're effectively not allowed to fix anything. We also add to tech debt constantly because we always have to build features in the quickest dirtiest way possible, again because "MVP".

Thankfully I'm a contractor and I doubt I'll be there much longer. While this is one of the worst examples I've known of a company that doesn't trust it's engineers enough to build things the best way, it is quite a common pattern I've noticed among larger companies which aren't primarily software companies.

Absolutely this. I'm a contractor in UK financial services (primarily) and see this pattern across all of the large UK and global financial institutions you've heard of.
I also work for a large financial company. It's scary how the product/program managers think security or technical upgrades are not their responsibility. Even after explaining the potential impact, they just don't care because it won't help their metrics. Imagine accepting external files from vendors while the system is vulnerable to SQL injection including the ability to drop tables etc - insane.
Cronyism or the buddy system. Where the wrong people are put in charge because of relationships not because of merit. These incompetent managers use fear tactics, the creation of in-group to defend their incompetence, and creation of a toxic environment which encourages bad behavior.
I'd also add lack of due diligence to this. Some people are promoted due to visibility and group-think that the person is good, without it being based on real examples or results. I've seen people skyrocket through the ranks just because people know their name, even if there are others who are contributing as much or more to the project.
The business frequently expects IT to solve business problems.

The business problem should be solved by the business, then IT should transform the business system/process into a technical system by following well defined requirements.

This is an interesting one.

Early in my career I thought it would be a good career move to become knowledgeable in the business domain I was working in (finance/trading). I started investing some time and resources to learn.

But before I got too deep, I came to the realization that it wasn't really much help. I could become knowledgeable enough to talk and understand the business like a half-assed rookie trader, and let my technical skills suffer. Or I could spend that time to invest in my technical skills and become a better SWE. This was also around the time that I started to think I didn't want to stay in the finance industry much longer, and obviously the business knowledge would not be portable.

That said, I'm still stuck working at a bank, and I completely understand where you're coming from, where the traders come to technology asking us to understand and solve their business problems.

I'm in finance too. I know a bit about it, but I'm not an expert. I've had business analysts tell me that they want a daily accrual but gave me requirements for a monthly accrual. When asking them about it and pointing out what the differences were, they told me to make it how they told me to make. After it was done they blamed me for creating a monthly accrual instead of a daily accrual even though I built it to the requirements and brought up my objections when they didn't make sense. I absolutely hate my job.
Oh, we're late to deliver this thing? Schedule daily 1-hour meetings to discuss our lateness and make everyone write detailed reports of what they've done each day. Because nothing helps accelerating devs more than occupying their time with meetings and reports!

The people who make technical decisions (which we refer to as Architects) stop doing real technical work once they become Architects. So over time they drift away from the reality of the things they're working on, so we keep having these decisions that don't make sense at all. And these people almost never quit since they make so much money, so it's rare that we promote someone who will then go on to have sane decisions for about 1-2 years until they drift away from reality like the others.

We promoted a CFO to CEO, so now every employee, including R&D is just a cog with a cost and can totally be replaced by another random person in a 12h timezone difference.

Squeaky Wheel Syndrome: The noisiest issue/person is always addressed first.

This creates an unfortunate positive feedback loop.

Hiring for the sake of hiring. I cannot understand why companies think that growing implies hiring more people.
"Use it or Lose it rule..." Spend your annual budget quickly by writing Purchase orders and Hiring people before you really know what the customer wants, because (1) When the company is looking for any spare budget as the financial year goes on, they will come and take it back from you (2) next year you may not get as much as you ask for

Result = overspend on the wrong things, managed by an inadequate team...

That is my favorite anti pattern. In addition to losing the money, your budget will be cut by that amount next year, since you obviously did not need it.
* A manager discusses an unnamed worker's performance issues in front of the group, rather than confront the individual.

* Expecting strong performers to carry the weak without requiring the latter to step up their game.

* Requiring employee's to collect data (e.g. time-use tracking) that is never reviewed or analyzed.