Igor's Book of Managementmanager
Managing is hard. Lessons are hard earned and should be cherished. This post is designed to make explicit, and improve behaviors and practices. It reminds us how to behave, and encourages continuous improvement.
This post uses the word manager, but the majority of topics are applicable all software job functions regardless of seniority or the number of direct reports, zero direct reports included.
- What does a manager do?
- Managing and Developing People
- How do you coach?
- What mechanisms do you have to ensure career development.
- What is the level specific career expectations and growth strategies
- How do you help people switch jobs?
- How do you keep people motivated?
- How do you give challenging feedback
- What’s the point of 1:1s
- What do you do in 1:1s
- How do you handle communication problems?
- How do you handle promotion preparation (and fever)?
- How do you identify and grow potential managers?
- How did you grow top talent
- Process and Mechanism
- Theory of Process
- The dark side of process
- That sounds like good intentions - Factories and Artisans
- Never have a human do what a computer can do.
- Rich communication - Team meeting
- Continuous Learning - Deep Dives, Knowledge Transfer and Guest Speakers
- Engineering Excellence - Operational Review and Correction of Errors
- Data Driven - Customer and Business Metric Reviews
- Continuous Improvement - Retrospectives
- Quality and Technical Growth Design+Arch Reviews
- Defining Success - How does goal setting work
- How do you do planning?
- How does resource allocation work?
- Group Bonding
- What are you looking for when you recruit?
- Do they prefer to hire only experienced folks?
- Are they more comfortable with generalists or specialists?
- How do you think about hiring?
- How do you think about the hiring funnel.
- What about structured vs free form interview loops?
- What are better kinds of interviews?
- What do you do when someone says they are quitting
- Best hire of your career
- Firing and Performance Management
- Charters, Re-orgs and Bootstrapping
- Personal Motivations
- Business Acumen and Strategy
- Analogies to be fleshed out
- Questions managers get
- What do managers do all day?
- What’s the hardest part of your job (daily/weekly)?
- What parts do you enjoy most?
- What do you think developers do?
- How can devs do to make managers job’s easier?
- How do you get anything done with all of those meetings?
- How does a dev find out if they’d be good at or enjoy being a manager?
- Why do managers always say coding is part of their job but we all know it isn’t?
- Other resources
What does a manager do?
What are a managers responsibilities?
How do you measure their success?
What is a manager accountable for?
The success of a manager is the success of the team. This manifest in 4 dimensions:
|Business Results||Team delivers business value for our customers and organization. I define success (KPI), and help team understand and deliver it.|
|High performance people and teams||Team is well gelled and team members help each other. Everyone has growth plans which fit their needs and they are execution them.|
|Engineering Efficiency and Process||Engineering systems and protocols ensure a pit of success. Process is automated, and releases have high velocity and minimal risk.|
|Technical Assets||Systems are extensible in the ways that support the business. Operational burden is minimal (side bar: to help me prioritize I’m on the pages), and technical debt is applied judiciously (take debt if you might be able to write off the asset)|
How do you describe your job to people outside the industry?
I run a factory which produces widgets and has employees. For those in the industry this translates to:
|Dimension||Analog||Metrics and Measures||Success Means|
|Business Results||Produced Widgets||l20||I work with the business to help figure out the best “widgets we can make”, by understanding what people want to buy, and explaining how our factory runs.|
|High performance people and teams||Factory Workers||l21||Workers in the factory are healthy, learning, want to come to work every day, and getting along with co-workers.|
|Engineering Efficiency and Process||Operating procedures||l22||The factory is efficient: Production good and improving. Widgets comes out consistently and on schedule? New employees know what to do. Everyone knows what to do during emergencies?|
|Technical Assets||Factory machines||l23||Machines in the factory adjusted quickly for the different types of widgets we build. Machines require minimal maintenance and have high efficiency|
- Are wanted by customers
- Are produced on time and budget.
- Are happy based on surveys
- Are getting promos frequently
- Recommend joining the factory to their friends
- Work at the factory for several years
- Workers are efficient and safe with minimal effort
- Mistakes are learned once, and never repeated?
- Continuous improvement is occurring
- Variance is low
- Over time work is not required
- Support a wide range of widgets
- Can be extended to build new widgets at low cost
- Have have availability
- Operate at low cost
Hardest part about being a manager
- Firing: People think it’s firing but it’s not, see that section
- Personally: Telling team I’m quitting, tears, ride bike, etc.
- Actual: When need to surprise folks, abrupt direction change or killing projects.
- Likely, but I haven’t done it: Layoffs, when know and can’t tell.
What do you do in the first 90 days?
First 90 days is the bible here
- Early Win: Figure out the situation, and deliver a win.
- Trust: Relationships with team, and peers, and partners.
- Knowledge: Know critical parts of business, tech, org.
Should managers be technical?
Yes they are ultimately responsible for the outcomes of the team and that requires them to understand, confirm and nudge the team and partners. They should ensure the team is making correct architectural decisions and engineering excellence improves due to best practices.
They need to represent the team in technical forums, swag costs, represent laws of physics, bring back best practices, and catch upcoming incompatibilities and challenges.
- Attend architecture and design reviews
- Be on every page the team gets
- Have strong relationships w/technical leaders like principal engineers
- Follow major tech trends and product launches (keynotes, major tech blog posts)
- Read seminal books on topics (ML, Cloud Native Apps, Data Systems, etc)
- Have Side projects in assorted tech and ideas (ML, PWA, FaaS)
They also need to be experts at working with data systems and analysis, as much of their time will be analyzing customer, business, operational, and technical data.
Once developers become managers they have little time to use their technical muscle, and their technical apptitude declines do to lack of use. Therefore I recommend before switching they are:
- A very experienced engineer (MSFT L65, AMZN L6, FB E6).
- A expert in at multiple languages (for me python, and C#)
- A expert in multiple technical domains (for me networking and security).
Should managers code?
Managers should read code on specific occasions, but they can’t be on critical path because their time is often needed to deal with urgent situations. Thus, they can only write low importance code usually something you’d assign to an SDE-I. At that point, you have a very expensive priority inversion.
That said, SDMs need to use their product just like their customers do to be able to better understand and meet the customer need. Like wise, SDMs need to use their development tools periodically, which should include the code/test/deploy cycle, so they are better able to understand and meet their team’s (aka other big customer) need.
SDMs should be reading code occasionally:
- Spot checking - SDMs should have a good “something is fishy” intuition, and should be able to independently and discreetly prove or disprove their intuition.
- Assessing people - Code is a major deliverable for developers and should be inspected as part of people assessment.
- Deep dive during major outages - In high risk, time critical situations like outages, you want your best people reviewing the changes, and this includes SDMs. If an SDM can’t understand a high risk time sensitive code change, it can be, and should be simplified.
Managing and Developing People
How do you coach?
Coaching is a major part of the job, and covered in my coaching post:
Coaching is like midwifery. A midwife can not give birth to the baby, she facilitates the birth. Similarly, a coach can not give a solution, she must give birth to the insight from within the coachee. Coaching is asking questions, guiding, and facilitating understanding, and this post collects my studies on the topic.
What mechanisms do you have to ensure career development.
Principles for career development
- Peeps have an accurate, clear understanding of their interests, strengths, weakness, and next career steps.
- Peeps have a clear understanding of level and role expectations for the current and next career stage.
- Peeps understand how their work “ladders up” in impact and career development.
- Peeps get frequent feedback on in progress work
- Peeps and managers have a consistent understanding of the above.
- Manager actually uses the process himself with her own manager.
To achieve these principles there are several tools:
|Tool||Time Horizon||Checkin Frequency|
|Career Growth Plan||6m to 2y||3m|
|Pre Write Self Assement||1m to 6m||4w to 8w|
|Frequent Feedback||Immediate||As Needed|
|Situational Leadership||Stage Dependant||Stage Dependant|
Career Growth Plans
Forward looking and a good place to discuss what opportunities are required, and what major development areas should be tackled, and what’s required to meet the next career level.
Each employee has a career growth plan (CGP). This is a document with open ended questions like:
- What are you most proud of?
- What is most draining?
- What are your short, medium and long term career goals?
This document also has the list of expectations for the current level, and next level.
Pre writing Review Self Assessments
Think through what will be delivered in the next 1-6 months, and how it will be delivered.
Most companies have a performance program - At MSFT it’s connects, at FB it’s PSCs and Amazon it’s Forte. As part of this process, and employee writes a self assessment for the work that happened in the last 6 months - 1 year, and then the manager uses that as a basis of the review they’ll write.
There are several advantages to pre-writing these documents:
- The peep and manager can be deliberate about what work is done, and discuss if projects make sense.
- The peep and manager understand the impact provided by the work.
- The peep has a record of what they’ve done in the performance period, instead of only having a crisp memory of the last few months.
- The manager can calibrate the work to be done so there are no scope surprises.
Frequent feedback for in progress work in both the what and how dimensions
Provide immediate observed feedback, for something that is about to happen (like reviewing a document), or a de-brief after a critical meeting or review
I keep my eyes open for opportunities for feedback from my observations, and from soliciting feedback from peers and partners. I take the feedback and figure out the best way to give it.
My priority is “catching employees doing something right”, so I can re-enforce positive behavior. Even better, with positive behaviors I can provide them in public which not only benefits the employee, but also re-enforces that goodness with the team.
More details are in my coaching post. Here’s a preview:
As people learn new skills they experience a learning curve, which requires different support at different points on the curve. Situational leadership describes this in detail, but in a nutshell, while learning new things, people go through this grid from 1 to 4.
|Incompetent||1. Foolish Novice - Thinks they can do it, but really can’t||2. Novice - Knows they can’t do it, and feels bad|
|Competent||4. Expert - Know they can do it, and they’re right||3. Journey man - Thinks they can’t do it, but actually they can|
In each of these stages different support is required.
|Incompetent||1. Instruct and Explain - Tell them what to do||2. Guide and Encourage - Show them how to do it|
|Competent||4. Empower - Explain Why Not||3. Facilitate - Explain Why.|
What is the level specific career expectations and growth strategies
Depends on the skill level (Eg. levels ): SDE-I is a junior developer, SDE-II intermediate, and SDE-III senior and above . Also see my post on the differences between Tech Lead, Architects and Managers.
|Junior||Not a lot of variance. Have a rubric for junior SDE skills and make sure they are getting the opportunity to learn and execute each box. Make sure they have a solid mentor, and opportunity after opportunity to round out their knowledge.|
|Intermediate||Now it’s about how are you helping the team, growing your contributions. Bigger experiences, maybe out side the org, both to build your skills, and increase your org visibility. Double down on super powers, close red flags and blockers. Very satisfying to watch people “blossom” into leaders.|
|Senior/Staff||Here you’re getting people that are at a career level and are happy with a lot of what they’re doing. Now it’s helping folks decide how much they want to grow, and where they want to improve. Here it’s finding mentors, and how we want to split responsibility and cover each other. Also opportunities for what they own for the group (30-60+) e.g. security or process or etc.|
My approach, and frequent peep questions.
|Level||Things I repeat and repeat|
- We hired you because you’re smart+really good. If you can’t understand something, it’s probably the presenter doesn’t understand it well, as opposed to you not understanding.
- You are new, and need to learn and need to spend a bunch of time asking for help and guidance. I have one rule - you must come with a bad idea (which will start becoming good ideas). You fail when you bring nothing, you ace it when you bring a bad idea. We’ll help you develop that bad idea, and help sharpen your thinking skill.
- “You have a fresh perspective - If something doesn’t make sense ask, for us, we’re like fish in water, so challenge our assumptions”.
- I’m here to help you close gaps, sharpen their understanding by teaching it to you
- How do you make the team better?
- What are you gonna be known for?
- You’re the owner, you’ll do everything and I work for you. What help do you need
- Do shadow coaching, where I might be writing/pr-doing work but they do the send/take the credit
- Are you clear on Tech Lead, Architects and Managers.
- What are you driving for our larger organization?
- How are you maximizing our benefit?
- How do we make sure we compliment each other?
How do you help people switch jobs?
My goal is to find people the right job, not the job on my team. I coach a lot of people through this, and here are my most popular posts:
How do you keep people motivated?
I use Danial Pink’s DRIVE model, Autonomy, Mastery and Purpose:
- You are the owner
- All decision need your sign off
- Coach from behind (here’s success, here’s how I’d say it, what are the consequences, misses)
- The team has your back.
- Protecting from harmful rays of upper management and business
- Only clear out as much as required
- Career Development todo link it.
- In the dimension we agree to.
- You can work at 110% of your capacity, but I tell you when you’re at 90,100, or 110
- Bigger and Bigger Opportunities and/or Exposure
- Focus on the why
- Call out the impact
- Share the success with the team
- Share success with partners and boss
People also care deeply about coaching and career growth:
- Catching people doing things right.
- 110% of capability but clarify doing 110% vs 80%
And I spend a lot of time on generating Moments:
Of all the places we spend our time, work is the one that dominates. However, when we look back on our lives, work is often the thing we remember least. Why? Because we remember our lives through peak moments, and there are few of those, especially positive peak moments, at work. Luckily, peak moments can be created and leaders can be taught how to create them. This post explores opportunities and techniques to create these moments.
Some moments like:
- Constant celebrating people doing stuff fun
- Playing cards for appreciation
- Managers making breakfast
How do you give challenging feedback
Why is feedback challenging?
- It’s a surprise
- Folks don’t want to hear it
- Folks don’t think you have their best interests in mind.
Deep diving on what makes conversations hard:
- Surprise - see around corners, and bring up anything I see ASAP, and foreshadow. Meet frequently, know what people care about.
- Attack the messenger - High Trust, Know how and when the person likes to hear stuff. Address what they care about.
- Don’t want to hear it - Self Aware, Think I have their best interest in mind, Put it in terms they want to hear it.
- Over dramatize - Anticipate what they’ll care about, pre-address.
Types of tough conversations to flesh out:
Performance, Charter, Re-org, Team mates leaving, Lay Offs.
What’s the point of 1:1s
1:1’s are the highest ROI activity and the most expensive. They take 100% of both parties attention in a non-scalable manner. At the same time:
- If on average 1:1s gives an 0.25% performance improvement, you get a 12% per performance improvement per year, which equates to 300% in ten years.
- If there isn’t a forum for discussion, many concerns and bottlenecks will be ignored. Those ignored concerns and bottlenecks are lost opportunities in the best case, inefficiency in the median case, and catastrophe in the worst case. (Using an exception handler analogy, the default exception handler is ignore all, and we know how that works out)
My goal for 1:1’s is to:
- Build trust and relationships
- Coach and be coached strategically and tactically
- Teach and Learn context
- Have confidential, awkward discussions (part 2)
- Allow others to express emotions and let off steam in a safe space
(Again with that programming analogy, the 1:1 is a debugger attached catch all exception handler. This allow all concerns to be discussed, understood, rethrown, reprogrammed or ignored. I know - the analogy needs work, help me make it better)
What do you do in 1:1s
My favorite opening is “What’s on your mind”, then I focus on asking (coaching questions) and end with “what can I do immediately to help you?”
I push for awkward conversations. When my peeps have nothing to talk about I ask some of my favorite prompts A few things I don’t do:
- No public status reports I discourage using 1:1 to share the public news and weather “status report” - we can read that offline ourselves. A valuable use of time is the “inner and private stories” on the status - What is hard, what is most fun, where do you want to improve?
- No deep dives when I could just do offline homework I think 1:1 off the cuff deep dives are an anti-pattern, an indication that there’s a missing artifact that’d be valuable to a wider audience. I’ll often say can I get a TL;DR and “How would I go about learning X,Y or Z”? If the answer is “ask me”, I’ll often recommend a low quality on paper brain dump we can review together. This lets us efficiently have an aysnc discussion which captures Q&A in a durable form. Once we’ve done the easy async discussion in the doc, we review the comments together with more complex questions, and more private context, and more discussion.
I have less frequent, but extremely important 1:1 types like:
- Career discussions A discussion around what we should be focused on for the next 6-18 months.
- Promo preparation meetings - Help ensure we’re on the same page about what needs to happen for career trajectory and promo.
- Performance Review Feedback
- Leadership card evaluation exercise (so good, needs its own post)
- I aspire to be accessible - I encourage folks to come to me any time (but most don’t).
- I “manage by walking around”, just seeing what people are up to and working on.
- I group my 1:1’s on the same day (or over 2 days) because 1:1 is a special frame of mind, and it’s hard to stay in that zone.
- I wish I used a 1:1 document, as that seems to be a best practice for most domains.
- The current norm is 30 minute 1:1’s but I enjoyed the old days when an hour was the norm. I often wonder if we’ve sacrificed effectiveness for efficiency in the 30 minute 1:1 culture.
How do you handle communication problems?
The goal is not “communication style”, but ability to influence, and I focus on that.
There are some things labelled communication problems, but they are much more serious and need immediate action:
- Clarity of thought/intellectual horse power
- Being a jerk
There are different types of communication problems each needing a different strategy:
- Verbal diarrhea
- Dominates Conversations
- Abrasive communication style
- Not listening to others
- Verbal/ESL/Not comfortable with in-person verbal communications
- Toast masters
- Pre-write thoughts
- Use pictures
- Say not great on my feet, follow up with a document
How do you handle promotion preparation (and fever)?
Surprises are BAD:
- Haven’t set clear expectations.
- Requires mini RCA
- Engineer and Manager shared understanding of promo gaps and plan.
- Engineer feels they came to conclusion himself
- Engineer aspires to get to that level, and feels on track
- Engineer gets new opportunities/support required.
- Engineer doesn’t want to be over leveled
How: Start w assume engineer right - lets look at the criteria together.
- Skim now and deep dive in next 1:1
- Ask for self evaluation
- Review and get on same page, sometimes manager thinks below and above what engineer does.
- Go over with examples together
- Ask “How would you describe your behavior vs someone else’s”
- Ask “What gaps do you see”
How: Create a shared plan create plan to close the gaps
- Projects that stretch in those areas
- Mentors that can help close the gap on those areas
Promotion fever is my word for engineers that are completely focused on promotions above all else. In general they fall into a few categories: 1) Not Ready, 2) Just hired, and believe under levelled 3) Ready, but didn’t get promo due to bad luck. Regardless, we go through the promotion preparation process.
How do you identify and grow potential managers?
Engineers that are interested in reading this post make good manager candidates. The path usually start with getting an intern, then being a tech lead with heavy mentoring. Then having them take over as many as people issues as people are comfortable with them tracking.
How did you grow top talent
What is your ideal culture?
Tough question. I need to think through that
- Team gelled, and always helping and growing each other
- Continuous improvement, with very open feedback, and desire to improve.
- Test cheaply, early and often.
- Ship as frequently as possible.
- Always paying down technical debt
- I hate the term “bring solutions not probems”, it encourages people to freeze. Instead - “bring ideas, even terrible ones, with your problems”, caring and lead time to fix is most important
- Never be blocked
- Imagine Executed Sustainably
How do you help a team gel
- Team lunches
- Moral Events
- Help people see each other as 3 dimensional humans - talk about personal stuff.
- Encourage peopel to think of the team as an entity, and how to improve the team, not themselves.
- Encourage people to vocalize their appreciation publicly
- Encourage people to ask for help, and get help
- Remind people it’s intimidating to ask for help, and they can take a stand to make it happen.
- Have the team focus on succcess of the team, ahead of personal success.
- Encourage people to improve the team at every opportunity.
What order would you intoduce culture
When I joined FB we were full remote, and started with only 1 30 min team meeting every 2 weeks. Here’s what I worked with the team to esablish
- 1 x week team meeting w/demos
- 1 x week team meeting
- replaces 1x week demo and team meeting:
- 2 x week stand up
- 1 x week tech talk/deep dive
- deep dive sessions, guest speakers, TIL sesions
- 1 x 2 week demos
- 1 x 2 week retro
- 3 x week lunch
How do you make a good culture?
- Model myself
- On All the Pages
- If team is working I’m working
- When I make mistakes I apologies
- If I drop the ball I make it clear.
- When someone does well I celebrate and call out.
- Catch people doings things right
- Coaching stuff
- Put it front and center
- Let team take ownership of it.
- Incite pride and purpose
How do you handle Remote Work?
I’m writing this stuff my rough outline
What about Work Life Balance
Work Life Balance is so important to me that I wrote a manifesto - the opening paragraph:
I don’t want to die knowing I spent too much time at work and I bet you don’t either. As a result I want to work with people who value a culture encouraging them to balance their family, health, hobbies, and work - aka work-life balance. To make a culture real leaders needs to walk the talk, and I’ll describe how I model a work-life balance, and the mechanisms I use to help team members achieve their own balance.
In the rare event you do want to die knowing you spent too much time at work, try to remember more hours rarely helps. In XKCD format:
How you deal with team disagrees with the leadership
Step 1: Believe and deeply understand it. Either I believe in it, or I deeply understand the decision and have disagreed and committed. As part of committing, I’m all in, and will share that.
Step 2: Listen to the team. The team has concerns, hopefully I can predict the, ahead of time and be prepared for the easy ones, then truly listen to new concerns, and address them.
Step 3: Focus on the win/win, and talk through a ripcord.
Agency and Psychological Safety
Process and Mechanism
Theory of Process
- Turn input into outputs
- Reduce variance and setup a pit of success.
- The human equivalent of great tools (source control, linters, bug management systems)
- Don’t waste “mental juice” on solved problems - see (checklist manifesto)
- How to measure success of the process, what will you inspect, when will you adjust?
- What other process is this similar to, can we co-coalesce with something else?
- How will you get buy in from up, out and down?
- (Bright spot, then land and expand)
- Who is the owner?
- Ownership lifetime, per quarter, or forever.
- The organizational equivalent of habits
- Culture vs Process
The dark side of process
The upside of process is that we can do things without thinking. The downside is that we stop paying attention to process cost, small errors, and become resistant to change, which is often positive at a minimum and often required.
This can be especially true when process is created high in the org chart to solve a specific problem in another part of the org chart, and then applied universally, even where the problem does not exist.
The antidote - A review of process is essential to ensure it’s still getting the maximum value with minimum cost.
Toxic process - Bad process will disenfranchise ownership and stifling passion. It’ll slow down things that can be fast. There is nothing more powerful then a motivated engineer, don’t let process take that away.
That sounds like good intentions - Factories and Artisans
- Process vs Good Intentions
- Toyota Assembly line vs Artisan
- That passion variance
Never have a human do what a computer can do.
- Use auto style for code review styles
- Gather data from bug systems instead of having humans do it.
- Automated tests vs human execution
- Multiple copies of the same data
Rich communication - Team meeting
Continuous Learning - Deep Dives, Knowledge Transfer and Guest Speakers
Engineering Excellence - Operational Review and Correction of Errors
There should always been an on-call, an engineering excellence work stream, and a periodic review meeting and a correction of errors process.
- How do we know our customer is having a good day?
- How do we maximize our velocity
- How do we keep our developers happy.
- How do we sleep well at night?
- How do we get max learning from outages?
By the way, I think a manager should be on all pages and outages.
- On all the pages
- Strong appreciation for boots on the ground reality.
Also need to review all outages
- Write up for all outages, Correction Of Errors for major outages -
- Maximize value of mistakes, don’t make them twice.
- For all customer impacting event, review w/Customer Impact, root cause understood, and commitment when to address.
- How do we get a page next time.
- How do we see what’s going on.
- Testing systems.
- Very high leverage active
Data Driven - Customer and Business Metric Reviews
Continuous Improvement - Retrospectives
Quality and Technical Growth Design+Arch Reviews
- Really a preview, not a review.
- Ensure that tech assets are high quality and require minimal re-work.
- Ensure team gets cross trained.
- Catch stuff as early as possible
- Get developers used to being on the whiteboard
Defining Success - How does goal setting work
This is usually a top down business strategy intersected with a bottom up execution recommendation.
How do you do planning?
6 step process
- Define Tracks
- Find “boulders” in each track
- Break boulders into projects, cost and analyze and order by ROI
- Determine cut lines
- Resource allocate
- Execute (It’s 1% inspiration and 99% percperation)
The only time when the 5 step process should occur simultaneously across all tracks is when a team is forming, or taking a major pivot. At all other times this series of steps should be occurring continuously and asynchronously.
How does resource allocation work?
Resource allocation is maximizing the intersection in the Venn diagram - “Personal Preference”, “Business Need” and “Probability of Success” for the business, team and individuals.
The success metric for a manager is supporting the team so that they know the constraints, and can self organize to maximize the business, team and individual Venn diagram coverage.
This process gets harder then it sounds based on the state and ambiguity of the tracks, balancing juniors and seniors, career development desires, and future hires and business ambiguity and reorgs.
There are some more concepts I need to flesh out:
Personal growth and career development People should strive for projects that stretch them and make them grow. This is always a business priority (to make the team better), and usually a personal preference. There are times when people have other things going on, and don’t want to grow, and that must be honored at a high priority.
Opportunity cost - If a senior developer is doing something a junior developer is doing, then you have turned your senior developer into a junior developer and no-one is doing the work of a senior developer. This is also why teams need a blend of junior, intermediate and senior developers.
Right sizing projects, and support When people are growing, stuff is going to be hard, and it’s important they don’t take on more then they can chew (see ability to succeed”, even when the project is the right size, it’s important the person has the dynamic support and mentorship they need.
Keeping slack in the system Anxiety is the difference between reality and expectations. Slack is the tool that helps us better model reality.
What are you looking for when you recruit?
Most companies have their “competencies” they test for. But I abstract it down to:
- Smart (Can code, understands)
- Teach me something you deeply understand
- Walk through X, and Y, how do you, explain the trade offs.
- Get things done (wants to ship, owns it):
- What matters to you
- Tell me something hard you did.
- Tell me your favorite parts
- EQ: (Not an asshole, Continuous Learning, Sees impact off his action, self aware o how eels)
- Tell me a time you got in a fight
- Tell me the hardest feedback you received.
Do they prefer to hire only experienced folks?
I need a pipeline of developers for mentorship, fan out and succession planning.
Need a Principal per 30 people.
Ratio Senior: SDE-II: SDE-I (1,2,2) => ten person team: 2, 4, 4.
- Everyone grows by learning and teaching.
- A crappy job for an SDE Level-X is a growth opportunity for SDE Level-(X-1).
- SDE-IIIs want to think hard and lead.
- SDE-IIs do the bulk of the work, and are fully independent.
- SDE-I bring energy and excitement, but still dependent.
(Bad analogy) A team is like a “conveyor belt”, people continually improve and mature and want larger scope, requiring a constant flow of incoming college hires.
Are they more comfortable with generalists or specialists?
Generalists - 99% of time
- Industry changes to much.
- Mostly about Architecture/Design and SDL and coding, domain and language easy to learn.
Specialist - 1% on very specific teams.
- File system
- Distributed system transaction processing.
- Firmware engineers
Want full stack teams:
- FE -> Learn the customer empathy through user interactions
- BE -> Learn the tech chops of complex system.
How do you think about hiring?
A wise man taught me - “My priority list should be”:
- Full Blown Site Outage
- Everything else.
Recruiting is ultimately product sales, where you’re selling your team.
Most important part of sales:
The product: Product you’re building, team (culture and people), yourself.
Funnel: Inbound Marketing, Referrals, high touch, post sales support.
How do you think about the hiring funnel.
- Top of Funnel
- Interview events
- Internal Talks
- Linked in Posts
- Linked in Appreciation
- Linked in Articles
- Always help recruiting
- Connect to warm candidates
- Go grab coffee with them.
- Mentorship of folks, volunteer for mentorship
- Intern Talk
- Mid Funnel
- Post interview - magic trick, after interview lets make time to chat
- Push to get interview done ASAP
- Push to get results to candidate ASAP
- Walk out of interview connect on linked in and chat with them.
- Bottom of the Funnel
- Focus on the needs of the candidate, then talk about how job can solve their needs.
- Share what I have
- Talk to my team.
- Come out and have lunch with my team.
- Multi Sell job come to my
- Focus on
What about structured vs free form interview loops?
- Leadership skills - most important
- Self aware - a critical part of being a leader
Internal, Structured but Different
- Review internal code/design/documentation artifacts. Ask candidate for artifacts they’re proud of.
- Go on a whiteboard to have them explain one of their systems, or help you on yours. No need for the candidate to practice, this is just them doing their day job.
- Talk about hard situations they’ve had. Listen for the criteria smart/gets shit done/emotionally intelligent
What are better kinds of interviews?
I’ve heard the tech interview model described as the second worst kind of assessment strategy, it’s only better then everything else we know.
That might be true, but I’ve also seen some novel ideas for interviews (Indeed uses these), and I’d be interested to try using them:
- Do a code review
- Do a mock interview + debrief
- Review their public work (like Github)
What do you do when someone says they are quitting
I always start with “Happy for you, sad for us”. My goal is to find the right role for an employee, not to have them on the team. Ask if you want me to talk you out of it, or to reinforce your choice. Help you think through decisions TODO: Add story of Neha Teams should be like rivers, not lakes. Rivers are fresh and move, lakes are stagnant which is bad
Firing and Performance Management
What are your thoughts on a PIP?
Three “Players” in this situation:
- The struggling employee
- Remember being in the wrong role SUCKS. Employee is going home after long day, and feeling like shit (rinse and repeat)
- Once in right role - will feel great. Seen lots of times this happens.
- Let employee ‘self discover’ gaps and judge, but you must set down the truth.
- Should not be a surprise. Should have already gone through role guidelines and gaps.
- Clear set of gaps, and expectation for required improvement.
- Progressively lay out process, so they know where they’re at and what happens next.
- Help them know it’s the wrong role, but they have lots of strengths (look we hired you), and you’ll be well loved elsewhere.
- Help them with how to find change, mock interview, job changing guidance
- The team
- Weak performer means others on team have to cover both in mentoring, and picking up dropped ball.
- Sets a bad example for the team
- Team knows the weak, and dislikes it.
- Need to mitigate impact of week employee.
- The manager.
- Emotionally draining. But you own giving them an opportunity not their success.
- When they’re in the wrong role, best thing that happen is getting them to a place where they are successful.
- Can be time and energy intensive, robs the team and good employees of your energy.
- Ensure criteria for demonstrating employees recover is sufficient. Get pre-agreement on criteria with your organizational leaders.
- Remember, all employee’s getting into this process will improve because they are being chased. Ensure their improvement isn’t temporary
Most companies have a well laid out process, that you follow.
Usually there’s a “zone of concern”, when the manager focuses carefully on the employee: - Set employee up for max success - Ensure clear expectations - Get mentorship - Explain to employee you believe in them. Then there’s an official pre-PIP
- Same as above, but really clear with employee - Document everything so there is no miscommunication - Ensure clear criteria for PIP removal. - Ensure org agrees criteria is sufficient - Meet weekly
Then there’s a formal PIP - Depends on your company but very similar to above, but with clear legal terminology.
How do you deal with people performance issues?
How do you coach employee back to success?
- Really depends on the employee
- Re-enforce the person is good.
- Remind person the team is there to help them
- Clarify expectations
- Provide a short term lowering of expectations
- Consider LOA or accommodations as appropriate
Charters, Re-orgs and Bootstrapping
Reorgs have two dimensions, staffing and charter, both of these need to be addressed.
There are several types of re-orgs. Here are some of the ones I’ve executed:
The genesis: When you start from scratch
Building a team has two aspects, hiring from 0 to staffed, and building out a new charter and vision.
In an ideal world, you’d execute the following hiring plan:
- Start with a high level view of the business
- Put in places the senior developers to build out the architecture and process
- Start working by getting your SDE-IIs and SDE-Is
In the real world, you’ll likely:
- Have a vague idea
- Add people as you find them (hard stop when too many juniors - see below)
- Pick some easy wins, and get those started, ready to pick up debt to see what we can do.
Note: It’s usually easy to hire junior people, and when there’s pressure to start, you’ll be tempted to just keep adding junior folks. However, there’s a world of hurt here. If you’re planning on starting with too many junior folks (or getting pressured to) borrow more experienced folks from other teams. Ideally borrow them full time for a few quarters, but at least borrow them for brainstorming, design, architecture and mentorship.
Hopefully, early in your hiring process you’ve been thinking about your charter. Charters and such are hard, here’s the strategy I tackle:
- Come up with a north star vision
- Start your first experiments in tech and market
- Find the first wins to be able to inspire the team, excite the investors, and really partners.
- Build out an early roadmap and product.
- Keep learning and improving as people join.
The split: When a team outgrows a manager
The merge: When a manager leaves
I guess the whole post is personal, as these are my opinions. The questions below can’t be “evaluated” as they deal with internal motivations, however they can be questioned to determine if these are really my motivations, and if I”m being consistent between my actions and motivations.
Why is management attractive to Igor?
Few things make me prouder then this public feedback on LinkedIn from people who worked with me over several years.
On my deathbed, the product I will be most proud of is the people who I watched blossom and grow. It’s cliche, but when you love your people they know it, they thrive, and do their best work. It’s not just about the work, I want to make sure people think of their lives as well, because, well, that’s even more important.
I’m also energized by getting shit done. The though of shipping, clearing roadblocks, and never being blocked puts a smile on face.
Speaking of smiling, nothing brings me back up like reading this kind of feedback that I got when I left a team:
Goodbye Igor! Thank you for helping me reach the next level both physically and mentally. I cherish the moments when we ground through challenges like peak days, when I was in trouble and you said “That’s why I’m here, give it to me I’ll make it happen”, and of course, when you show your magic at happy hour! You are a great boss and great teacher.
Lastly, I love understanding what is going on, coming up with win/win solutions, and framing those solutions into a meaningful story that people rally behind and deliver. Some more words that bring me up:
Igor - Your passion, energy, intellect, and sheer force of will – so intense, so inspiring, so powerful we still feel it 3 years after you left the team.
What is Igor’s dream job?
A preview of my dream job:
Jobs have many dimensions and I’ll describe my dream job in several dimensions. In my dream job I learn the customer and business needs and focus the team on delivering them in a sustainable manner. Simultaneously, I help team members grow, develop our culture, and build valuable tech. When talking to others I prefer a couch to a table, and when I need a break you might see me juggling, practicing magic, or riding my folding bike - often in the office.
What is Igor’s career aspiration?
A preview of I want to be the best boss my peeps have ever had
I aspire not only to be a great manager, but to be the best manager my team members will ever have (unless they get to work for a manager I’ve coached :) ). I hope to have incredibly stiff competition at the top, and I’ll often fall short of my goal, but through trying I will get closer. This post will gather my research on being a great manager, enumerate some of my learnings, and inspire me to be my best.
Why do you think Igor is a good coach?
When I explained to someone coaching it the most important aspect of management, they asked why I thought I was a good coach. Took me a while to answer, but here you go:
- I believe you can’t be efficient with people, you can only be effective. And it always pays off.
- People are not ‘resources’, they are 3 dimensional humans, with lives outside work, emotions(like pride), and desires.
- I’ve read and digested slews of self help books which while often mocked, are filled with great models.
- I actively study and practice coaching and effective decision making
Why do you prefer being a manager vs an IC.
I think as a manager, the day to day sucks. People problems, managing by spreadsheet, fire fighting, policy violations, etc. But, those days when you look at the team, and see them helping each other, and growing, and when you catch people after a few years and they tell you how impactful you were to their career, and how working on the team was the most fun they ever had - it feels superb.
As an IC, it’s almost backwards, the day to day is fun. Coding, design, debugging, even fire fighting an outage trying to get the site back up, it’s very satisfying in the moment. But, as an IC, when you look at the softare you built, and you realize it’s long depricated, and replaced by something better, it’s a pretty meh feeling.
So, in a nutshell, for me those moments of intense satisfaction make it worth the loss of the day to day joy of being an engineer.
The road building analogy to software development roles.
Imagine we want to build a new road.
- Start of time: PM figures out there’s a market for a road, and the needs of the customer, and comes up with a rough idea of where the road needs to be between.
- Slightly After: EM starts surveying broadly, and discovers can’t go some places because there’s a giant mountain, or soemwhere else as other folks have tried digging their, but fell through, and that someone has started making a path from the other side, so if we meet at the middle it’ll be cheaper
- After: Senior Engineers come in and start figuring out where they’ll build, what’s the safest path, and what’s a realistic schedule
- After: Intermeddiate dev’s are assigned a small junk of the road and start building it.
- After: Junior devs are given very clear tasks, and start doing them
At each stage of road productions things go wrong and we learn new stuff. TODO Come up with more examples
What if managers memorize these answers for interviews.
Good interviewees prepare as much as possible, thinking through their experiences and philosophies. If this post helps them, that is fantastic. I’m skeptical a bad manager will be able to internalize these answers to the point they can provide rich answers.
Good interviewers (and manager interviews better be good) need to be able to differentiate “theoretical knowledge” from “practical experience”. They do this with situational questions like “Tell me a time when”, and probing questions like “What happened then? What were the unexpected consequences? When did you have the opposite outcome?”.
Business Acumen and Strategy
The four is a fantastic book describing the value of the FANG companies.
- Google is the brain
- Amazon is the belly
- Facebook is the heart
- Apple is the sex drive
- Aggregator theory
- Disruption theory
- Horizontal vs Vertical Integration
- Zillow Offers
- Linked In
- Open Source
- Windows Phone
- Developer Tools
- Hardware or Services
- The App Store
- The Physical Store
Analogies to be fleshed out
The need for maturity and alignment
A project is car with a EM, PM and TL
The need for variable engagement
An engineering team as the parts of the car
PM - Navigator and long term radar EM - Shock obsorbers, mid term radar, swerve system Specific team members for engine, seat belts, etc
New hire perspective is like landing a plane
- When joining high altitude can see the city
- Once landed, all you can see is the air port and a few streets
Questions managers get
What do managers do all day?
What’s the hardest part of your job (daily/weekly)?
What parts do you enjoy most?
What do you think developers do?
How can devs do to make managers job’s easier?
How do you get anything done with all of those meetings?
How does a dev find out if they’d be good at or enjoy being a manager?
Why do managers always say coding is part of their job but we all know it isn’t?
I don’t think manager’s should code, however (see above). A related question might be:
Why do we assess manager’s ability to code.
- A few enlightened companies do not.
When should managers code
- Link TBD
What technical skills should a manager have and why
Google’s Project Oxygen
Google is a very data driven, willing to challenge the status quo company. One of their ideas was getting rid of managers all together, and that was a fa failure. Given then conclusion managers were necessary, they formed Project Oxygen, a data driven approach to understanding the attributes of successful managers. Here is there list of management attributes:
- Is a good coach
- Empowers team and does not micromanage
- Creates an inclusive team environment, showing concern for success and well-being
- Is productive and results-oriented
- Is a good communicator - listens and shares information
- Supports career development and discusses performance
- Has a clear vision/strategy for the team
- Has key technical skills to help advise the team
- Collaborates across the company
- Is a strong decision maker
Amazon’s leadership principles
All of Amazon’s leadership principles (LPs) are superb, and while they apply to everyone, they probably have a twist for managers (which I’m still figuring out).
If you’re not from Amazon the LPs can be overwhelming, and are worthy of a separate post. To help remember the principles, I think of 3 buckets: 1) Grow yourself and your team 2) Get it Done 3) Be the owner.
You’ll also notice the principles are deliberately not ranked, and have tension between them (e.g. Insist on High Standards vs Bias For Action) as they’re all important and require high judgement to balance between. Alright there is definitely a post coming on this topic
Grow yourself and the team:
Learn and Be Curious - Leaders are never done learning and always seek to improve themselves. They are curious about new possibilities and act to explore them.
Hire and Develop the Best - Leaders raise the performance bar with every hire and promotion. They recognize exceptional talent, and willingly move them throughout the organization. Leaders develop leaders and take seriously their role in coaching others. We work on behalf of our people to invent mechanisms for development like Career Choice.
Insist on the Highest Standards - Leaders have relentlessly high standards - many people may think these standards are unreasonably high. Leaders are continually raising the bar and drive their teams to deliver high quality products, services and processes. Leaders ensure that defects do not get sent down the line and that problems are fixed so they stay fixed.
Dive Deep - Leaders operate at all levels, stay connected to the details, audit frequently, and are skeptical when metrics and anecdote differ. No task is beneath them.
Earn Trust - Leaders listen attentively, speak candidly, and treat others respectfully. They are vocally self-critical, even when doing so is awkward or embarrassing. Leaders do not believe their or their team’s body odor smells of perfume. They benchmark themselves and their teams against the best.
Have Backbone; Disagree and Commit - Leaders are obligated to respectfully challenge decisions when they disagree, even when doing so is uncomfortable or exhausting. Leaders have conviction and are tenacious. They do not compromise for the sake of social cohesion. Once a decision is determined, they commit wholly.
Get It Done:
Deliver Results - Leaders focus on the key inputs for their business and deliver them with the right quality and in a timely fashion. Despite setbacks, they rise to the occasion and never settle.
Invent and Simplify - Leaders expect and require innovation and invention from their teams and always find ways to simplify. They are externally aware, look for new ideas from everywhere, and are not limited by “not invented here”. As we do new things, we accept that we may be misunderstood for long periods of time.
Bias for Action - Speed matters in business. Many decisions and actions are reversible and do not need extensive study. We value calculated risk taking.
Frugality - Accomplish more with less. Constraints breed resourcefulness, self-sufficiency and invention. There are no extra points for growing headcount, budget size or fixed expense.
Be the owner:
Ownership Leaders are owners. They think long term and don’t sacrifice long-term value for short-term results. They act on behalf of the entire company, beyond just their own team. They never say “that’s not my job”.
Customer Obsession Leaders start with the customer and work backwards. They work vigorously to earn and keep customer trust. Although leaders pay attention to competitors, they obsess over customers.
Think Big - Thinking small is a self-fulfilling prophecy. Leaders create and communicate a bold direction that inspires results. They think differently and look around corners for ways to serve customers.
Are Right, A Lot - Leaders are right a lot. They have strong judgment and good instincts. They seek diverse perspectives and work to dis confirm their beliefs.
A few Igorisms
- I come across as confident, that’s just a personality flaw. Please don’t confuse my confidence with my conviction, and push back.
- Don’t worry about “over” influencing me. I’m learning context, and will ref-count and circle back as I get more data.
- My goal is to do nothing. If I’m doing anything you should do, want to do, or want to learn to do - lets make it happen.
- I’m super transparent
- If you build it they will not come.
- If its a platform you’ll have lots of opportunities to iterate before you’re done.
- Built every iteration with a committed partner
- Launch the first iteration ASAP with minimal flexibility - you’ll learn a tonne
- Build the second iteration so it’s cheaper to build the 3rd.
- Build the third by providing flexibility in those must frequently changed dimensions
- Build the next iteration for a small set of users
- Rinse Repeat
- We are a team - we want to help each other.
- If someone needed help would you give it to them? So do the same
Rules of software as an IC
- No duplicate code - Fix it once!
- Trust tests not experts - Bring data not someones faulty memory
- Log bug then whine - Whining is fine, but bring it forward
- Bad Memory/Not seeing details - I need your help sticking to details, catching stuff
- Organization - I have the least process ever (except for Facebook)
- UX - I’m inexperienced at UI - I need to get better, but a place I need to lean on others
- Dramatizing - It’s emotionally engaging and helps knock us into high trust mode, but it can cause people to be defensive
Laws to remember
- Goodhart’s Law - A metric can be used to measure reality, or to flog people, but not both (humans optimize to be rewarded)
- Conway’s Law - Software will ship to match an org chart (humans optimize for communication cost)
- Parkinson’s Law - Work (or money) will expand to fill the time available.
- Peter Principle - People will rise till they become incompetent
- Parkinsons Law of Triviality - (Bike Shedding) Members of an organization give disproportionate weight to trivial issues. A nuclear power plant funding committee focus most time on how to paint the bike shed since it’s easy, and they feel they are providing value
- Yak Shaving - Not a law but a great term for when you go down the rabbit hole going several steps away from the task at hand (a common cause for the delay in Parkinson’s Law)
Great Posts and Blogs
- Manager’s Playbook - Cool awesome list for managers
- How managers get stuck
- The managers path - This book feels like it lacks “complete” mental models, but it’s the only book of it’s kind - so it’s the best there is!
- Elided Branches - Blog on engineering management.
- I.M Wright’s Hard Code - Engineering Management from Microsoft, covers most topics.
1 on 1 Prompts
From the awkward 1:1 and Holloway’s remote management guide
Give extra honest feedback (All the time)
- Are they acting like the best manager / report / partner you could wish for? Are you? Why or why not? Discuss.
- What have you already told someone else about this person (or heard others say)? Share with them. Discuss.
- What is everyone around neglecting to tell this person?
- What’s the work equivalent of this person having food stuck in their teeth? Be a good friend / coworker and tell them.
Get extra honest feedback (All the time)
Remember skip the fluffy answer and ask again until you get something real.
- Tell them a growth area you’re working on currently. Tell them why you picked it (even if it was one of those “not-really-optional” ones!).
- Ask for advice.
- Check for your own role in a weird situation.
- Pick a thing you’ve recently complained about. Ask them — “What could I’ve done differently in that situation?” Ask for feedback on how to be better.
- Admit a fault or a mistake. Ask for support and advice. Ask them if they noticed you making it or not.
Meta & Feelings (Occasional)
Talk about emotions. Label one you’re feeling, or what you sense from other person. Boom, instant awkward and great discussion.
- Any meta-conversation about your conversations.
- We never talk about Topic A, we just always talk Topic B. Why is that?
- When I tell you about Topic A, you always react like this, and that’s why I don’t tell you that stuff. When I bring up Topic B, how do you feel? Why is that?
- Ask for their fears. What are they afraid of (for their career, the project, an upcoming tough meeting)? Why? Share your own.
- Trust check. How easy is it for both of you to share intimate things with each other? Why? What would make it easier? Discuss.
- When did you recently get an opportunity to learn and grow? How can we create more of those?
- Have you seen someone else doing something you felt worked really well? What was it?
- What should I know about you that would help me support you better?
- What are you doing here that you feel is most in line with your long-term goals?
WHAT ARE YOUR BIGGEST TIME WASTERS?
- If you could be proud of one accomplishment between now and next year, what would it be?
- Is anything holding you back from doing the best work you can do right now?
- Is there a project or area outside your current role where you feel you could be contributing?
- Which areas make you feel like your hands are tied or you are unable to reach your full potential?
- If you were to create your ideal position, how would it differ from what you are currently doing?
- At what point in the past week were you most frustrated with or discouraged by your work? What can I do to help you manage that?
To get some deep feedback, use the prompts in getting extra honest feedback.
Or ask the more boring questions
- Would you like more or less direction from me?
- Would you like more or less feedback on your work? If more, what additional feedback would you like?
- If you were coaching me to have a greater positive impact, what would you tell me?
- What can I tell you about myself that might make it easier to understand me and work with me?
- Have you seen a product or initiative at another company recently and thought to yourself, ‘I wish we’d done that’?
- What vibrations (news, rumors, dynamics) are you picking up that you think I should know about?
- What’s our biggest oversight, and how do we resolve it?
- What do you feel is our biggest risk right now?
- What was the most useful part of our conversation today?
- What are you worried about right now?
- How’s life?
- What’s going on for you these days outside of work?
- What is something you’ve done that you’re proud of?
- What was something you were scared of as a child? Have you overcome it?
- What fictional character do you most identify with?
- Would you rather be known or unknown? Why?
- What hot topic usually turns into an argument for you?
- Do you have a motto or personal mantra?
- What’s on your bucket list?
TRANSITION AND CHANGE QUESTIONS
- Imagine it’s two years from now, and things have gone well: What has been your role in that? What does your role look like?
- What are you worried might happen if you made this transition?
- What will happen if you don’t take this step?
- What would need to change for you to get to a point of “let’s do this” or “I don’t want this”? What information do you need?
- How would you say we’re doing at working together as a team? What makes you say that?
- What do you think the rest of the team is most concerned about? (People may also share what they are personally concerned about; this framing makes it easier to share.)
- Who on the team is doing really well right now? (Also listen for names that don’t come up.)
- Are there any decisions you’re hung up on?
- I’ve noticed you’re a little quieter than usual. Is there anything you’d like to talk about?
- Do you feel stretched thin? (This wording is useful to measure subjective stress, not objective workload.)
- What, if anything, did you used to do that you find you don’t have time for right now?
- What is your takeaway from this discussion? (This is especially helpful to get to action steps from a thorny issue.)
- In our last one-on-one you mentioned you were frustrated by X and wanted to try Y as a solution. How has that been going?
- During this meeting you’ve mentioned that you’d like to pursue X. What steps can you take toward that before our next one-on-one?
- What could we change about work that would improve the rest of your life?
- What does your ideal outcome look like? (Could be about a specific conflict that’s come up, or approached hypothetically.)
- What’s hard for you in getting to that outcome?
- What do you really care about?
- What’s the worst-case scenario you’re worried about?
- Are you afraid of anything at work?
- I’ve noticed that our last several one-on-ones have stayed pretty surface. What are your honest impressions of this meeting? What could we be doing differently or better?
- What’s something you used to strongly believe in that you no longer do today?
- Before making a telephone call, do you ever rehearse what you are going to say? Why?
- What are three things you and I appear to have in common?
- What do you feel most grateful for in your life?
- Take four minutes and tell me your life story in as much detail as possible.
- If you could wake up tomorrow having gained any one quality or ability, what would it be?
- Is there something that you’ve dreamed of doing for a long time? Why haven’t you done it?
- What do you value most in a friendship?
- What, if anything, is too serious to be joked about?