> Maybe in the quarter, but not long term. It's a sustainable strategy if you've monopolized the market though...
It's also a sustainable strategy if the market has become so distorted that it's difficult for consumers to distinguish the good products from the bad. This is a pervasive problem these days. It may still be the case that a good pair of boots will last you 10 years, but how can you tell which pair is the good one? There are 10,000 brands, all of them have 4.7 star ratings because of bots, most of them have a picture that looks nothing like what you'll receive, and if they wear out in two years you'll have no recourse because the brand was just a facade over a "ghost workshop" that's now producing the same crap under another name. Trying to vote with your dollars is like pushing on a rope.
> When in reality, if you have a lot of "rockstar programmers" they should be able to mostly manage themselves.
I'm not so sure about this. There are many people who are good at doing things but not at organizing that activity in a coherent way (especially across a team). Also when the people doing the "real work" are also managing, they often have a tendency to give the managing short shrift because they'd rather do the "real work".
I agree we could do with a lot fewer managers than we currently have, but I think we do need some. (And this isn't just about software, it's about companies and organizations in general.) But I think we would be better off with more democratized company structures where the managers' power ultimately rests on the consent of the workers, so that when you have these clashes that currently result in "half the staff resigned in protest" they would instead result in "the CEO was fired due to lack of support from the staff".
> if the market has become so distorted that it's difficult for consumers to distinguish the good products from the bad
If you didn't know, there's a formal name for this: Lemon Markets[0]. Which yes, I agree. I think it is an accurate description of tech. Even among techies now. Hell, in that other thread[1] we seem to be talking to programmers who think we're omniscient and can generate bug free code (I'm still absolutely baffled by this). So tech literacy seems to be low even among the "techies".
> I'm not so sure about this.
I actually agree with you. I probably didn't phrase it well enough. That's a bit what I was trying to say when saying you want to prevent them from going down too may rabbit holes. But I did also want to subtly reference to Mervin Kelly, former director of Bell Labs. When asked "how do you manage genius?" his answer was "you don't"[2].
So I do agree that we need managers. Their job is to validate direction, ensure people are able to do their specialized job with minimal interruptions, and all that jazz. I think we often confuse "speed" with "velocity." The experts know the direction things need to go, but a manager's job is to ensure that those vectors are aligned across teams and aligned with the company goal. But we also get confused with thinking the goal is "to make money" and not differentiate it from "to make money by producing a useful product.". It's easy to drop that part off, but doing so shifts your customers from those that purchase your product to "shareholders". Even if shareholder price is based on people buying your product...
> If you didn't know, there's a formal name for this: Lemon Markets[0]. Which yes, I agree. I think it is an accurate description of tech.
Well, but I'm saying it's not just tech, it's becoming everything. (Unless by "tech" you mean "tech has made all markets act this way".) I guess one way to look at what I'm saying is that online marketplaces are inherently more "lemon-leaning" because the buyer's ability to assess the quality of the good is inherently limited (since they can't actually see, touch, or use it).
Interestingly the "solution" that e-commerce seems to have settled on is "free shipping with free returns". This limits the damage of buying a lemon, since the customer can just send it back. But it creates a sort of moral hazard for both buyers and sellers: the buyer has an incentive to essentially operate like a spammer, selling crappy goods just on the off chance that a few won't get returned; and the seller is encouraged to just buy willy-nilly since they can just return anything that turns out to be crap. This generates an enormous amount of waste and churn and exacerbates the downward spiral of the lemon market.
> But we also get confused with thinking the goal is "to make money" and not differentiate it from "to make money by producing a useful product.".
This is the crux of the issue. I don't see that as an issue of "management" really though. I mean it is an issue of management but at a higher level, in the way the executives manage the whole company, or the way the board manages the executives, rather than the way mid-level managers manage actual workers.
But ultimately it's an issue of values. As you say, too many people have drifted away from any value system that would place any kind of constraints on "the goal is to make money".
> I'm saying it's not just tech, it's becoming everything.
I'm in agreement with you. I've said in the past on HN that I think we've created an economy of lemons. So you're not alone. I think tech has definitely facilitated this[0,1]
> Interestingly the "solution" that e-commerce seems to have settled on is "free shipping with free returns". This limits the damage of buying a lemon, since the customer can just send it back
As far as I'm aware, Amazon doesn't really practice this anymore. I wouldn't call it "free" as the shipping is amortized into the price now (a lot like credit card fees). But also my understanding is that if you send stuff back enough that they'll ban you from doing this.
Not to mention that the inconvenience itself creates enough friction that people are just more likely to keep garbage. Especially if it is very cheap. I think this was also true with physically purchased items but just that the rate of "false positives" was lower since you could physically inspect them.
> This is the crux of the issue. I don't see that as an issue of "management" really though.
It is definitely a complex issue and I don't want to create too much simplification. I agree that it goes all the way up the chain, each step having more and more slip.
But I think something that is more actionable and that we as the developers and engineers can address is recognizing that we had a shift in culture. There used to be some contention between the managers and engineers. It was adversarial by nature. While I think that creates friction, that this was a beneficial feature, not a flaw[2]. To be a tad over simplified, the engineer's focus is on the product. When push comes to shove, profits get sacrificed in order to ensure the quality of the product. On the other side the business people take the opposite role. This contention helps navigate the complex setting where we need to create good products but also stay in business. If the engineer gets to much weight then the business goes under while trying to fix all the problems. Perfection cannot exist, so the endeavor can be endless[3], and the business fails. On the other hand, if the business people have too much weight then they'll ship the lowest quality product that customers will still buy. The contention often resolved around what "minimum viable product" actually meant. To the engineer, it is a product that generally works in the sense of the intended design. To the business person, it is what the customer will buy.
The shift I've seen is that I see fewer and fewer engineers care deeply about the product. They aren't personally vested in it, beyond a monetary sense. When I've talked to others about bugs which should be reasonably quick to resolve I find more often the response is "but what's the (monetary) value in that?" This is not our job as an engineer! Our focus is on the product. It may be the job of the engineering manager to make that argument to the business side if the solution is going to take long enough, but I've seen this response given to bugs that may take only a few hours to fix or even have a PR already set up! To me, this is insane.
Don't get me wrong, I love that coding pays very well, but that's not why I do it. There's plenty of other ways to make money, and make even more. My cousin sells insurance and spends all his days golfing, eating at country clubs, and makes over $300k/yr[4]. My neighbor is a plumber who started his own business and hires guys starting at $100k/yr and they provide on the job training. There's a lot of ways to make good money. The reason I do this work is because I enjoy the work. Because I can take pride in this type of work. Because I'm good at it. Because I can finish my day or a project and take pride in my accomplishments. But I feel that this is the shift. Coding is not just for nerds anymore. Many coders now care about money first and product second (if at all). The "tech bros". I wouldn't mind them so much if they just didn't need to justify their mindset and interfere with mine. I feel that's part of the problem. They've become the dominant force in the coding world and normalized the exaggeration of their abilities that they believe they are the best. Like what, we send people through months of interviews, to do tons of leetcode and standardized tests to what... end up with shit work? I don't think we're hiring "the best". I think we're wasting money.
I think we fix these issues by pushing back a bit more. Explain why the manager's idea of a MVP is not a real MVP. Support our coworkers who raise these concerns in a meeting. Just a small comment will do. Push back against the engineers who offer overly simplified solutions and promises that lead to tech debt. To remember that we can both make good money and good products at the same time. To remember that pushing back is not disloyalty to the company. That pushing back is in fact loyalty to the company, because we do it because we care about what is being made.
There's no easy fix here, but I think there are things we can do and we should be more open about this culture shift. I grew up dreaming of the Sci-Fi utopia of Star Trek and of Asimov. I got into STEM because I wanted to help create that world. Is that no longer our goal? Do we really believe this goal is at odds with making a good living?
[2] I think we believed it to be a flaw. Certainly management did as it is employees undermining them. Engineers see it as a flaw too because they have to spend time arguing and it is frustrating. Easier to just shut up and get paid, right?
[3] I think all but junior engineers understand this. I hate the phrase "don't let perfection be the enemy of 'good enough'" because the contention was never about perfection. The contention was about what is 'good enough'. The phrase shuts down that conversation, which is an important one.
[4] I don't intend to say his work is easy. It is easy to look at what he does and think he doesn't work hard. But I've seen him in action and it is clear he has honed his skills.
It's also a sustainable strategy if the market has become so distorted that it's difficult for consumers to distinguish the good products from the bad. This is a pervasive problem these days. It may still be the case that a good pair of boots will last you 10 years, but how can you tell which pair is the good one? There are 10,000 brands, all of them have 4.7 star ratings because of bots, most of them have a picture that looks nothing like what you'll receive, and if they wear out in two years you'll have no recourse because the brand was just a facade over a "ghost workshop" that's now producing the same crap under another name. Trying to vote with your dollars is like pushing on a rope.
> When in reality, if you have a lot of "rockstar programmers" they should be able to mostly manage themselves.
I'm not so sure about this. There are many people who are good at doing things but not at organizing that activity in a coherent way (especially across a team). Also when the people doing the "real work" are also managing, they often have a tendency to give the managing short shrift because they'd rather do the "real work".
I agree we could do with a lot fewer managers than we currently have, but I think we do need some. (And this isn't just about software, it's about companies and organizations in general.) But I think we would be better off with more democratized company structures where the managers' power ultimately rests on the consent of the workers, so that when you have these clashes that currently result in "half the staff resigned in protest" they would instead result in "the CEO was fired due to lack of support from the staff".