You think it's hard trying to find good programmers? Try finding good managers.
You think it's hard trying to find good programmers? Try finding good managers.
There's an ambiguity in the word "good": it can mean skilled, but it can also mean ethical. Personal ambition and greed can turn any organization dysfunctional, even if everyone is highly skilled. And you can't really blame individuals within a company for wanting to make as much money as they can, because that's more or less the point of the company itself.
As far as management is concerned, smart ethical people who are inexperienced will eventually become better at their jobs through experience, though this may involve a lot of trial and error. But in a certain important sense, smart unethical people will never become "better" at their jobs.
By the way, I personally don't think it's hard to find good (skilled) programmers. Companies make hiring a lot harder than it needs to be. Despite my years of documented excellence and my success as a self-employed indie developer, I'm essentially unhireable by most companies, because I'm not good at, or indeed willing to devote myself to, jumping through the arbitrary flaming hoops they set up to keep people out.
Perhaps this is an ethics problem too. Everyone seems very concerned about candidates who lie about their résumés. But for some strange reason, companies are exclusively focused on trying to evaluate the skills of candidates rather than evaluating their ethics. Here's a thought on this subject: companies practically demand that job candidates lie to them about the reasons they left their previous job. The truth is that a lot of people quit because their previous manager was an idiot or an asshole, but nobody is allowed to say that in a job interview, otherwise you'd be immediately rejected as someone who has a "bad attitude" and is not a "team player". In other words, playing along, having a "good" attitude, means lying.
I can't overstate how difficult it is to say "no" in the moment, and do so in a way that doesn't make you a problem and target in senior management's eyes.
Amen. Having HR set up some bullshit criteria and resume robot to presort your candidates, then subject the ones who fall through that sieve to stupid gotcha programming questions is an amazing way to develop the attitude that it’s “hard to find good programmers”
I hear people complain about this type of stuff all the time but based on the tests and challenges I've received they're reasonable. I've never been asked by a potential employer to do anything I didn't consider trivial or close to trivial. I've done some quizzes with easy questions (though the recruiters were very impressed that I aced them, apparently most don't come close), I've done a technical interview where I implemented a simple vehicle registry based on stubs and tests, just basic C# programming (I didn't even know C# when I did it, I knew Java) with basic data structures. A friend of mine had one where they were asked to implement a very simple frontend that gets some data from SpaceXs graphql api and display it in a table.
All of these are completely reasonable expectations for a competent developer. I could easily complete all of them as a fresh graduate with no work experience.
I understand not everyone is this reasonable, what I'm saying is that I think these kinds of simple exercises are a reasonable way to eliminate candidates who actually don't know basic shit you would expect them to know. There are a lot of them, even with degrees.
It's pretty much just bias. I'm biased towards these tests because to me they're trivial so it benefits me that I get an easy way to stand out. I also wouldn't want to hire anyone who can't do simple basic programming tasks, so I sympathize with the employers in that regard. On the other hand you have people who are mad because the tests reveal their incompetence.
When I hear "technical test", I don't think "reasonable implementation", I think of the interview I was in where I was asked a moderately difficult graph question, I reasoned my way to the solution from scratch, then got cut from the process with the explicit feedback that I should have recognized Djikstra's algorithm and had it memorized rather than needing to derive the correct solution myself (!!!)
(that still blows my mind, apparently being able to understand the problem and derive the correct solution is worse than memorizing it)
Your mistake was that you thought they wanted someone with creative problem solving skills…when what they really wanted was a parrot.
Given the choice between someone who will have ethics and someone who will make money unethically, companies will choose the latter every time. And the people who are willing to be unethical to get ahead are the ones who get rewarded internally once hired.
I didn't assert that. To the contrary, I said, "But for some strange reason, companies are exclusively focused on trying to evaluate the skills of candidates rather than evaluating their ethics."
Can relate. I was also a very good manager, but hated the job, and no one was interested in hiring me as one, anyway, (lost at Buzzword Bingo, yanno).
These days, I do my own thing, writing free software for folks that can't afford people like me, and I'm really happy.
I suspect that it actually is surprising for some people, but based on the emails I get, it's mostly cathartic because so many engineers spend time being told by management that they're imagining all of this. Because, as you've said, it's super hard to find good managers.
I find the author's dry sense of humour quite amusing, and I feel for them because I've been there. Most of us have been there I expect. I would say that feeding this mindset is likely to lead to burnout in the long term.
A lot of these issues are as inevitable as they are utterly confounding and at some point in your career I think you need to find that sweet spot where you can do your best work without having to push back too hard against the organisation. If you can manage to find that peace of mind then you're golden, and if you're lucky you can stay in a positive mindset or at least delay the onset of Jaded Greybeard Syndrome.
Secondarily, why should the author continue to fix things like this when they don't benefit, but others responsible are also not facing any consequences?
Loyalty to a company isn't rewarded today the way it used to be, so you just have to take that experience to a company with a better proposition at some point.
I think that people are looking at waste in a wrong way. It's relatively easy to point out inefficiencies in a working system. What's harder is organizing a working system. Energy and attention are finite on many levels, and this is true on the organizational level too. Let's pick an example of a computer game. Games are usually riddled with performance problems, in fact, I think that it's hard to find a well-optimized game. Yet many of these inefficient games provide good fun for a lot of people. As it turns out, engine efficiency is not a top priority for a game, there's much more to it, like the game design, level design, and the context of the game, which is marketing, timing the release, setting the price, and so on.
Being a good manager also means shielding groups from other groups and making yourself the filter so you aren't wasting productive peoples times in endless meetings that are generally for other groups to show they are working to the wider company. You also have to provide a non-technical analysis of the internal state of the product/teams/tech to people outside your team. Those are the two hard things, everything else should be figuring out how you can make your team operate at it's highest levels without burning people out and hating their job.
1. Shielding the group 2. Provide non-technical analysis of the group/state of product 3. Remove road blocks 4. Provide resources
The industry that you are operating in seems to be adapted to the (4) principals you laid out.
These days? The utter majority of workers are just another instantly-replaceable gear in a gearbox of madness, working for people on the other side of the globe no less - the exception are the few tradespeople and small shopkeepers that survived industrialization and Walmart/Amazon, and startups up until 100-ish people where the employee stock grant issues tend to get stopped.
As a result, a lot of tech leads are engineer->management conversions who just haven't made the leap yet.
And thats how it should be - folks with a technical background doing the management of technical people and work. How can you even manage that which you dont understand? Ticking boxes and measuring output is not management, that can be delegated to a script and graph charts. To manage the delivery of a technical project you need to understand the technology behind it - in an equal amount to how well you understand communicating with business stakeholders and balancing business and tech needs. And no, taking a udemy course in programming python doesnt mean you have tech experience, equally taking a udemy course in agile doesnt make you a manager.
Unless you’re an expert at literally everything, there is something in your life that you have to manage that you have no expertise in.
The typical way these things are managed is through measuring outcomes rather than focusing on how the work is performed. Tools include setting goals and milestones, auditing, cost bidding, reputation, etc.
So your assertion is that every leader who is not expert in literally every function performed in their organization is “incompetent”.
And measuring outcomes is “cope”.
So, say, if I need to consult a physician I’m incompetent because I should be an expert at managing my health. If I feel better after visiting a physician that’s “cope”.
This seems unnecessarily limiting. There are so many things I’m not an expert in yet I’m responsible for. I can’t just resign from having my house repaired because I’m “incompetent”.
I’m talking about leadership here, not living your own life. Obviously you aren’t going to have the same expertise as your doctor. That’s why you shouldn’t be running a medical practice.
In reality, much of the health care system is managed by incompetent bean counting administrators rather than actual experts, and that’s a huge problem.
The other side of the equation is that, at least in my experience, the best doctors are the ones who encourage and enable me to become an expert in my own health. If a doctor isn’t able to explain things to my satisfaction, I’m reluctant to trust their judgment.
> I can’t just resign from having my house repaired because I’m “incompetent”.
Nor do you want to be the guy who takes his car in for an oil change and gets billed an extra $100 for “replacing the headlight fluid.” When it comes to house stuff, the professionals are going to be better equipped and able to do the work faster than you are, but the basic principles behind how your house works shouldn’t be total mysteries to you, and if you pretend that you never have to bother learning about that stuff, you’re going to get taken for a ride.
What I stated at the outset is that the best managers “develop expertise in everything they have to manage”. You’re obviously not going to start off with all that expertise, but that doesn’t mean there’s a substitute for developing it. The idea that you can come into a field you know nothing about with zero expertise and be an effective leader by “measuring outcomes” is a fantasy. If we want to measure outcomes, let’s measure the outcomes of that philosophy. How many manufacturing or tech companies that used to be run by engineers continued to be successful after they were taken over by non-technical MBA’s? How many astronauts have died because NASA management lacked the expertise to understand and appropriately respond to the objections of the engineers who reported to them? Are American universities more cost-effective now that they’re run by administrators than they were when they were still run by academics? Is medicine better when treatment decisions are made by physicians or by HMO bureaucrats and government regulators?
I felt like there was so much on-sides violence against developers in the comments.
Where-as the I Saved submission was was such a great post about an org rotting out, about how jumbled stuff gets.
So much of this chaos & madness is organizational far more than it is individual, imo. Having a broader picture and context is hard. Having specific insight for squads facing specific issues is hard. I agree so much, it's really really hard to maintain a large org, on so many levels (including technical levels).
Well, one very healthy rule to organize people is that people are responsible for their mistakes, which has a long-term effect of having less mistakes instead of having them covered under the carpet and still biting.
By the way, can you give a concrete example of a team mistake being org-level win? I rather think that incompetence is always a loose.
> to organise a large group of people towards any common purpose, let alone profitably, let alone efficiently, especially in something so relatively new and little-understood as tech
...I don't think those are good examples. The very sympathetic recent bio of Musk details a lot of dysfunction in those organizations, and they largely achieve anyway by leaning on The Mission, working people harder, driving burnout, and then discarding them.
A troubling question I often ask is: is it possible to do big things in a healthy balanced way? Or is greatness intrinsically a “Moloch” that demands human sacrifice? (That imagery was inspired by the 20s film Metropolis that touches on this question a little.)
If the latter is true then I don’t think this bodes well for the future of our species. It means we either die in the fire of our own striving or we die quietly in mediocrity, but either way we die. There’s never a lasting positive outcome.
BTW Elon Musk himself looks an awful lot like a victim of his own burnout culture. I suppose you can give him credit for taking his own medicine.
Would you say Monet didn't do great things because he only produced on average about 3 paintings per year?
We are simultaneously pulling the buggy, riding in it, and whipping ourselves to go faster.
Is that necessary? I know 'Agile' isn't cool anymore, but at the heart of the Agile Manifesto is a suggestion that every contributor on the team should share in the management role rather than having a dedicated manager. Granted, it also suggests you need motivated people.
Yes, it is.
First, you can't expect everyone on the team to have all context on everything. That would be an incredible waste of everyone's time. Second, even if everyone did, in most cases the individuals would disagree on priority -- someone needs to be the final arbiter.
In practice, few people will make the "best decisions". They will often rationalize what they want. A leader needs to be there to "check" those decisions.