What Silicon Valley “gets” about software engineers(blog.pragmaticengineer.com) |
What Silicon Valley “gets” about software engineers(blog.pragmaticengineer.com) |
There are probably a ton of jobs where people work just as hard as engineers but are treated as little interchangeable boxes by the money people.
Other office jobs are treated better. They don’t get pinged at random times outside of business hours. They don’t have to attend late night meetings because of foreign time zone
I know a bunch of AWS people and have heard worse things from them
Frankly, I love programming but would rather have a regular office job. This industry is predatory
Just like I know lots of developers that don't.
What a weird generalisation to make.
That combination of needing talent which is in short supply and being essential.
Obviously there are reasons for this, but it seems to boil down to broad generalizations in how the C-Suite sees your role, and very little in the particularities of the org or employee.
You're treated well because you have the potential to deliver multiples of what you're making in revenue.
Other office jobs rarely can do so.
That means that sensible places will happily pay you a lot and make money on you, and that will prop the entire market up, which means even crap places will have to pay more just to get some developers.
Architects build houses.
Software engineers build whole cities, and they exist only in their minds! (i.e they can’t even see them, they’re just abstract concepts of enormous complexity)
Got some good examples?
They're paid in proportion to how much unique value they gatekeep.
Hence why Silicon Valley's masters were so keen on everybody learning to code in primary school and getting more women into the profession. They dream of making us more of a commodity, so that as the chief gatekeepers of the tech economic engine, they get to keep a larger slice of the pie we create.
The best places, in fact my current role in an SV-adjacent tech company, encourages a kind of consulting approach to help define and solve business problems, not just JIRA tickets. This results in much better engagement with engineering overall, and getting better things built quickly.
Would love to find a company like this again, past two roles were JIRA micromanagement shops and actively discouraged talking about anything.
You could also look at this the other way.
They are the ones doing the real hard work i.e. making tough decisions, dealing with stakeholders, incomplete and poorly conceived requirements whilst you just get to build what's written down on a page.
Everyone plays their role in companies and assume they are the indispensable ones.
Mostly they just pass those things on to the developers to deal with. Then we have to figure out how to bypass them and communicate with the stakeholders ourselves to figure out what the real requirements are and what we can build which solves their problem and yet is still broadly recognisable as the specified deliverable.
After that, coding it is easy.
This was a UK retailer, the other two were “tech” companies.
The retailer operated in the way the article describes, direct contact with the business, ability to unearth a problem and run with it, understanding that dev work isn’t just fingers on keyboard and sharing of full business context.
The other two had strict comms lines, not allowed to stray from the Jira board, rarely any contact with the business or users and no sharing of business context because “we don’t want to distract you” - completely missing the point that without the contact you rarely understand what the point of the work is.
The best projects, and when I'm most efficient at work, is when someone explains the input and describes the desired output in as most abstract way possible.
Having worked with teams which have preferred to work in as pure a technology environment as could be constructed while still providing value, I think this might be the "product focussed" (or not) distinction that people make about themselves on their CVs.
Those who don’t like that work environment (so would prefer the latter two of my three dev jobs) would be tech focussed in my book.
It’s all semantics though
At the core of the difference between "traditional" and SV type companies is a fundamental difference on how they view software developers (and I am firmly in the non-SV camp myself): are they engineers or not? In SV, yes. For almost everyone else definitely not. And there lies the problem traditional, engineering heavy companies have integrating software.
that does cut both ways so, most of the SV-software engineering practices are simply as incompatible with hardware engineering as hardware engineering practices are with software development. And for most non-SV-pure-software companies, any piece of software is just another part number in the final product configuration, in that environment, software developers are nothing special. And it takes a special kind of software developer and company culture to properly manage that.
That being said, I agree with the articles conclusion. And I'd add that hardware engineering could benefit a lot from treating their engineers the way SV does their software devs. I do have a question so, where does all that significant horsepower of SV companies go nowadays? From the outside, it seems to go into ad tech, social media (with the aim to sell more ads), crypto (nothing to show for besides bitcoin and ethernum as new stuff to speculate with when gold isn't fun enough anymore) and "AI" (the latest hype which still has to show some real world benefits).
The true innovation to come needs a combination of software and hardware, each bit for itself got as far they could. There isn't much world left software can eat without some allies, at least until the next cycle repeats.
But at (SV startup company) this caused at least for my team complete chaos, what should we do, who should be doing the integration, talking to customers, why are we doing this.
Usually at SV startup company I was like 2-4 times more productive, but often output of my work wasn't really significant, as in traditional company so small dumb feature was raking in money and really improved large customer base.
For most organizations "IT" is just a utility. While information flow and processing is vital for most businesses, the control of these particular "means of production" is not deemed central to the business model. Like the provision of electricity, water etc, it is a stylized something that happens in the basement or outsourced. The C-Suite is clueless of digital tech and will at best include some tech consultant types rotating in and out.
In fact the very strange period of tech we are going through is a testament to how the alien forces of this new landscape have turned everything upside down. Google, Amazon, Meta are not "tech" companies. They are advertisers, retailers, publishers that have made information flow and processing central to their business model (and for now at least, have cornered the market).
What is mildly interesting though is that there are many major sectors where information processing is 100% what they do (finance and insurance the easiest example). A universe where the information market is cornered by, e.g. banks is actually less absurd than one cornered by advertisers.
With the above framing, the role of developers in decision making etc. is in reality just an epiphenomenon and circumstantial. Form follows function and it is the functional difference (what the company does) that is the driving force in organizational matters, remuneration etc. This also gives you some hints as to when things might change: When senior industry personalities are equally comfortable both in digital technology and the details of the particular sector they are in.
My underlying theory is that software is how we map what is happening in the real world and represent a model of it in computer(s).
Great Software engineers have this amazing ability to represent this and write computations that can reason on top of it for effective decisions.
Whether it’s dashboards, social network, extracting patterns from data, advanced electric cars with autonomy, mobile phones etc.
If you can use the power of computers to do more of what is happening in the human brains to create economic value, then that is a highly leveraged engineer.
Regular office jobs don’t have oncall. They don’t get randomly pinged outside of business hours. They aren’t as rat racey. There’s less ageism. They don’t force you to live in areas where a shitbox sfh costs more than 2mil
Seriously, I wish I could go back to undergrad and tell myself to go into a regular engineering field. And my experience isn’t even the worst I’ve heard, just ask anyone from AWS and they’ll tell you
It can be a good economic / stress tradeoff but it will suck your soul.
Left job with a unicorn because of stress, I make more than double that by contracting with smaller businesses and working less - but I'm way more depressed about the job.
I think a happy medium might be to run your small product company. I do that on the side as well, but it brings 1/10th of what I can make contracting.
Or if it’s the case that you’re actually doing that work behind the scenes because the output from the PMs isn’t very useful, have you looked for ways to make your contribution more visible?
Why is it bad that more people learn to code? I see this as a net benefit to humanity. Why do you want to gate-keep it?
It really was to put the prices down and benefit themselves, not to benefit humanity overall. They would never encourage people to learn mental health providing, physical therapy, exercises for their own health, they don't actually care about those.
A glut of coders only is good for the coders if there is enough overall business to keep them actually employed somehow. Otherwise you have a lot of people who don't spend time coding.
It was a positive statement. You're free to make whatever normative judgements about that that you please. I'm not here to stop you praising it.
We studies fairly advanced CS at school, without the 'tech oligarchy' making us (in Europe where this is non-existent anyway) and yet very few of us turned it into a career later in life because not everyone likes to do programing for a living and there's other lucrative jobs out there. Same at university, less than half of those who entered, managed to graduate in CS because it was tougher than people initially thought.
Cook, Zuckerberg, Musk and Bezos can't turn you into an productive CS if you don't have what it takes, they can't download CS theory into your brain like in 'The Matrix'. In fact, many of them are responsible for dumbing down the population when it comes to computers, so I guess we can actually "thank" them.
Only the last ~6-10 years saw an insanely large number of people get into the industry without CS background because of the super high demand driven by the mobile revolution, negative interest rates, crypto hype cycles and stuck-at-home pandemic, and not by the 'tech oligarchy'.
But that was potentially an once in a lifetime event which might never come back. The mobile market is now saturated, crypto is done, people are not stuck at home anymore and the negative rates are also over, plus a trade war and an actual war, meaning an industry slow down, but again, not dictated by the 'tech oligarchs' and more people choosing CS careers, but by market, geopolitics and financial circumstances.
You can argue with that or not but don't pretend you do not understand the capitalist ideal of an excess supply of labour so that salaries and benefits can be driven to legal minimums with desperate people still waiting to be hired no matter the indignity. Creating Labour surpluses to reduce Labour power and enable exploitation is not a "net benefit to humanity", it only benefits capital.
In our shitty world, you are only valued if you are in a position of more demand than the supply. You might get that by being lucky but most only get it by gatekeeping whether it's doctors or delivery drivers or companies buying up their competitors. If you stand idly by, the world will punish you.
Oh please, don't act so 'righteous-than-thou'. With this logic, aren't we all here who got into SW development responsible for increasing the labor supply and decreasing wages?
What's disingenuous, is people in traffic complaining there's traffic. It's sounds like you got "yours" and then you wanna kick down the ladder behind you.
Where does the buck stop? Who gets to decide who's deserving of getting into SW development without also being responsible for diluting wages, and who not?
> We find evidence that industry and size adjusted CEO pay is negatively related to future shareholder wealth changes for periods up to five years after sorting on pay. For example, firms that pay their CEOs in the top ten percent of pay earn negative abnormal returns over the next five years of approximately -13%. The effect is stronger for CEOs who receive higher incentive pay relative to their peers. Our results are consistent with high-pay induced CEO overconfidence and investor overreaction towards firms with high paid CEOs.
https://www.wsj.com/public/resources/documents/CEOperformanc...
Employee compensation vs Output:
https://www.bls.gov/opub/btn/volume-6/pdf/understanding-the-...
The CEO can tank a company (in fact they frequently do)
An engineer certainly has more power than average to sink a company (isn't half the star wars story pretty much this?)
Cleaning personnel does not
Of course you may not have had to study as hard, so your quality of life as a young person might have been better, but bartending is not secure income for life either.
Either way, the easiest way to look at it is, do parents tell their kids to aspire to become bartenders?
The problem is that it is a fundamentally unfair game which requires some people to lose. If you want a solution then it's to remove desperation from the labour market. Remove the implicit threat of destitution and ruin if you don't take the work that is offered to you at the minimum cost an employer can get away with. This is what takes people to ideas of basic income and basic services.
Theres an interesting pattern here of us making positive statements and you inferring normative judgements which then make you upset.
That sounds incredibly elitist and cringey. If I had a child earning six figures as a bartender I’d be very impressed, and even if they weren’t earning six figures but were enjoying life I’d be happy… And taking it from another perspective, I know people who’s parents would be disappointed their children are ‘lowly software engineers’ too. With that sort of attitude you can rarely win.
It is a rough rubric to gauge an average quality of life for a person who does a certain thing for a living, not that parents or even entire generations of parents are always right about the continued resilience of a given occupations’ quality of life.
At the end of the day, take home pay is one metric we can actually compare, because different people want different things.