Hacker News new | ask | show | jobs
by maxxxxx 3072 days ago
I used to work in small teams/companies or alone and got a lot done that way. Now I am in a big corporation and I am still stunned by the overhead there . Between coordinating with other teams, dealing with offshore teams and reporting to management you barely get any work done. And if you get anything done it's usually mediocre because there is no room for experimentation or rapid change if something doesn't work. I am just finishing a project that took 2 years. I am thoroughly convinced that the 2 developers who did most of the work could easily have done it in half the time if they didn't have to work with other teams who didn't deliver and stakeholders who couldn't make up their mind. We could just have worked through each issue but instead we had to wait for other teams and deal with their mediocre output which was incredibly frustrating and demoralizing.

It seems the bigger a company gets the more they favor predictability over excellence.

11 comments

I went from a big company to a small (<30 person) company and back to a big company, and I'd put my personal productivity drain for working at a big company at close to 20%.

The biggest contributors to that 20% are (1) extra admin overhead like time consuming performance appraisals and more red tape for purchases, reimbursements, time off, etc., (2) getting blocked sitting around waiting for some person/team whose priorities are not my priorities to respond to requests for info/support, and (3) additional reporting requirements in the form of meetings and extra emails/paperwork to keep other groups/managers updated on what I/my team am/is doing.

There is also a subtle productivity drain caused by the feeling of "why should I put in an extra hour today to finish this feature when release is probably going to be blocked by [some thing I cannot control]". So, I leave the work til tomorrow, but I lose all the mental context I have for the work and need to recapture that to get back to where I was, so what would have taken an hour yesterday takes 90 minutes today.

When I was on a 4 person team in a 25 person company, it absolutely felt like every extra effort I made had an impact and was noticed and appreciated, which inspired me to make extra efforts.

Now I feel like any extra energy I have should go into making sure I don't forget to get some form to HR by some important (but arbitrary) deadline or attending the latest mandatory training session my manager or IT has required me to go to or getting legal to approve use of that open source library we need.

On the flip side, when I worked at a small company, I felt like I had waaayyy to much power over the success/failure of the business. Yes, I can make an impact, but that impact could be negative; "If I fail, so does the whole company" was a common thought I had, it kept me up at night.

At a larger company, I can fail repeatedly and the machine will have my back. I find I am taking more risks at a larger company because of that.

I have some personal gripes with small companies too. Taking vacation was always an intense negotiation ("But jbob, we planned to do this work 6 months ago, if you take a vacation, the project is delayed and the client is unhappy!"). Cleanliness was a problem, irregular cleaning or I'd have to do it myself, the multinational I'm at now has the bathrooms cleaned 3 times a day and the floors and desks are cleaned every night. It was difficult to be critical of the smaller companies because I felt like I was insulting my "friends", whereas at the multinational, we guard our personal lives fiercely and have no problems criticizing business direction.

