Do you have any recommendation on what should I do, read to become better and better every day? I want my team to be successful, and to show the improvements we make to the company.
The best lesson I learnt on leadership is to listen to and believe in your team. They are the experts, not you anymore. Your job now is to clear the path to their success. Different people need different things to succeed, it's your job to figure that out and try your best to provide it.
What I recommend: Figure out what kind of leader you want to be. Read as much as you can and talk to other leaders inside and outside of your company to see what works and doesn't work for them.
Finally, make sure your team has a crystal clear definition of what success is and the milestones to get there. Ensuring this understanding will help your team move in the same direction.
Good luck!
[1] https://www.goodreads.com/book/show/23848190-extreme-ownersh...
One day after a major release stuff broke in production. The company was losing customers daily. The "superboss"-es from HQ descended on our little dev team in a small midwestern city and ordered "Code Red".
What it meant to me as a new dev was that I can't go home and the whole team had to stay in the office until the problem was solved... A part of the team had to sleep in the office for a few weeks. (I still don't know if this is against OSHA.)
Many years later while I was watching the movie "A Few Good Men.", I learnt that "Code Red" was a military term. Suddenly, it dawned on me that my "superboss" was also an ex-military person.
Sleeping at work did not fix the issue, after many months of hiring help and bringing in more hands the outage was brought under control.
Did the ex-military "superboss" help the situation? I don't know...
Now I know that Military veterans in their enthusiasm to find work in civilian environments tout their ex-military skills as team building or leadership skills.
Skills learned in the military are for war, learned for conflict situations and applying them to civilian environments and bringing a war mentality or attitude to a workplace is toxic.
I don't have an answer to what makes a good technical leader but I know from experience that ex-military style leadership only adds to the toxicity of a workplace.
Sorry you suffered that experience though, hope you made it out of there.
The book is in my opinion a distillation of those skills, which -- maybe just so happen to -- come from military background. None of what is presented in the book come anywhere close to the situation you described. I would dare to say, quite the contrary. It is about listening, understanding, trusting and many other things, usually considered positive.
It had a great influence on me, though I have never even thought of joining the military.
I started practicing extreme ownership as a regular developer and made my way up to a team leader in about 6 months time. Now I double down as a fresh (and young) leader.
2. Common sense dictates that whenever one transfers skills to a new context, one assess the underlying assumptions and context of those skills to adapt them for use. I'm sure mistakes in that regard will inevitably be made, but I give most people more credit than to assume, a priori, that people will transplant those skills without any thought given to changing contexts. That seems like a very condescending assumption to start with, but maybe I'm misreading you.
> Skills learned in the military are for war, learned for conflict situations and applying them to civilian environments and bringing a war mentality or attitude to a workplace is toxic.
> only adds to the toxicity of a workplace
What exactly was the toxicity besides your choice to overreact (stay overnight) ? Why do you believe that leadership skills for war are not applicable to other domains?
None of those things exist in software engineering so there will be people that aren't motivated by the allure of moving up, aren't passionate about the product and maybe just want to do their job and go home. There is nothing wrong with that as long as they are doing their work.
As a leader, you may have peers that will like you to take extreme ownership because they can play politics and blame you for things. I don't think there is room for that sort of BS on a battlefield but I don't have first-hand experience.
There are also a lot of teams that don't have 'mission' like goals that are clearly evident (e.g. root out terrorists in Ramadi) but have a continuous flow of work to be done.
Like any books/videos/courses on leadership or self-help, take what you can from it an see what sticks in your world, don't take it as a prescription or steps on how to do something.
This question is addressed, if not in the book, at least in his podcast. Let me see if I can find it.
The author was a submarine captain who turned one of the worst-performing boats in the Navy into one of the best.
This is an excellent concept and an important one to really get. I go out of my way to never use the phrase “my team.” It’s not my team, it’s all of ours. I’m a member of it, too.
It’s my job to make sure they succeed. So instead of “my team” I always say, “the team I support” to reinforce that.
1. The First 90 Days - a good reminder that when you transition, it's like starting a new job
2. Become and Effective Software Engineering Manager - a hands-on book for people transitioning to management, starting at a new company or looking to make more of an org-wide impact.
3. The Manager's Path - a short reference handbook for managers at all levels.
4. The Goal - written in the '80s, yet a timeless novel on what management is about, may that be a manager of a team, an organization or an industrial plant.
Also, I wrote a post about my learnings on transitioning from engineer to manager that has some good comments on HN[2]
[1] https://blog.pragmaticengineer.com/my-reading-list/#engineer...
Each of these books is a bit utopian or idealistic. By doing what's suggested by the guru everything magically works out. But, while not magical, the ideas really do work and help operate and understand organizations. The principles are not complex, each book can probably be summarized in a 3-5 page paper. But the "case study" (quotes because it's a fictional plant/company, not just one obscured by pseudonyms) is good for illustrating the point and the path of process improvement.
2. "The Phoenix Project", "The Unicorn Project" (novels), and "DevOps Handbook" by Eugene Kim, on how different parts of a tech + non-tech organization come and work together.
3. "High Output Management" by Andrew Grove on overall technical management.
4. "Measure What Matters" by John Doerr on setting objectives and measuring their progress.
5. "The Checklist Manifesto" by Atul Gawande on thinking through replicable processes.
6. "Who" by Geoff Smart on hiring.
7. "Start with Why" by Simon Sinek and "The Culture Code" by Daniel Coyle on creating culture and reasons for why people do the work. It's an important part of any management process, double import because of how often it is lost in technical management.
8. "The Mythical Man-Month" by Fred Brooks (still, IMO, one of the best management books ever, esp. for software and product development.)
9. Boyd: The Fighter Pilot Who Changed the Art of War by Robert Coram (OODA is the true core of agile thinking, and it works pretty much everywhere.)
For software and computers specifically, add:
10. Computer Lib/Dream Machines by Ted Nelson (Impossible to categorize - it's a hypertext book for crying out loud - but browsing it can change your thinking.)
11. The Soul of a New Machine by Tracy Kidder. (Good for new products in general.)
And for general management and leadership inspiration, two great autobiographies:
12. Mover of Men and Mountains, by R.G. Le Tourneau.
13. Rickenbacker, by Eddie Rickenbacker.
On that note, I would also add another book about organizational psychology - how people game incentives, how cya evolved, how people focus on short term thinking over long term investments, problems common across big businesses, written by a sociologist embedded for a few years in a corporation, but I can’t for the life of me remember it.
But also:
The Secrets of Consulting” by Gerald Weinberg on generally thinking through ‘solutionizing’.
“Systemantics” by John Galt as a short and fun intro to applied systems thinking and cascading effects.
“We Need to Talk” by Celeste Headlee on how to have difficult conversations.
“Never Split the difference” on handling and understanding negotiations both up and down the chain.
To my knowledge the only book mentioned here that takes the time to define technical leadership and present models of leadership suited potentially to different circumstances.
I might add ‘The art and science of doing engineering’ by hamming and recently republished by stripe.
The more leadership or management books I read the more inclined I am to respect Taleb’s approach of looking for old timeless material rather than what’s new or hot.
Most of what Gerald Weinberg has written qualifies IMO. Tom DeMarcos books also.
I read it 8 years ago and it got me to consistently write everyday what I was thinking and feeling about my projects and team
The book is an interesting read, but merely reading it won't do anything. There are one or two exercises per chapter, and you should work on them if you really want to see the benefits.
Also, if you want to do a little test before reading the whole book follow these tips from the intro:
> Three quick tips to boost charisma in conversation: Lower the intonation of your voice at the end of sentences, reduce how quickly and how often you nod, and pause for two full seconds before you speak.
From this summary: https://github.com/mgp/book-notes/blob/master/the-charisma-m...
1. 1 on 1's (which are for the benefit of the direct report not the boss) weekly for 30 minutes - 15 minutes for you, 15 minutes for the direct report.
2. Giving feedback both good and bad in a constructive way
3. Providing coaching and context to the reports work
4. Tactical delegation of tasks both that you know they can do so they feel good about their work, and also some difficult tasks to stretch them (with coaching)
This plus understanding the different types of role power within an oganization, and knowing which type of power to use when and with who.(hint it's often never the right answer to user your role power to say ''do this because I am the boss'' use role power sparingly)
The podcast was super helpful to me in transitioning from IC to management.
Usually your actions affect them the most and if you do something that "annoys" them(e.g. Too authoritarian, micromanaging, Not giving the credit when due, Not defending them against external forces etc.), most would not approach you from below to mention it(exceptions exist), after all you are the lead/manager imagine how you would(or would not) give feedback to a Senior Director if they did not ask for it. Giving unsolicited feedback is also weird and some people don't receive feedback well, so them making the first move is all but risk unless they know you want it.
Not every feedback makes sense and not every person can give feedback properly(being too shy or too harsh etc.). You would also need to learn how they communicate their concerns and calibrate what they say. For example "I don't like X because Y" of a very introvert person carries more weight than same sentence of someone that can easily discuss things they don't like openly.
Edit: As you have asked specifically for books, I can recommend "Making of a Manager" by Julie Zhuo. It is a very good and structured read.
- Out of the Crisis by Deming is useful for thinking about achieving quality by improving the systems rather than focusing on the individuals.
- Peopleware by Demarco for arguing the opposite.
- Everything ever written by Tom Peters for staying focused on customers and engaged in the game.
Books can provide vocabulary and ideas, as well as ways of thinking about the subject. I know that Andy Grove's "High Output Management" gave me way of thinking about the corporate world that helped shape my interactions in the workplace and with senior management. There's no doubt that through great books one gets to pick the brains of geniuses whom one might never get to meet in real life, so there's inherent value in that.
That said, to truly get better though, I believe one needs to be apprenticed or coached by someone who knows what "being good" looks like. That is, to find someone who has real expertise (not just commenters on HN who've never managed anyone), shadowing them and synthesizing their expertise to fit one's own style.
Most people who are "good" can't explain why they're good (some can, most can't) -- so one almost has to study them up close. There's an old saying that "leadership is caught, not taught"... sounds like a tired old cliché, but seems to be somewhat true in my observation.
There are other good books which can add to it like "The Manager's Path" by Camille Fournier.(https://www.amazon.com/gp/product/B06XP3GJ7F/)
I couldn't get on with it personally. While I like reading his blog, the book just lacked personality. Maybe I was expecting personal anecdotes to explain some of the ideas.
I also like to recommend Coders at Work by Peter Seibel (https://www.goodreads.com/book/show/6713575-coders-at-work). It's incredibly useful to read about just how different 16 ultra high performing software engineers are/were. Nothing prepares you for technical leadership better than understanding that.
EDIT: just saw that Mythical Man Month was added 1 minute prior to my comment.
It helps to write a hello world for every hot new tech out there. Not to follow trends, but to actually be knowledgeable enough to have a valid opinion. Think of yourself as a radio station who has to buy or at least sample every popular track. Crystal is hot? Set up a web server and connect to sql. Set up a Vert.X server and write a consumer. Set up a simple neural net with torch, train it a little, load it in java. These all take an hour max each day. An hour well spent compared to scouring books for managers in order to deduce some insight on how to manage people. Developers will appreciate and respect you when you know their job at this precision level and it will make your job a lot easier.
um, what? If this is based on personal experience I would love to understand how.
In my experience, Setting up a totally new development environment in an unfamiliar toolset generally takes waaaay more than an hour.
Do you have an example of a setup you got stuck on for hours?
Focus on the job at hand. Don't get into unnecessary political disputes. You're a tech lead, so keep it technical and focused on solving business problems.
Be kind and understanding of people's personal issues. It's a marathon, not a sprint, so it's fine if people's productivity goes up and down over time. As long as they contribute well over time, there should be no problem.
Make sure people take time off. Burn out sneaks up on people. Taking weeks off regularly is essential.
Do plenty of grunt work yourself, don't pawn it all off.
Write the most documentation and help your teammates write theirs.
Share the credit. Credit the team and individual team members frequently. Point out when people do well.
Downplay failures. Unless a mistake is malicious, you should blame the technology and the processes in place rather than the people involved. Humans make mistakes and it's through technology and process that we avoid them causing damage. Fixing the weakness in your technology or process is what really matters.
Most of all: lead by example. You should be an exemplar team member. Not perfect; no one is. Not an expert in every dimension; no one is. You should simply perform your duties in a way that your teammates could emulate with success.
There are a hundred other things, of course. That's just a few ideas.
https://www.amazon.com/Becoming-Technical-Leader-Problem-Sol...
Does go off on a lot of tangents, but it's more interesting than books which keep rambling on the same idea chapter after chapter.
For example, from the end of Chapter 1, 'What is Leadership, Anyway?': "Make a list of situations in which your presence seems to increase the productivity of others. Alongside this list, identify situations where your presence seems to decrease productivity. [...] What do these lists tell you about yourself and the environments that empower you?"
Weinberg has a way of getting you to reflect that I find profoundly valuable, if I am willing to do the work.
Don't be put off by the fact that his books are self-published, and the covers aren't great. He is brilliant.
Coaching for Leaders (Gold mine with hundreds of great episodes, as an example https://coachingforleaders.com/podcast/maximize-team-perform...)
Manager Tools (They even have a section for new managers: https://www.manager-tools.com/podcasts/important-topic-feeds...)
Books:
The Effective Manager
The Speed of Trust
Five Dysfunctions of a Team
Turn The Ship Around
If you want to look further than traditional command and control structures, I recommend looking into Deming, Sociocracy, teal organizations or the aforementioned book "Turn The Ship Around".
Also, look into norming, storming, forming performing and team operating guidelines.
[1]https://www.amazon.com/Switch-Change-Things-When-Hard/dp/038...
That roughly translates in my head to ‘terrible youtuber’
The most important thing to realize is how success will be measured. It will no longer be your individual contributions. Instead, you will be measured by how successful your team is. So you need to use your time to make your team more effective.
So the most important thing you can do is prevent anyone from becoming blocked. The next-most important thing is unblocking people when they become blocked.
How do you prevent people from becoming blocked? Make sure that everyone knows where they are going, and they know what to do when they get there. Make sure everyone knows what they are working on, and what they will be working on next. Promote good practices, and ensure that processes have consistent documentation.
How do you unblock people? Review their code quickly. Learn to differentiate "I don't want you to submit this because I don't prefer this" (bad attitude) from "I don't want you to submit this because it's going to have a negative consequence"). Learn how to phrase that second sentence in a way that doesn't make your coworkers dread getting reviews from you. Spend your time fixing tech debt that's adding drag to the team.
As you do this more, you should also make sure that people on your team are growing. Give them harder tasks than they had before. Ensure that junior engineers are getting mentored. Correct imbalances: if a specific engineer is always taking notes in meetings, create a notes rotation so that everyone has to do it.
[0] https://www.bitlog.com/2017/10/12/what-does-a-tech-lead-do/
I think this could be applicable in general sense too, so that your team understands the value system that you establish. People are smart, professionals are even smarter, so they figure out the incentive system quickly. Placing a right emphasis and staying consistent helps to communicate this.
Another thing that adds to the notion of unblocking is to establish a culture of "a long enough before calling for a backup", that is to try your best to crack a problem by yourself, but have a way to recognize a being stuck and allow to call for a help with no shame or sense of failure. In my view, this has both a culture and a protocol aspects.
1. Have a one-on-one meeting with every member of your team, for 30 minutes each week. They know when that meeting is coming up, and you know, so things that they want to tell you in private can come up then.
2. A good leader anticipates what his team is going to need before the team knows they need it. Try to do that. If there's a big release coming up next month, do what you can to make that 100% successful. Make sure there are no vacations, company meetings or other things that would impede that. Give your team room to breathe and make sure they are not bogged down with distractions.
If you can make their lives easier, they will make your life easier by kicking ass for you.
3. Oh, one more thing. If you are in a meeting and you are having a group discussion on how to solve a problem, make sure you call in people who are quiet. After the conversation has quieted down a bit and you are dialing in on an answer, if Jim hasn't said much simply say "Jim what do you think?"
I'll tell my single Golden Rule for managing people is to make sure they always know what's expected of them. Not knowing what's expected of you is probably the single greatest source of stress.
https://www.amazon.ca/Gary-Latham/dp/1473676975/ref=sxts_sxw...
Peopleware
Accelerate: The Science of Lean Software
Both are scientifical approaches to what makes effective teams.
It breaks down what a modern, high performance software team in 2020 looks like. It has the best explanation of what burnout is and the causes of I have ever read.
Accelerate takes a scientific approach to managing teams, so when you try to raise these ideas at your own place of business, they are backed up by research instead of just: "This person said X."
It provides tools for solving specific problems, and a language to discuss what's going wrong and what the solution looks like. https://lethain.com/durably-excellent-teams/ The concepts he covers in this post, in particular, have been invaluable.
I think empathy and radical candor are the most important skills ! There’s a book called radical candor that I really recommend.
Other than those I recommend reading how very effective leaders did their job, Eleven Rings by the NBA coach Phil is absolutely amazing on how to build a winning team as is Leading from Ferguson (soccer). Turn the ship around is another great book by someone’s experience in the navy.
Creating a safe space where people know the goals clearly, communicate effectively and helping to unblock them are part of the goal !
* https://www.hashtagcoder.dev/blog/director-of-engineering
* https://humanwhocodes.com/blog/2012/06/12/the-care-and-feedi...
That being said, really good book :)
Small Unit Leadership: A Commonsense Approach https://www.amazon.com/Small-Unit-Leadership-Commonsense-App...
The Five Dysfunctions of a Team: A Leadership Fable https://www.amazon.com/dp/0787960756/?coliid=I12MQNI6MIK6JR&...
High Output Management https://www.amazon.com/dp/0679762884/?coliid=I2G1Y1JLPP55SY&...
Measure What Matters https://www.amazon.com/dp/0525536221/?coliid=I1G6EQRC0QYPE1&...
Death by Meeting https://www.amazon.com/dp/0787968056/?coliid=I38A8AYMZGSLYZ&...
Work Rules!: Insights from Inside Google That Will Transform How You Live and Lead https://www.amazon.com/gp/product/1455554790/ref=ppx_yo_dt_b...
The Hard Thing About Hard Things https://www.amazon.com/Hard-Thing-About-Things-Building/dp/B...
Start with Why (you can prob skip the book and just watch https://www.ted.com/talks/simon_sinek_how_great_leaders_insp...) https://www.amazon.com/dp/1591846447/?coliid=I2Q0IN84LJ230W&...
Just in general I want to commend you for taking the time and energy to learn about this. It's a tragedy of the modern world that highly skilled people tend to be promoted into management roles and then stagnate, so that many tech organisations end up with people who are great at their specialism and terrible at managing people in managerial roles. Taking the initiative to really try to understand and excel at management is going to benefit not just you, but everyone who works with you. Bravo.
1: https://www.pon.harvard.edu/category/research_projects/harva...
Don't decide on your own if possible.
Decision coming from top? Communicate that. Otherwise, ask your team what it think is the best course of action.
Only decide on your when something would be blocked.
I always read about two sides.
"Managers are needed, because there are tough decisions to make and people need to be led!"
"Managers aren't needed, people can govern them on their own!"
I think the truth is in the middle.
All arguments are communication problems.
If you’re coding all day you’re doing it wrong. Delegation is the most important. Communication is critical. Tech leads who crash and burn are usually the strongest developers.
Happy team is a productive team. Always expect the best from people.
I don't have a specific book for you, so will link the wikipedia article as a jumping off point:
I have tried other books, but they usually have too much to remember.
One other book I found useful was The Coaching Habit. It gives you a different perspective on how to deal with the emotional aspect of leadership.
What they want is important. This could be a way to recognize that you are great without giving you architecture power, they want you to continue to do what you are doing no more (this is unlikely but be aware of it). They may want you to write a little less code and turn some of the "lesser" developers into a 10x developer. They may want to give you permission and power to re-architect the system so it will work for the future. They may want you to spend all your time estimating effort so they can decide which interesting project is worth doing. This may be the title they give to the boss of small teams and you no longer do technical work.
What is best for the company/project is sometimes different. Sometimes that means what you need to do to make a success is different from what they think. If so this is tricky ground that will either get you fired for not doing you job, or a great promotion for saving the company. More likely you have options in your position and so you need to figure out which option is worth spending your time on and which are less useful for your company now. There are interesting tools that won't solve your biggest problems even though they would make some other lesser problems better, choose wisely what to spend your time on.
Last where do you want to be in the future. Within the above you have choices. If you are interested in something not the most important thing to work on you need to decide how much to focus on each. (different situations have different answers, sometimes you have to focus on the important things, others you can only give it a little attention and that is good enough) sometimes you will refuse the promotion. Sometimes you will decide what is best for the company is best for you. Sometimes you take the promotion but need to focus on your personal life to ensure the job doesn't kill it, other times they are compatible. Sometimes you realize you are in the wrong job.
In style and content, it's a bit like an older version of "The Phoenix Project" that was focused on delivering packaged software, and mostly oriented around a "stocks and flows" model of the development process.
The framing narrative is much more amusing, though.
Also worth reading Edward Yourdon's Death March:
https://books.google.com/books?id=FdAZUX9H_gAC&printsec=fron...
[1] https://www.amazon.com/Agile-Conversations-Transform-Your-Cu...
It’s essentially a collection of books / podcasts / newsletters on modern technical leadership :)
1. Learn Scrum/kanban (not a book)
2. Developer Hegemony: The Future of Labor
3. The First-Time Manager by Loren B. Belker
4. Conscious Business: How to Build Value through Values
5. The Five Dysfunctions of a Team: A Leadership Fable
- Turn The Ship Around (Marquet) - make everyone a leader - The Effective Engineer (Lau) - leadership for engineers - Leadership, Strategy, and Tactics (Jocko) - leadership in military/business - Good To Great (Collins) - good companies vs great ones
How to get better at everything:
- Mindset (Dwek) - growth vs fixed mindset - Atomic Habits (Clear) - automate good decisions w/habits - Change Your Habits, Change your life (Corley) - data driven selection of which habits matter - Ultralearning (Young) - how to learn anything faster - Anything You Want (Sivers)
How to talk to humans
- Difficult Conversations (Stone) - how to talk to humans - Never Split the Difference (Voss) - every conversation is a negotiation - Death By Meeting (Lencioni) - short fable - anything else by Patrick Lencioni
Prioritization and focus:
- The One Thing (Keller) - prioritization - Deep Work (Calport) - focus - Indistractable (Li) - focus
See also anything by: Jason Friedman, Jim Collins, Patrick Lencioni, Peter Drucker and biographies in general
Notes to a Software Team Leader by Roy Osherove
"Mindset" by Carol Dweck.
1. Is a good coach / Supports career discussions and discusses performance
"Leader As Coach: Strategies for Coaching & Developing Others" by Mary Dee Hicks and David Peterson. An in-depth, very practical manual on how to coach your reports according to their specific needs and personalities.
"Crucial Conversations: Tools for Talking When Stakes Are High" by Kerry Patterson et al. Helps you prepare and approach difficult conversations with empathy. Especially useful for performance conversations.
2. Creates an inclusive team environment, showing concern for success and well-being
"The Five Dysfunctions of a Team: A Leadership Fable" by Patrick Lencioni. If there is one book to read about team dynamics, this is the one.
"First, Break All the Rules" by Marcus Buckingham. Slightly more general than the 5 dysfunctions, but with a lot of good content about psychological safety and what makes team work.
3. Has a clear vision & strategy / is a good communicator
"High output management" by Andy Grove. Probably the most famous book on this list. It gives you a good introduction to setting goals, communicating about your team's work inwards and outwards. It also features more "system thinking" than the other books - how everything fits together as organizations scale, which is useful for developing vision and strategy.
I'd also recommend reading biographies and memoirs of famous leaders (e.g. Churchill, Marcus Aurelius). Strategic thinking can be easier to learn through examples and pattern recognition than through abstract / self-help books.
4. Is productive and results-oriented / has key technical skills to advise the team
A lot of new managers over-index on the people management side of the job and forget about the key responsibility of a technical leader: choosing a direction, leading others in this direction and delivering results.
"Accelerate: The Science of Lean Software and DevOps: Building and Scaling High Performing Technology Organizations" by Nicole Forsgren et al. One of the most recent, well-researched books into how to measure the productivity and quality of software teams.
"The Art of Scalability: Scalable Web Architecture, Processes, and Organizations for the Modern Enterprise" by Martin Abbott et al. This book uniquely blends the technical, organizational and people management aspects of technical leadership.
Research. Why? Because this question has been asked dozens if not hundreds of times.
The sociology of software engineering biases the perspectives on leadership therein toward this kind of contempt for subordinates.
If the OP truly wants an answer they could have researched it, but as you stated the OP doesn't really want an answer, they are "seeking recognition"
Yawn.