There’s many tools engineers underuse, but I want to pick on three I don’t see discussed often: dates, affect, and agency. By “tool” I mean exactly that, something you use to get something done.

dates

Dates are the first technology of civilization, and the ultimate forcing function on finite beings, especially in Knowledge Work. And so, widely despised.

Engineers mostly notice or try to avoid noticing this tool being used against them, but don’t often pick it up and wield it themselves.

For predicting dates, the best strategy I have found1 is to work backwards2 from a launch, and evenly size tasks and then do project estimation based on average cycle time for your tasks. If you have a “cold start” problem on measured cycle time, set each task at 3 days.

Here I want to note I basically agree with this important backfiring effect of pursuing prediction:

I would argue that most large software engineering organizations incentivize anti-automation and it’s primarily because of their penchant for predictability, especially predictable estimates and predictable work. The reason this happens is that predictable work is work that could have been automated but was not automated. source

The more valuable the knowledge work, the more ambiguous, the less predictable – because it can not be chunked into tasks exactly like previously measured tasks. Yet it has been the most ambiguous situations where forcing the focus on critical path around meeting dates has been most useful.

affect

I once got very good advice from a Senior PE: “the single biggest blocker I see in promotions to senior engineering is frustration tolerance.” Resistance on so-called “soft skills” tricks engineers away from seeing their own affect as a tool that shapes their internal and external environment.

Affect is a subtle word, and I am using it from psychology to roughly mean: how you feel, how others experience your feelings, and how their experience of your feelings makes them feel. Of course, that can complete a circuit in changing your feelings based on their response.

In stressful situations or situations with high ambiguity or high conflict (which tend to become stressful) affect is critical, because affect changes how we respond - how we make decisions, how we act. The main usage of affect should be: how do I remain calm, and increase calm in others, so we can make good decisions?

Sometimes, justly applied, negative affects like visible disappointment and even anger are the most effective. But any emotion outside of calm is very culturally specific, and has to be wielded very carefully.

But… one negative affect I’ve seen in engineers that I’ve never seen correlate with maximum impact? Contempt. Sometimes engineers learn that an affect of “I know better than you” is a way to vent their frustration, usually with what is actually low standards. But can contempt trigger higher standards? Can you raise standards with no allies? If it’s really so bad, maybe you should just leave!

Fixing affect is hard. I suggest starting with learning what affect tolerance is and taking notes on how you feel in different situations. One practical tip I think works is to consider likely responses and specifically tell yourself how you’ll react when it happens. “I know X always harps on Y, but when X does that this time it’s not going to bother me, I am going to be chill and just say how Y’s risk is minimized because of Z and then change the subject. If they don’t accept this I’ll ask them to help me brainstorm later on how they can help to fix Y forever.”

For me, I personally think that radical personal responsibility has helped me the most here. I directly say to myself if my affect is bad (I’m getting frustrated and expressing it) that’s really strong evidence I am being ineffective. It’s time to step back and say “okay monkey brain, you had a turn, but I need to take some time to think and approach this differently now.”

agency

There’s a two red flags I notice in low-agency thinking: i. explicit abdication, eg. “I need to check with …” (the team, a manager, etc.), ii. implicit abdication, which usually takes the form of complaining repetitively about a problem without clarifying the problem enough to find a solution or resisting ownership of the solution.

There’s times to hand off agency to authority: because you can’t take responsibility for the outcome. I’d ask you to consider very seriously how much of your life you want to play that way. I think the answer is not 100%, and not 0%.

I mention dates and affect first because I think they’re strong inputs into agency. Dates are really about getting comfortable with owning the future, taking direct responsibility for it in a measurable way with others. Calm, strong affect (your internal emotional landscape) is needed because agency means actually doing things with stakes. Higher agency guarantees you will fail sometimes, because you actually put yourself on the line.

But it also means you’re much more likely to get what you want. One additional input is required there that I can’t write anything about: how you get in touch with what you want to accomplish in your life.

What I can recommend is again that you notice what you feel and what you do. I’ll give an example from my life. I learned how to run quite late in life, which made a large difference in my physical and I think mental well-being. I noticed that I was sometimes making excuses for why I didn’t run on a certain day or in a certain setting, eg., I wasn’t running home from work because I said to myself my backpack isn’t a running backpack. Two obvious things: one, well then go get the right backpack, right? But actually the first thing I did was simply tried it even with my “sub-optimal” backpack. It was actually not horrible and I learned a bit about what I’d actually want from a more optimal backpack.

The simplest heuristic is to write down and investigate when you make excuses to do something or not do something. Then begin interventions of this form: what’s the simplest thing I could do to get more information? I like this framing because you may be waiting for something to tell you how to act, but you can already take actions of the form “how can I take a measurement here to understand the situation?” You’ll be taking an action that has a result you can interpret for your next action. It’s a good feedback loop.

If you can’t think of any good ideas, give yourself permission to use your first bad idea. Perfectionism is its own excuse to be overwhelmed and abdicate agency.

  1. Early in my career I did an analysis on the “points” assigned by my team during the “planning poker” ritual and found ultimately there were just three buckets. One = took less than a day and probably should not have been a discussion. Two = average task time, which was about 3 days, or the length of time after which someone begins asking “how’s it going.” And then finally three = outliers where a work unit took more than a week. 

  2. You don’t need to do the whole working backwards process – just imagining the outcome you’re aiming for and how it will launch is always useful.