2,012 karma · joined February 24, 2011
Maybe you are here to make a professional connection. If so, that's excellent. You may reach me personally at:
vb.temp@gmail.com
C, Rust, aerospace, embedded systems, distributed systems. You hopefully get the shtick.This!!
- At every company and institution I've worked for, I've never really been in a situation where two people, even if they have the same job title, are line-replacable for one another (unless they are very junior). Everyone has extremely distinct skills, experiences, capabilities whose value is extremely contingent on the needs of the moment.
- Making rules to make things for fair or transparent has the opposite effect. A major institution I worked for came up with an impossible-to-game, no-human-in-the-loop formula for bias-free and discrimination-free compensation. The result? People with equal responsibilities ended up getting paid _vastly_ different amounts. Similarly, people with equal salaries had vastly different levels of responsibility. I don't think a uniform compensation scheme simply works, other than just negotiating 1-on-1 with staff until agreements are reached, and when it no longer works out they ask Mr. Market.
- A company not disclosing salary already gives you enough information. Unless they are a flagship megacorp with well known salary bands and staff levels, and they are not disclosing the salary, then you know it's not competitive salary.
It's like there's lip-service to things that we as software engineers enjoy about our profession (eg craftsmanship, deep thinking, high-quality work), but it comes across as just throat clearing before hammering in "moving very, very fast". I read that constant repetition of "moving fast" as "you will always have an endless backlog of work that you will nonetheless have to endlessly crank through with all your energy, and our hiring/retention policy only selects for that"
Edit: Also, when a company does not disclose the salary range for the position it actually provides a very useful data point., You can pretty much be sure it's at most average -- but probably less-than-competetive -- market rates. The major and popular tech companies don't need to do this because they have a reputation, but the smaller companies can either show they too are competitive (by publishing above-market rates) or show they do not offer competitive salary (by not publishing their salary target).
A normal part of an interview process is discussing salary, and if they won't give an answer then you know they are not trying to be competitive and it's not worth continuing the process.
This basically sets the scene that anyone can make any logic work and no one really needs to really think anything through - it's all just window dressing for the agenda. We act like it's only Trump that does it but he's just goofiest-looking, that's all.
I thought it was really funny in the picture accompanying the article, an anti-vaxer waved a sign that said something like "Respect my bodily autonomy" - we know where that kind of logic came from. Also, since that group was clearly anti-abortion, we knew it was just really poking fun at the "window dressing" logic that of pro-choicers that it is really about "autonomy".
I believe at the end of the day we've entered the phase of words mean nothing any more, we all just have our agendas, we want what we want, and we'll all just wrap it in whatever bullshit we want.
I'm also reminded of the near daily episodes on reddit, which constantly has threads highlighting outrage over police brutality, criminal injustice, etc. Then, when it's someone they don't like getting crushed by the system, it's a party of joyous triumphalism.
At the end of the day, I believe, we should just not interfere with the market - let market participants bargain and negotiate with each other until agreement is reached.
On a side note, has anyone ever had a job that fits into a job description? All of my jobs where the description might be as simple as "Software Engineer", whether at startups, govt affiliated research centers, or basic mid-size companies have been so idiosyncratic and varied. I guess this is a long way of saying that even if two people have the same job title, they might be doing vastly different work, and far outside the bound of the specific JD.
But given this is mostly a software-centric message board, software engineering and tech in general I have not observed much correlation at all between amount of input (work) and output (profit, success, happiness, etc). The expanse is wide open, the decision-tree of ways to approach a problem is nearly infinite, and choosing an approach to go down almost always incurs an opportunity cost of solving the same problem in a much better way. I've seen this a lot with lots of founders: They are so motivated and have enormous reserves of energy to "work", and while they are legitimately "working" in a certain sense (writing code, hustling for investment, planning business strategy, etc), it's often work that functions like a greedy algorithm: Stuck in local maxima, stuck in ruts, inflexible, etc and having a very hard time pausing, reflecting, and being judicious with their time, energy and focus. I call this the "Bias of Doing Work"
Nearly 100% of the time I was on teams that grinded down to the bone, things turned out poorly.
Nearly 100% of the time I was on teams that have tons of slack time, we absolutely crush it. If you're "busy" all the time you can't reflect, put things in perspective, consider alternatives, etc. It is, exactly as you say, a false economy (probably a better term than work theater, which implies slacking off, which is not what I meant)
I've found the most incredible thing is just to say "no" to things. Not doing things has this fantastic side effect of not causing more work. When you don't do more things, you don't cause more problems, which doesn't need more work, which doesn't need more staff, which doesn't require more money, which gives you less stress, and gives you happier staff, happier customers, and a happier self.
I wonder if I've totally lost my marbles if this kind of thing only makes sense to myself...
First time I was a engineering lead, things were going great, to the point we simply weren't busy... Long lunches, chill days, making good friendships. The younger staff became worried that they weren't busy and didn't have anything to do, because they were so used to always having backlogs of bugs and other random assignments to do. I simply said, this is what life is like when you're good at what you do - you reward good work with pleasantness instead of more work!
A team that crams agile sprints with tons of "tickets", makes features that aren't fully thought out (necessitating more "tickets" to fix them), and has steady influx of general bugs cropping up is perceived to work super hard. People like to see noses to the grindstone and people stressed out.
The team that works carefully and deliberately, does things well the first time, and seems to be moving at a relaxed pace is perceived to be lazy and inefficient. People are offended by this. This hit me hard the first time I was a project lead -- the customer was delighted, the product was steady and reliable, but my staff were super uncomfortable and insecure -- because the project was successful and they did their job well and like professionals, they realized that they weren't super busy. And when they aren't super busy it means they may be on the chopping block - it was terribly depressing. No amount of reassurance that, well, this is what life is like when you're good at what you do really settled anyone.
So, consciously or not, we fill our time with "work theater". We work really hard to write new code that then requires more work to get right and to fix, and with a backlog of work, it looks like we're working really hard. Being always a little behind, we then make the case for more funding, more staff, more resources, etc etc etc... And the cycle continues.
Company B is obviously incompetent, and doesn't make it to the next round.
Meanwhile, company C, barely competent, is perceived to make best use of resources and remain fully utilized. They are received to work really hard. They get not just the initially agreed upon budget but a top off in addition. They have the most profit to compete in the next round.
If company (or individual A) makes it to the next iteration, they know how to manage expectations, stretch the budget, and make a theater of working hard.. thus turning into company C.
After enough iterations everyone kind of ends up like company C. Just good enough to complete the task with estimated level of effort some double digit percentage over the original estimate, but not incompetent enough to flop altogether. It is to this I attribute why software is usually behind schedule and over budget to a reliably predictable degree
At the end of the day, it's usually someone who is paying or funding a task, and someone who will perform the task. The person performing the task wants to please the person funding it (in order to secure that funding). This commonly involves minimizing difficulty and giving optimistic estimates.
People who give straight answers (something like: this is really hard, it will take a lot of time, there are lots of unknowns, and might not be achievable given the budget) won't get the award. Those who overdo the bullshit and give transparently falsely optimistic estimates will not receive it either. So those who fall in the middle do end up getting the award.
TLDR being, model this effect Game Theoretically, where the "blowup factor" is derived from a Nash equilibrium between counterparties playing optimal strategies seeking to optimize their payoff.
Finally, take three companies: Company A delivers a project in 50% of the time, and 50% under budget. Company B fails to deliver the project, after consuming 100% of the budget. Company C completes 90% of the project with 100% of the funding, and only needs 20% more money to finish it. The customer will most likely top them off, because they are so close, and it's a sunk cost.
Who makes the most money? Company C. Who is the biggest loser? Company A (despite being the best). Anyway, for my next trick, I'll explain why this same effect causes agile to make everything take longer, cost more, and make everyone more miserable.
You are not alone with this sentiment.
Some years ago, in my 20s/early 30s-something friend groups, any time the topic of declining female fertility with age came up, it was basically attacked as fake news and a conspiracy by older, conservative family members to get them to breed.
Moreover, sex education in school was 110% about all the wonderful ways you can avoid getting pregnant.
As I reflect back on it, no one calmly, but firmly gave the message that female fertility (in particular) is neither a given nor to be taken for granted, and that sooner than you expect it drops to zero. Beyond that point, it can only be extended by extremely expensive, painful medical procedures, and even then there is no guarantee.
----
Edit: Another thing that comes to mind is that women have it really tough, in a lot of ways, and this one feels the most relevant.
I think for women, people close to you and people who you don't even know seem to take particular interest in the choices you make with your body: How you dress, how you do your makeup, who you sleep with, who you date, what you do for work, etc etc etc. Infinitely more so than with men. I think with all that going on, for young women, discussions of female fertility just feel like yet another way people are sticking their noses in her business while telling her whats best and sapping her autonomy. And I think that's why to lots of friends groups with lots of 20-something women this all feels like fake news and sinister.