This list contains resources for software engineering leaders to level up. Being a software engineering manager is hard. This list will help you develop your management and leadership skills.
GROW (Goal, Reality, Options, Will) is a popular coaching method.
There are many ways to structure engineering teams and the right choice depends on your particular business needs. Here are some of the common approaches to structuring engineering teams
- Feature teams: Cross functional teams that are able to deliver features end to end and may work across many different services to get things done.
- Component teams: Teams that have full ownership over one or more compoments or serivces.
- Platform teams: A team that provides a platform used by other engineering teams e.g. maintaining a Kuberentes cluster for other teams to deploy to.
- SRE / Operations teams: A team dedicated to operations
- Purpose: Members proudly share a sense of why the team exists and are invested in accomplishing its mission and goals.
- Priorities: Members know what needs to be done next, by whom, and by when to achieve team goals.
- Roles: Members know their roles in getting tasks done and when to allow a more skillful member to do a certain task.
- Decisions: Authority and decision-making lines are clearly understood.
- Conflict: Conflict is dealt with openly and is considered important to decision-making and personal growth.
- Personal traits: members feel their unique personalities are appreciated and well utilized.
- Norms: Group norms for working together are set and seen as standards for every one in the groups.
- Effectiveness: Members find team meetings efficient and productive and look forward to this time together.
- Success: Members know clearly when the team has met with success and share in this equally and proudly.
- Training: Opportunities for feedback and updating skills are provided and taken advantage of by team members.
DORA metrics are used by DevOps teams to measure their performance and find out whether they are “low performers” to “elite performers”. The four metrics used are:
- Deployment Frequency: Refers to the frequency of successful software releases to production.
- Lead Time for Changes: Captures the time between a code change commit and its deployable state.
- Mean Time to Recovery: Measures the time between an interruption due to deployment or system failure and full recovery.
- Change Failure Rate: Indicates how often a team’s changes or hotfixes lead to failures after the code has been deployed.
I recommend the following online courses for software engineering managers.
- The Manager's Path: A Guide for Tech Leaders Navigating Growth and Change
- When They Win, You Win: Being a Great Manager Is Simpler Than You Think
- Radical Candor: Be a Kickass Boss Without Losing Your Humanity
- The Making of a Manager: What to Do When Everyone Looks to You
- Become an Effective Software Engineering Manager
- An Elegant Puzzle: Systems of Engineering Management
- Resilient Management
- The Work of Leaders: How Vision, Alignment, and Execution Will Change the Way You Lead
- The Coaching Habit: Say Less, Ask More & Change the Way You Lead Forever
- Coaching for Performance: GROWing Human Potential and Purpose - the Principles and Practice of Coaching and Leadership
- Vision, Alignment, Execution