SW engineering, engineering management and the business of software
One of my more recently popular twitter threads: Miscellaneous ways to Be Awesome at your job & Decision Making
I’ve had lots of chats on how to be awesome at your job recently. Much of the advice boils down to “Learn how to Learn”, and “Learn faster than everyone around you”.
Some other tactical bits around the importance of taking notes; getting/soliciting immediate feedback; finding and having good mentors; creating or seeking out safe environments; thinking critically when things go wrong (5 whys style) and decision making.
On Decision Making in particular:
You need to Understand the urgency and importance, Understand the undo cost (Type I vs Type II) and Understand the blast radius. Type I is a one-way door, high cost to undo. Type II is a two-way door. decisions that are relatively easy to reverse.
You will never have perfect information. Opportunity cost is real.
It’s not important that everyone agrees
It is important that:
Commiting to decisions you disagree with is particular important. I’ve heard this verbalized or adopted as culture with phrases such as “I can get on the bus” or “Disagree but commit”
For decisions with large undo costs and/or large blast radius, you have a repeatable, understood-by-all-parties process and the process includes documenation.
For decisions with easy undo and/or smaller blast radius, decisions are made quickly and you iterate on the early outcomes, results, new data.
Originally tweeted out here: What is Engineering Management?:
I spent a chunk of time today talking about Engineering Management. Sillicon Valley does people a disservice with the very common occurrence of battlefield promotions for eng managers.
Most of them never get trained on how to be a good manager much less have someone clearly explain the role and the expectations for the role clearly.
I roughly categorize the work/expectations into five buckets:
Bucket 1: Making people Excel. This the largest bucket comprised of 1:1s, coaching, mentoring, training, feedback, tough convos, performance evals, creating safe environments, empathetic environments, Umbrella work (shielding your people from BS), career development, etc.
Bucket 2: Prioritize, Align, Motivate. This is mostly making sure your people are pointing the the right direction. This also includes stuff that may not immediately move the bottom line, such as making sure tasks such as process, docs, automation, actually happen amid the constant pressure to ship. Lastly making sure that you have good thoughts and behaviors around decision management (see my tweets from yesterday)
Bucket 3: Business Value: This understanding the business and the metrics that drive it. both technical and biz metrics are important to track and surface. Also understanding of the product, the market and the economics of your space.
Bucket 4: Hiring/Recruiting: most engineers don’t realize that an eng manager should be spending 25-50% of their time doing this. Process, assessment, questions design, speed, candidate experience, closing, etc. The industry does this poorly in general in my opinion.
Bucket 5: Skill: You have to know what you are talking about. You have to have both the tech skill and an appropriate amount of relevant domain knowledge. It’s much much harder to be an awesome manager if you don’t know what your reports are doing, and can’t assess their ability to do their work because you lack the relevant skill set or experience.
Editors note: I originally wrote about Empathy as a Core Engineering Requirement back in 2017. This is adapted from a recent series of tweets:
People ask me why I stress Empathy as an important technical skill (esp. when it comes to recruiting). Aside from the fact that I prefer working with empathetic people and I believe to be a morally sound way to live your life, I make the argument that empathy is an important aspect of business success.
Often, the key to being successful is just getting better than everyone else around you at a faster rate. The way to do this is with the innovation loop: experiment/action → feedback → analyze → iterate → repeat (or EFAI loop for short).
You see aspects of this in obvious areas like AB testing or NPS surveys. Importantly anything you can do to increase the cycle time of that loop is critical.
The way businesses most commonly mess this up is A: skipping a step such as ignoring or not collecting feedback or gathering data but not doing any iteration (which seems silly but I see it all the time!) or B: dramatically slowing the cycle by not allowing for both outcomes of the experiment/action step.
Diving into B, almost by definition an experiment/action can succeed or fail. When you have an environment where failure is frowned upon, punished or has negative ramifications for your career, you are preventing rapid cycles by dramatically increasing friction.
This brings up the concept of psychological safety. One common way of thinking about PS is that you are creating an environment that allows failure is a safe manner. In other words, fast EFAI loops essentially require a workplace where people can fail safely. I do want to point out that this is not an excuse for recklessness or gross negligence. You can have a psychologically safe environment that also has reasonable safeguards against ridiculous extreme behavior.
So if the goal is success and rapid innovation loops drive success and rapid innovations loops require environments where you can fail safely, how to we achieve that?
Having empathy for your users, co-workers, managers, manager’s manager, your reports is an essential foundation of creating a safe environment. Empathy allows you to evaluate outcomes, especially failure, while maintaining a very healthy respect for individuals, the circumstances and context around the original experiment or action. Being able to say: “I understand that you made the best decision at the time with available information at the time” and work to resolve, mitigate and achieve better outcomes is a tremendously powerful tool
Empathy is an important technical skill as it helps create environments where ppl can fail safely which begets fast innovation loops which begets a rate of improvement that outpaces your neighbors & competitors which is strong part of repeated, outsized, successful outcomes.
My latest twitter thread:
One of the things I’m constantly harping on as a manager is Capturing small improvements. It’s tremendously important.
The magic of compound interest is real. If you’ve ever been to a 401k presentation, you heard how small growth can lead to outsized returns over time.
As a numerical example the difference between capturing a 1% improvement a day and remaining static is significant. Mathematically speaking, 1.01^365 is about 37.7.
The difference between a daily 1% improvement and a 1% regression is STUNNING: 0.99^365 is 0.0188. That’s a tremendouly impactful three orders of magnitude.
If you are talking about spending and saving, you can measure this directly via your bank account. In terms of improving people or knowledge or process efficiency in some way, you want to make sure you build feedback loops and improvement capture mechanisms in those loops in order to achieve atypically large, positive outcomes. (improving feeback loop cycle time by reducing friction is also critically important!)
When you are talking about certain processes, like hiring and recruiting, daily 1% isn’t practical or achievable. Yet if you could improve just 2% a week you find that you are hiring THREE times more efficiently. (1.02^52 = 2.8)
Another example is capturing small improvements in developer (or whoever) productivity via automation. Saving 10 mins a day for your developers adds up to a roughly a work week over the span of a year. if you have 50 or so developers, that 10 minutes is potentially ENTIRE YEAR of productivity. Then imagine that there is 4-6 lo hanging fruit type opportunities to automate or cancel a meeting or streamline some processs. Maybe there are a handful or so not-so-low-hanging or not-so-obvious opportunities as well.
This is how you drive towards and eventually achieve exponential increases in velocity. The broad lesson here is applicable for yourself as an indiviual, your team, or your company.
So yeah, Capture Small Improvements.
I do want to properly credit to Paul Buchheit, who’s mathematical allegory (1.01^365 vs 0.99^365) I’ve reused here. I don’t know if he came up with it, but I originally heard it third-hand from him.
People ask me all the time about them and let me tell you straight away: weaponizing exploding offers as a mechanism to close candidates is a terrible practice. Don’t do this!
It’s a terrible Candidate Experience. No-one wants the hiring process to feel like being sold a used car. You are adding unnecessary pressure to a potentially life-altering choice for a candidate.
You are potentially increasing employee turnover rates. In the worst case, they may leave in less than a year and you’ve just invested a ton of talent team and departmental time & resources onboarding an employee without any of the big payout that happens in months 6-24. That represents a tremendous opportunity cost lost. Like most opoprtunity costs, this one doesn’t blatantly show up on balance sheets or metrics or reports or dashboards.
Furthermore, it’s irrational. Nothing about a candidate materially changes after day 7. It’s not like you hate them after a week passes. Candidates are not loaves of bread.
Let me be clear, you have to have an expiration date on the offer. It’s important from a legally-protecting-your-company point of view. I am specifically talking about the “you have to cancel all your current interviews and sign by Friday” high pressure nonsense.
The expiration date is largely symbolic in a market where you can’t hire people fast enough. During the offer process, I go out of the way to explain to candidates that the expiration date doesn’t mean anything and that even if it does expire, I’m happy to spin up a new offer with a new date.
There are exceptions. If there is only one open rec and two or more candidates have open offers, you have to be VERY OPEN AND TRANSPARENT ABOUT THAT! In some cases, you may have multiple open recs, but an equity or comp policy that means you can’t guarantee the exact numbers past the specific date. This is often the case with equity, especially if you are in the middle of doing or closing a fundraising round.
Don’t weaponize exploding offers. It’s a lousy crutch and if you rely on it, I have serious concerns about how you treat your candidates and by proxy your employees.
You can do better! Invest in your candidate experience and invest in promoting your opportunities at all stages instead. Remember, the goal is not to put butts in seats but to find the best fits who can materially help your company succeed over the next 1-3 years or beyond.
Adapted from one of my recent twitter threads: Don’t Weaponize Exploding Offers