Counterpoint: Being on a small team in a large organization sucks.
In a large org, small teams have no weight. Actually, we have wait - we have to wait for everything: devops resources, marketing resources, even infosec resources. We are too small to notice, not important enough to get quick attention (never mind that our small team's product is profitable).
One of the most interesting discussions I've had around this was at a small company who mass-hired a bunch of people from a big company. We went round and round in circles for a while because of issues similar to what you're describing. I ran a small 4-6 person hardware team (softly blurry on the edges) and the new people wanted significant amounts of design and documentation review as well as financial oversight. We needed $40 worth of solder and connectors and had to wait a week for PO approval as well as demonstrate that we had gotten multiple quotes... even though there was just a store down the block that sold exactly what we needed.
Anyway, after a month or two of this I started catching significant flak because my team was nowhere near as productive as it used to be. Complaining about slow POs was met with "maybe you should plan better". Complaining about design reviews for one-off boards that would go from idea-to-problem solved was met with "you're engineers, you need to document your work". It was painful and I came very close to resigning.
What ultimately worked, though, was figuring out a catch phrase that spoke the language of the new people: "accountability without authority". This ruffled some feathers but once I repeated "you are trying to hold me accountable for delivering a $500,000 project on time but are not giving me authority to buy $40 worth of stuff to execute on that" enough times it finally got through and the system started to change. But man did it suck for a while.
This kind of stuff drives me nuts. I just spent 8 months fighting to get $150 for something. This should have just been taken out of some petty cash fund, but instead I wasted a ton of my time, and others, fighting to get it from the proper source. This cost the organization thousands of dollars in lost time.
I think this is all too common due to a small few who take advantage which leads to the construction of barriers to prevent abuse. This isn't limited to large orgs -- it's everywhere in society.
I suspect accountability without authority might not be as accurate as one might seem when there exists middle management. You might be accountable but your boss probably is more so, thus the reluctance in giving full autonomy. They of course won't be able to take credit in that case either :). Perhaps an overly cynical view I admit.
If barriers harm more than abuse then abuse should be accepted.
Reminds me of that bits about money blogpost title :
"The optimal amount of fraud is non-zero"
Yes and the optimal amount of test coverage is never 100%
And the optimal uptime of b2b saas is not 100% or even 99.999% and yet...
This is true about a lot of things.
The optimal number of (minor) crashes when training for a mountain bike race is non-zero. If you never crash, you cannot be sure you were going fast enough around that turn.
Matt Levine has a recurring bit on this in Money Stuff too, adjusting the crime/fraud/risk dial back and forth as companies decide to do more or less compliance.
https://www.bitsaboutmoney.com/archive/optimal-amount-of-fra...
https://news.ycombinator.com/item?id=32701913
In a vacuum that's certainly the most pragmatic way to look at it. The problem is that tolerance of abuse tends to create more abuse, to the point that usually it's not a sustainable policy.
It's not tolerance of abuse. Abuse when detected will be punished. The important thing is, stopping ALL abuse preemptively causes more pain than it's worth.
Random audits can put enough fear into people to keep them honest for much lower cost.
Measuring the losses due to abuse is much easier than measuring the cost of bureaucracy.
It's precisely the other way around. Cost of bureaucracy is easy to measure, abuse is not measurable (only caught abuse). Nevertheless, the point is that it is difficult to compare a known cost to an unknown cost, so that still stands.
People are risk averse, so a known cost is preferable, even if expectedly higher than dealing with abuse. This is in part why insurance is so profitable.
Nope. Abuse should never be accepted. The right solution for actual abuse of a policy like this as opposed to an error is to immediately fire the person conducting the abuse. The inability or unwillingness to make decisions like this fast is the root cause of a lot of nonsense that goes on at businesses.
If it's an error, you correct and accept errors as the cost of doing business.
That was the most interesting thing about this. I still reported to the CEO directly, but some of his tasks had been delegated to finance and project management teams. So the project management folks were running their MS Project models and I had to keep them updated weekly on where everything was at, and if I spent money out-of-pocket without having it pre-approved by finance my expense claim would be denied.
I think this is all too common due to a small few who take advantage which leads to the construction of barriers to prevent abuse. This isn't limited to large orgs -- it's everywhere in society.
Tragedy of the Commons Ruins Everything Around Me.
Those who act selfishly poison the well for everyone.
When I've run into this, I've gone and bought what I need with my own money. Then I make sure my boss knows, so that it becomes a story that gets repeated up the management chain.
Even if nothing changes, it still has therapeutic value.
Should be able to bill the process for working hours..
This is why I only work at small startups.
There are tradeoffs, but I'll never go back to big organizations.
Same. I quit Google to go work at a 4 person company. I love that we’re just able to get stuff done. Hard to get GPUs? Walk down to Central Computers in SOMA and buy L40S cards and build a workstation for everyone to share.
I’m not very financially motivated. I’m already making more than 90+% of the US. I just can not fathom the level of greed I saw hiding behind people’s eyes at Google as they try to build empires. I’m in Silicon Valley to learn about and work with computers. I get to work a chill number of hours while still learning every day. If you could get a lot of employees like that you’d have a huge market advantage.
That’s very well written. Poetic even.
The industry used to be more like that. Never entirely, of course - Microsoft made a bunch of people millionaires in the 80s and 90s, turned some heads. A few others did too.
Even in the early 2000s almost none of the MBA types were going to the Bay Area after graduating.
But things changed. It basically had to. There were too many companies making too much money - and making their employees too wealthy - for people to ignore it. Zero interest rates added fuel to the fire and everyone who could jumped on it. Late stage capitalism, everyone gotta get theirs. And here we are.
The most frustrating part of working in the tech industry for me is that when it was smaller, it was a given that you would work with people who loved the tech. Now the industry is filled with people who are "in tech" but have no real interest in the technology itself, and in many cases aren't even slightly technical. They're just doing it for the money and because everyone told them it was a good field to go into.
There's so many of these people that it's really hard to avoid working with some of them. I consider myself extremely lucky because I started a business and when these people show up, I can choose not to promote them, or straight up fire them, or find some other way to show them the door. But the broader ecosystem we're in is something I have no control over, and it has clearly changed, so that it's not just filled with people who don't know or care about the tech, it's run by them (and in the long term it shows as the tech degrades).
If you want something done right, you have to do it yourself. That goes for hiring and culture in addition to technical implementations.
You might be missing the dot com boom in your analysis. MBA types flocked to the tech sector looking for those IPOs, a trend that I suspect has only grown stronger since.
I feel like the insane ponzi scheme of our housing market does this to everyone eventually
I'd rather die than become that. And there were plenty of Googlers there just chilling making good money. It's the mid level managers that were making around 500k eyeing up the 1MM comp packages that were the problem.
How many number of hours is chill? 4? 6? 3?
5 or 6 most days. I’m of course happy to do more in sprints when duty calls. Working at 100% is fun - as an exercise. Like training with weights on. Maybe your site gets DDOS’d. Maybe your database has a critical issue. As long as you’ve done some prep these are recoverable issues. And solving big problems tells you and your boss that you’re important.
But honestly most of the time I’m able to take my best thinking hours of the day, put those into the job, and get 90% of the output with much less than 90% of the time. The worst thing you can to is try to fill the time and create a bunch of tech debt. Artificial time scarcity keeps things lean.
Heh, it was a small startup. And then there was a $x0 million seed round and suddenly we became a much larger startup. When we hired a bunch of business/management-type people who had all worked together at another organization they imported their broken culture. (We were able to hire all of them because their previous organization had had a significant layoff... and for the record I had nothing to do with their hiring, they all just kinda showed up one day)
My current startup is doing well and got a pretty big round of financing, so now we're hiring a lot of people.
That's not the main reason I'm quitting this week, but it definitely helped the decision!
This is a very common problem in many orgs. Spending time (adding meetings, exploring various options, etc.) is completely fine while spending money is a huge deal because of the emotional connection to money that many people seem to have.
Imagine, holding a 2 hour, 10 person meeting to decide if an additional one time $1000 cloud expenditure is warranted. Yet, this happens all the time. I can assure you, that this is not how shareholders or customers want you to spend your time.
A lot of this comes down to budgets - those 10 people have a fixed salary so there is no visible cost.
Those costs should be made visible as they are real. The price of each meeting should be included in the agenda.
If salaries were transparent and queryable this could even be a Slack or Teams plugin. But most org cultures would never dare expose salary imbalances like that.
There is this project: https://github.com/syncfast/clockwise
Have you seen this done anywhere? I have to wonder if it would even have any impact
I work in embedded. When I told my boss I was leaving he asked what the other company was offering me - compiler licenses. Without enough each firmware build took 40-60 minutes. With enough, 10 minutes.
hey! would love to hear your experience about this. we’re building a system that should help alleviate this pain when developing embedded systems. emails / cal link are within my person site on bio!
We were using a CPU core vendor's compiler with flexlm licensing(well, Edison Design Group frontend and proprietary backend). We kept using it for ages because it regularly beat GCC due to some issues in GCC with register allocation and instruction reordering that only microchip seems to have ever fixed.
A traditional makefile like setup would only build one compilation unit per compiler invocation.
Each compiler invocation requires a license checkout over TCP. This was badly impacted by Nagling and delayed ACK. The license server was not managed by engineering rather the IT department so we were unable to get them to enable TCP_NODELAY.
Multiprocess scaling was challenging - you could give the compiler multiple compilation units, but sometimes doing so would effect the order of things in the object file, now you lose reproducible builds. These seemed to always be minor things that didn't significantly effect the executable, but rarely you'd crash the compiler and all its jobs would need restarted on the next rebuild.
For those of us batching our compiler invocations for local development builds, the last straw came when an ops team unfamiliar with the tools was put in charge of license management. They started kicking out license checkouts beyond a few seconds in the name of fairness. Build times increased further, but license checkouts per second went up so they thought they were helping.
Eventually I realized it wasn't the 1970s anymore and since I no longer smoke I was bored out of my skull just waiting for timesharing computer to compute again.
Several teams did move to GCC when it got bad enough - hand tuning loops and such when needed.
Probably shouldn't've had so much code in headers - APIs had a lot of dependencies and when I needed to change CompanyName.h, I was in for a few 90%+ rebuilds.
It was a combination of: not my problem, nobody's problem, I got mine, codebase is already like that, death by a thousand cuts, we've never better so how can you say this is bad, network latency.
It’s crazy that in 2024 we are still struggling with the kinds of things highlighted in your comment. Almost all are self-imposed pain, too.
That's a great story of sticking through a really tough situation and figuring out how to make it work. Honestly most of these stories end with "it sucked and then I quit". Which, fair, but not as interesting
Most stories end that way because that is the only logical thing to do. Trying to fight an organisation with a terrible culture is a sisyphean task that consumes time and energy that could be spent making stuff.
Some organisations (like the one I'm working for) seem to be run like a dystopian daycare. Stay in your box, be "respectful", don't complain about your terrible manager, don't complain about the hoops you have to jump through to get even the most simple or meagre of resources. The internal communications are heavily monitored and that has a chilling effect on cross-team collaboration.
They have even weaponised their "culture" in a way that coddles the offending teams in the structure and still direct blame for missing deadlines at the victims rather than the perps.
There is no fighting this. My small team are all aggressively looking for new jobs which is a shame because they are a tight crew with great skills who have now been beaten down as far as they will go. A great loss to the organisation when we walk too, all that institutional knowledge gone.
Different strokes. For some people, the desire to “build stuff” extends to building (improving? refactoring?) the organisation. For some people, tech problems that are just tech problems is, creativity wise, like eating meatloaf through a straw. Myself included.
Yeah, that definitely played a part in it. I was employee #2 and had built an absolutely amazing culture in the team that I ran. I stuck it out in large part because I loved how well we worked together. The project was cool, too, which helped, but not wanting to abandon the team of fantastic young engineers I'd pulled together was the thing that kept me fighting.
I semi-jokingly-but-not explained to them what a Shit Umbrella was and that while all of this was going down I regretted not being as available to them as I had been, but that I was doing my best to give them an environment where they could keep doing the amazing work they'd been doing without getting dragged too much into the bog with me.
I noticed something similar on a project I was on. I was given the task to supervise external contractors but given no authority to tell them how to do things. I basically had to convince them with arguments. Well predictably it's pretty hard to convince somebody that they are wrong but it's nearly impossible if it will also cut the project time in half which means it will cut the money for them in half. So naturally there was quickly a quarrel because they wanted to keep doing things badly and it was my assigned job to prevent exactly that. I was eventually overruled by my own management though because I can't compete with several external project managers whose entire job it is to talk their way into more money. They were willing to outright lie and there was no incentive to believe me vs. believing the supposed expert contractors.
Had a similar thing. Ex Company hired outside agency in order to deliver big feature on time. Lead guys in agency were sweet talkers and they were lying to C level executives(they believed them because of buzz wording). Agency overcomplicated the system with microservices, kubernetes, etc. Everything ended up more complicated and slower. Whenever you tried to suggest something they would just speak in private with CTO and you would get shushed. Half of our original team was moved to other projects because agency "new better". I quit and it was best decision
This reminds me of a situation which I'll label "satellite office syndrome" - which is where a company has a large/dominant Head Office, and smaller regional offices which are in a permanent state of playing second-fiddle in terms of funding, attention, respect and company culture.
This is as true with products as with locations. For example, the people doing S3 at Amazon get everything they need, because that is a blockbuster product...and the people doing, oh I dont know, Greengrass IoT are waayyy down the totem pole even though it might be a perfectly profitable product.
Large orgs tend to have a Roman Empire feel to them for most of the people, most of the time. You're stuck out on the edge of the empire, minding Hadrian's Wall, proud to be a Roman but also far, far away from any influence over or interest from the Emperor. If you are lucky they leave you alone. Occasionally a missive arrives from Rome that you have to decipher and implement no matter whether it makes sense or not. Fun times.
I thought that metaphor would go in a different direction, tbh. I was thinking “praetorian guards”, “imperial decline”, “decadence”, “barbariand resettling inside the limes” etc.
I think the primary idea of a small team is that it is self-sufficient and avoids the N^2 problem associated with everyone talking to everyone.
N choose two, not N^2. The latter double counts and also counts people communicating with themselves. For example, with 2 people, it is not 4 paths of communication, but just 1.
N choose two is n*(n-1)/2, which yields the right answer
In asymptotic analysis, they are the same. Except, that analysis does not make sense, asymptotic refers to the growth of the function as values approach effectively infinite
Also a fundamental property of small teams (which can be good) is you can only commit to so much.
You absolutely know you wont ever build a lasting bridge with a six person team, but you could ford a river. This type of stuff is ok when you are in startup mode but doing this long term at big companies creates a lot of existential risk that could be mitigated by better planning.
This is a tradeoff some people make knowingly (like the posthog post clearly lays out) but as usual this "2 pizza team" is cargo culted way too hard.
In many cases I see the product folks with the same vision regardless of the team sizes or org fit.
Put another way there is only so much you can do with a small team—and a small company. Things change as you grow. You can do more/bigger things but efficiency almost certainly takes a hit.
That's when you need an advocate in upper management. You aren't going to get shit for funding even if your PM is well liked and your product idea is well thought out and solid. Someone in the circle of the one who signs the checks needs to be able to talk about your product like it's the next best thing. They also need to have the connections with their counterpart at the customer's offices to be able to sell the idea to their boss, "I've heard that company X is working on some new development for Y. If we invest, we could get first dibs on using it in our flagship product." Good ideas need to flow up to be given money. Likewise, Ideas that flow down almost always end up being a boondoggle, "Let's make a box that does X, Y, and Z, get the engineers on that right now!". If your good idea doesn't have an advocate, it will die on the vine and someone else will do it instead. What's the point of spending a bunch of money investing in an idea when a competitor got customers to invest in R&D for the same idea for free? Unfortunately, your advocate is probably not going to be a technical person. They won't understand the bits and bytes that make it novel, they need a soundbite that they can easily regurgitate ("We can shrink the current production design to draw X% less resources for the same or less money.")
You could be the smartest guy at the company, have the most well rounded team, have a PM that orchestrates people like a symphony conductor, and have a huge idea that would make absolute bank for the company but your idea won't matter for shit if you can't sell it.
If you are essential to the company, it is on the company to give you the resources you ask for, or they are asses. If you have to waste time fighting for them, to the point where work can't get done, that is their problem.
If you are non-essential to the company, then it is on you to start looking for a place where you will be essential, either internally or externally.
But the advantage to being blocked all the time is that you can then go find other places to add value. Having impact outside of your small team is huge when it comes to performance reviews and promotions, especially if it’s self driven. But you can’t do that kind of stuff if you have other high priority work in your teams backlog that you can freely pick up.