Leading Snowflakes by Oren Ellenbogen
These are my notes from an awesome and more importantly practical book called Leading Snowflakes by Oren Ellenbogen. This is a very good book if you just moved from a developer role to Lead or Manager.
Switch between Manager and Maker models
- NSC! - Never stop coding!
- Schedule Maker and Manager times on your calendar
No one is being promoted to a managerial position to increase their productivity. We already proved our capabilities there. Our job as managers is to amplify our teammates. Our job is to ask the right questions, to encourage people to think, to challenge, to inspire.
The only way we can keep our edge is by continuously practicing our Maker skills, even if it's on a smaller scale. Make it easy to pick small tasks you can take. If you've got 3 hours to be productive, it would feel counter-productive to use this time to think of tasks instead of making them happen.
Code Review Your management decisions
- WHEN/WHO/THE DILEMMA/THE DECISION MADE/RETROSPECTION/DID I SHARE THIS?
- discuss these dilemmas with your boss and see how he would have handled it
- discuss dilemmas with another engineering manager and review each other decisions
- do a retrospection every day for ten mins
- do a retrospection once a month for 1 hour
People quit their boss, not their job
Receiving constant feedback is the fastest way to learn
Confront and challenge your teammates
- email summaries of your 1on1's
- care deeply about your team but don't care about what they think of you
- The Asshole Checklist: a) Did I show empathy (not sympathy) b) Did I clarify my expectations c) Did I practice what I just preached
- share harsh feedback if needed no matter what
- don't go helping others with their tasks
- share your failures with the team
If you want to achieve anything in this world, you have to get used to the idea that not everyone will like you.
I used to send a summary of my conversations with my teammates including my concrete examples and recommended steps. Then, I added how I understood the other side and the next action items we agreed on. I asked them to reply back to this email with their feedback if I got it wrong or they have anything else to add. That email was archived (I had a label per teammate), and used as a way to congratulate them on their progress or to figure out together why a particular pattern keeps emerging.
Not making a decision is equally important and explicit as making one
We also have to keep in mind that bored people quit. Engineers want to improve and get better over time. They want to learn new techniques. They want to tackle harder problems. They want to gain the respect of their peers and the organization they're a part of. They enjoy new challenges; they appreciate different solutions. It's our responsibility to help them grow. If we're not giving our teammates feedback and challenging them, they will become unhappy (and bored) and will eventually leave.
Teach how to get things done
- show how something is done
- your job is to help someone else succeed
- small increments (1-3hrs per task)
- write docs after the feature is finished
- see if you can have someone teach others
A great way to amplify teaching is by showing someone else how to get things done, rather than telling them what should be done
Managers should exist for only one reason. To help those who work underneath them be successful and succeed.
Delegate tasks without losing quality or visibility
- make a list of things you're doing today and see which ones you can start delegating
- use the spreadsheet from the book
- use the one-pager template from the book
Ask yourself two questions for each task:
- Does it utilize my unique strength and responsibilities as a manager?
- Does it serve the leader I want to become in the long-run (does it push me out of my comfort zone)?
The idea is to define only what we expect to see happening and not how we expect them to get there
Build trust with other teams in the organization
- in the priority meetings list three priorities that are most important for you in the next week, but acknowledge that you know what is expected of you
- TEAM is a group of people that TRUST each other
- There is no I in TEAM
- 'Thank you' email (or public praise) for a feature well done
- Internal tech talks
- Cross-team exchange program
- Tracking our team's output in a simple spreadsheet
Sitting down with other teams and watching how our product is being used could create a better understanding of the value we produce
Premature optimization is the root of all evil – it is the same logic we should apply when we are optimizing our process.
Don't fall in love with the solution you've built, but with the problem, you're trying to solve
Automated Testing can decrease the time to deliver each feature and so increase efficiency
Optimize for business learning
Spend 80% on tweaking features and 20% on developing new features.
Technical Debt is less scary than getting out of business
Companies fail when they stop asking what they would do if they were started today, and instead just iterate on what they've already done.
Use inbound recruiting to attract better talent
- Answer questions on StackOverflow for 1hr/week
- Guest blog posts or repost your posts on Medium or dev.to
- Have hackathons
- Birthday pics to Instagram, Facebook, Blog. Also do a video maybe
- Give talks
- Have side projects
It's so hard to find great employees these days – everyone, all the time.
Instagram talked about their unique infrastructure and lessons learned a year before they were acquired by Facebook for 1 billion dollars.
Make something people want includes making a company that people want to work for. — Sahil Lavingia
The goal of a successful Inbound Recruiting tactic is to cause a wow factor for our future candidate. The best case scenario would be that this person will sit at home, read our content or play with our project and say oh wow, that's amazing! I wish I could work there.
Build a scalable team
- Core values
- Sense of accomplishment
- Who is putting down fires? - get him to distribute knowledge and mentor others to get the job done
- Who is an expertise bottleneck - same as above
- Who is not building trust?
- On your 1on1's ask "What is the worst thing about working here?"
Own it. Never let someone else fix our mess: we understand that sometimes it's not our fault, but we don't believe in making excuses and pointing fingers. We believe in getting things done and take full ownership of our deliveries
If someone is kicking ass, it's our job to recognize and celebrate it together. Most chances are, we'll see each other on a daily basis more than we see our families. Let's make sure we enjoy each other's companionship.
Passion to learn & get better every single day is an agile state of mind: constant feedback, constant improvement, baby steps for large change.