Engineering Management for the Rest of Us
Rate it:
Open Preview
51%
Flag icon
When something feels particularly threatening, try to consider it as an indicator that you may have some internal exploring to do. See if you can ask more clarifying questions so that you can give yourself a moment to ponder the feedback and what made this defensiveness rise.
52%
Flag icon
His ego resilience meant that people could give him productive feedback, and his feelings were not hurt. He took feedback seriously, took notes, and read it back to the person to take ownership over what he had learned.
52%
Flag icon
a healthy ego can also help you separate what’s yours from what belongs to other people.
52%
Flag icon
“You did X. That was incredibly unproductive.” “Oh yeah? Well, you did Y!” This is a fairly common example of switchtracking, and it’s entirely unhelpful.
53%
Flag icon
So what if it goes poorly? Write everything down. Try your best to write down explicitly what happened, not your feelings about what happened.
53%
Flag icon
“I think we have the same goal here, but it’s tough for me to process and move forward with a statement about me personally. Can you please give me more specific details about X?”
53%
Flag icon
You may see job-hopping happen more with URM (underrepresented minorities) than with other folks. My suggestion is to consider that these job-hoppers may have had more bias to contend with
54%
Flag icon
a good meeting is: The purpose of the meeting is clear. There’s an agenda (we dive into the complexity of this in a moment). The right people (and the right number of people) are in the room. Not too many people where communication is overly complicated, and not too few people where those you need to move forward aren’t there. There’s some order. People aren’t dropping in and out, talking over each other, or being generally inconsiderate. There’s a clear decision, outcome, and next steps at the end.
54%
Flag icon
What is the shared purpose? What are we doing to get to that outcome? Who is owning what, and how? What are the timelines?
55%
Flag icon
Cross-Functional Meetings This is where a more-formal and prepared agenda can be really helpful,
55%
Flag icon
Many teams I manage use a kanban board during the standup, and people take turns talking about what they’re doing for that time period. This is nice because it helps solidify the tasks and priorities for the week and allows for some course correction
56%
Flag icon
A few teams found, through trial and error, that twice-a-week check-ins were suitable: once on Monday to kick off the week, and again on Wednesday to keep us aligned and our momentum going.
56%
Flag icon
Brainstorming Session Perhaps you don’t want a full agenda, just the purpose and a notes section, or even an online whiteboard tool (Miro
56%
Flag icon
I find that unlike other meetings, brainstorming sessions really do seem to be easier in person.
57%
Flag icon
If you’re inviting everyone to meetings out of fear of hurt feelings, it’s likely not a problem with your meetings, and more a sign that roles and responsibilities aren’t clear for everyone.
57%
Flag icon
acknowledge that it’s awkward because it doesn’t feel like we’re being transparent with one another. I’ll state what I know from my perspective and then ask if other folks are feeling the same. If you do this, you’ll usually have to wait a beat or two.
58%
Flag icon
If folks are putting out ad hominem attacks, it’s on you to reel that in, and move the conversation toward the work instead.
58%
Flag icon
Typically, it’s good to hear people out and then rein things back in by discussing what you think you’re hearing and tying it back to a shared purpose. Then we can find where we have common ground.
58%
Flag icon
A good meeting must have a DRI (directly responsible individual), and it is not necessarily the person who called the meeting. It might not be you. But you must designate who owns the project and ultimately makes decisions when there’s one to be made.
59%
Flag icon
if people who have no skin in the game make the decisions, they might not understand all the moving parts or invest as much in the gravity of the matter.
59%
Flag icon
RACI (responsible, accountable, consulted, and informed)
60%
Flag icon
When there is a conflict, be it on an individual or organizational level, it’s crucial to deal with it immediately.
61%
Flag icon
When I struggle to separate my ideas from my identity, I will check in with myself. If I feel defensiveness over an idea, I try my best to step back from the conversation a bit and ask someone who has been a bit quiet what they think.
61%
Flag icon
When there is conflict, it often helps to align on the values that are shared, or give context to why some people may have one value over the other.
63%
Flag icon
If you can keep the team focused on the big picture, allow voices to be heard, and provide psychological safety for the team while also time-boxing the discussion and appointing a person who makes the decision, you can avoid situations where conflicts are either undiscovered or drawn out forever. Here again, clarity is key.
66%
Flag icon
Teams need their work to be prioritized because: With too much to do and not enough time, they need to know what’s most important to do first. They need to have focus in order to do those tasks well.
67%
Flag icon
be comfortable with only succeeding 70 percent of the time.
67%
Flag icon
Once defined, they should be easy to find and clear to everyone. If you have a handbook, put them in there. Repeat them often, until you’re sick of saying them.
68%
Flag icon
In looking forward, take myself out of the day-to-day and consider the big picture: What do I think our company could do that will make waves in the next few years? What could I do to contribute to this?
68%
Flag icon
If you have a data team at the company, this is an excellent time to involve them.
68%
Flag icon
Clearly communicate this process to everyone while you’re doing it.
68%
Flag icon
In order to increase signups, you can look at what has historically impacted your company. Any spikes in the data (if you don’t have data, you’ll have to deal with that first) should give you some clues.
69%
Flag icon
I like to use milestones in GitHub to add a slew of issues to, because you can easily track your progress and add labels for more refinements.
69%
Flag icon
An example of the fields I include in a quarterly planning spreadsheet: The name of the project The docs link to more information on the project The point of contact/project owner/lead The priority level (I usually make a tag for “high priority” and limit three.) A tag for whether the project is “ongoing” or “contained” (“Ongoing” means something the team will always do, e.g., maintain X template; and “contained” means a project will start and be completed, e.g., plan a talk about project X for a conference.) A link to any data/dashboards available for the project Release date, if there is one
69%
Flag icon
Once the three months are done, I suggest sharing the results and what you learned. This can be in the form of company/org presentation, newsletter-like email, or whatever method of communication is common and effective at your company.
70%
Flag icon
great tools, such as LinearB, can be used to assess status of things like issues closed, PRs merged, and the like.
71%
Flag icon
most-valuable skills one can possess as a manager is to help your team scope down large, ambitious, abstract work into more manageable pieces,
71%
Flag icon
The higher the number of changes, the more conversation you’ll have to have, until it is too big and then you’ll get none.
72%
Flag icon
The chance that you went in the wrong direction for a long time without any course correction increases with the size of the PR.
72%
Flag icon
What output do you expect to see from that ticket? Now we can walk backward. What parts of the codebase will be affected by this change? If you’re newer to the project, ask someone with more seniority on the team to help you track which areas will need to be updated. If possible, break those into disparate tasks. Even if they are dependent on one another, you can usually find a way to break it into step 1, step 2, and so forth.
76%
Flag icon
never put out an MVP you’re not willing to let lie.
76%
Flag icon
Is there a part of the system that everyone complains about? If your tech stack had a map, does it have an area marked “thar be dragons?”
77%
Flag icon
Why are they doing this? Why is it important to the business? What risks will there be if it’s not done?
78%
Flag icon
Once you figure out what problem you want to tackle, it’s critical to write up a small one-sheeter that you can share with stakeholders. This will cover the nature of the work, the amount of time it’s going to take, and why it’s important.
78%
Flag icon
You may find that it makes less sense from a focus perspective to have every engineer split time across product and engineering projects.
78%
Flag icon
The challenge as an engineering manager is to notice larger patterns, like when many folks complain of the same thing, rather than one developer who may have a strong opinion.
80%
Flag icon
First do as much research as possible up front on whatever type of migration you’re doing.
80%
Flag icon
timebox a unit of time to work through this problem and make sure you have a clear decision-maker at the end.
81%
Flag icon
This happens with our work priorities too. If we never take a step back and reflect, and create a high-level system, then we need to constantly make those decisions again and again each week, which sops up some of our very necessary cognition.
81%
Flag icon
It’s important that we be honest with ourselves; what we work on is an expression of our values.