My job is not the place to do interesting things (though I am stimulated by the problems we have, even though they aren't always technical), that's what hobbies and free time are for.

Why not both? You can have interesting hobbies and an interesting job. For the same reason you should invest in a good bed in that it's a third of your life, you should invest in a job that interests you. Whether it's interesting is entirely up to you.
This question doesn't deserve the downvotes its getting.

Some people can and want a job that feels like a hobby, but some people like to compartmentalize and want their job to definitely be engaging, but don't necessarily want that love affair hobby becoming a career. My last career was like this, I loved doing it as a hobby and thought I could parlay it into a career. More than 10 years later I hated it and was running at full-sprint for the door.

But I definitely understand that some people can make this work, and make it work phenomenally. Some people just don't want that level of overlap.

"My job is not the place to do interesting things (though I am stimulated by the problems we have, even though they aren't always technical), that's what hobbies and free time are for. "

In my current job the workload is high but the work is often not very interesting or challenging. If I spend my whole day on boring stuff I am exhausted in the evening.

Me too. Kinda envy GP, I had that for 4 months before the machine decided I was broken and ejected me. Now I only have energy between ShittySmallCo jobs because of the time and mind games they play for that moolah. Livin' the dream!
What does GP mean?
Grandparent. The parent is the comment that is replied to. The comment the parent replied to is the grandparent. So in this case GP is @jbob2000.
I find that there’s a good chance that I can safely ignore any “ACTION REQUIRED” email from anyone not my manager. So I do. Occasionally my manager gets a nastygram to relay to me, but he is super okay with that if it means I’m focused and productive.
Same. I do as much as I can in short bursts but past that I’ll just wait for someone to start threatening me. HR can’t fire engineers for dragging their feet anywhere I’m aware of. Never shown up on perf.
> It seems the bigger a company gets the more they favor predictability over excellence.

That's also what their customers tend to prefer -- they are often large companies themselves, and they can't drop everything to deal with a breaking change introduced by a vendor. They expect stuff that works to continue to work, and they expect breaking changes to be communicated far in advance so they can make plans to deal with them. That's part of what they are paying for.

What you see as mediocrity is a feature of big companies, not a bug. You can't make all the decisions in a project yourself and expect all of the affected stakeholders and customers to go along with it. Their concerns are often valid and need to be addressed because the project has an impact on the business that other teams don't know about.

Star developers at large companies are the ones who build and manage relationships effectively, so they can deliver on projects that have a big impact on the bottom line, and also do high-quality programming work. If you can do this, you can achieve a lot more with the resources of a large company than you could at a small one.

I think this is only partially true. For example my client just added a huge chunk of functionality which is generating a lot of interest and will definitely lead to some nice sales.

Took me 2 months solo developing it. I basically looked at the competition, picked out the key features and made it, with little direction. I only really discussed what we should leave out due to cost/benefit ratio with the CEO, and it was usually him just agreeing.

I know of another larger company that could have made exactly the same functionality, but would talk about a team of 5 taking 2 years to do the same thing. Admittedly I have analyst skills as well as Dev skills and lots of experience, but that's still crazy to me.

That's not mediocrity winning for customer stability, that's being unable to react to the market.

Larger companies are realising this is a huge weakness and I've seen stories here of them setting up mini-teams given huge leeway to get stuff done.

Also look at gov.uk and the American equivalent that are transforming what were terrible portals with small nimble teams.

Nah, it's just that large companies have a lot of smaller companies inside it losing money.

Without the safety net of the larger company these companies would go bankrupt in the real world and not exist.

Star developers mostly have figured out which teams are / are not going bankrupt and direct their internal business to those teams / figure out how to couch a problem in terms that make it seem like it should be given to a team not going bankrupt.

eg. If your web team is shit, but app team is rock stars then the UI should be an app, to prevent the web team from getting the job add a feature such as something with the camera/gps that makes it feel app ish.

A lot of it has to do with office politics power struggles. A small team with a lot of autonomy that produced a great result for the business could also step on the toes of a lot of ladder-climbing managers. So better to not let that happen.
Politics is so annoying. My team had a multi week partial outage that could have been solved in a day if we got VP approval or a few days if we got director approval and my managers spent days going back and forth on what to do delaying the resolution even further.
> It seems the bigger a company gets the more they favor predictability over excellence.

This is because in a bigger company the owners can’t really influence individual contributors, they can only influence the managers, so they set up a culture of predictability by ICs so they can still maintain control.

In a small company the managing owners (founders, early employees, etc) can influence ICs directly.

"It seems the bigger a company gets the more they favor predictability over excellence."

In addition to the reasons other comments have pointed out, this is likely economically rational. If a startup does nothing, they die. If they do something but it's not excellent, they die. Thus they have a strong incentive to do something excellent even if they have to fail a lot of times beforehand.

Whereas a big company is already doing something that's working and bringing in billions. Just by regression to the mean, there's a good chance that anything additional they do will make things worse. So they have a strong incentive to be conservative and protect the golden goose rather than trying things that may work out well but have a chance of harming the brand or business.

> It seems the bigger a company gets the more they favor predictability over excellence.

This is one of the key themes of the book "Seeing Like a State". It describes many efforts by states to regularize their populace and make it "legible".

A number of things at play on large organizations.

- They think in terms of projects not products.

- The structure of the organization ifself. Doesn't lend it self to small teams.

- A lot of dependencies. A lot of bottlenecks. You have to wait in line to get any of the resources that you need.

- A lot of people offering their opinions.

- Office politics.

- Ratio between employees that can use office (e.g.power point, excel, email) vs employees that can do real work. (devs, ops, testing ). Lots of chiefs, very few Indians.

- No one owns anything. Responsibilities are diluted.

- Teams lack autonomy.

And lots of business people who have nothing to do but make meetings. Meetings get boring when they are only meeting with themselves, since they have nothing to talk about but there other meetings.
I had a similar experience. My first job in the industry was with a friend of mine. In two years, the two of us rearchitected an entire product line for a credit union software company-- the teller product, the loan product, the credit reporting system, the web-banking system, the audio banking system, the reporting system, an automatic updates system for the windows applications, etc. We built the mid-level service tiers as well as the UI tiers. Two people, two years. It probably wasn't the best code you've ever seen, but our new product line was the first successful deployment that company had had in over five years.

Fast forward to my next job at a massive company. My team was maybe 30 devs, and twenty testers. It took us two years to deliver two or three basic services that didn't perform well and were super complex to deploy despite the relatively simple nature of the problem we were tasked with solving.

Now, it's not apples to apples. But this pattern has followed in every job I've had except one, where I was on a small, unproductive team with an immensely bad legacy codebase.

Same here. A while I ago I wrote a pretty complex app for test management alone with WPF in a few months. With synchronization to a server database, lots of concurrency and a lot of other stuff. Talked to users about their needs and came up with a design. Then two of us ported it to a web in a few months.

Now I have to lead development of a site that pretty much does simple CRUD and between offshore devs, proofs of concept, approvals, other teams in the corp, spec writing and reporting to management 10 devs will develop something that's technically inferior and ugly in more time. It's very frustrating.

Even things as mundane as copy become multi-week ping-pong behemoths as 6+ different teams need to put in their two cents and tweek everything. Legal, copy, marketing, UX, product, exec. It's astounding how slow things move at large corporations.
Then again copy that changes conversions by 0.0005% can mean a multimillion dollar difference for some companies. So it’s kinda important.
Adding one conversion in 200,000? How much data would you need to even show such an effect?
>It seems the bigger a company gets the more they favor predictability over excellence.

Or also the bigger a company gets the more they favor predictability over [early] delivery.

Price's law states that the square root of the people in a particular domain do half the work. So if you have 10 devs, basically 3 do half the work. Scale that up to a thousand devs and 31 devs do half the productive work. Now apply that to sales, accounting, etc. It's really amazing that large companies can accomplish anything at all with that kind of mess to manage.