Must Have Skills for Engineering Managers
Building High Performing Software Engineering Scrum Teams
After 20 years in the Tech industry, I've reached an apex to a fundamental understanding that in order to build successful products one needs to build compelling teams made up of incredibly bright individuals that are driven, nurtured, motivated and most of all appreciated. It is critical that this process begins with its leadership that can easily transmit passion, empathy and a vision easy to opt in.
If you are not passionate about people don't take a CTO role... eventually you will fail because in the end the best and brightest will eventually fail you.
The following are 11 areas we utilize to build our Scrum Software Engineering Teams at our Advanced Engineering Center in Tijuana that tether directly to Product Management.
Building a great team starts with hiring great people. You know who I am talking about. People who are way smarter than you. Professionals who can do things that you can’t do. Do not feel threatened by them; they represent your success, not your demise. As a leader, you should feel threatened only when you are unable to attract and retain them.
Hire people that are compatible with the culture of the team, but encourage diversity and openness. Compatibility doesn’t mean more of the same. It means that you want people who can make the environment better and perform well in the context of your team, improving it by raising the bar.
In small organizations, every hire has a significant impact on the company, especially culturally. Every bad hire costs an enormous amount of money, energy, and productivity. Firing people is not easy at all, so it is far better not to hire the wrong people than to fire them.
That said, if you do have poor performers, you need to fix it. There is nothing worse for a strong performer to work side to side with someone who doesn’t pull his or her weight. Weak performers drive away strong ones.
Now that you hired great people, respect them. Trust them to thrive and innovate. Let them do what you believe they can do. Remember how you hired them because you decided they were smarter than you? Or that they could do things that you can’t do? Let them show you how it is done. Do not quench their spirit.
Instead of telling your people what to do, ask them what you should be doing. Be there for them and support them. Trust and support is the definition of true respect.
For people to do their best, you must define reality just enough to put them on the right path. If you do it well, the team will guide you further than you could have gone by yourself. Help the process by setting clear goals, but avoid being too prescriptive or you’ll suffocate innovation. Also, clearly define roles and responsibilities, but don’t make them so narrow to box your people.
Define the mission and the values, and keep those stable over time. Moreover, help your people understand what success looks like with a clear vision of the horizon you want to reach. Then, set clear high-level priorities in the form of goals and milestones, and get out of their way.
Culture starts at the top and grows at the bottom. You sprinkle the seeds of culture with every word, action, and interaction. The seedlings that form as a result will take a life of their own and grow into a forest.
Culture grows and evolves no matter what you do, so it is worth putting the right seeds in the right places. Once it grows, it needs to be maintained. Prune it, trim it, take care of it every day. If you let it go wild and unchecked, it might disintegrate and become unruly. You can prevent that kind of issue by stopping any cultural cancer on its tracks. Pay attention, and do not let it grow into a monstrosity.
Since you hired smart people, people smarter than you, let them do their job. Don’t try to change them, but do not prevent them from evolving. Leverage their strengths, let them do their best and get out of their way.
Encourage people to make mistakes, once. Then, keep your eyes open to make sure they don’t repeat it. Repeated mistakes become part of the culture, and they are difficult to eradicate.
High performing teams have a rhythm. When it is healthy, it sounds like a regular heartbeat of value delivered to the customer generated with an absence of toxic friction. If the team delivers value often and learns from each delivery, that heartbeat grows stronger over time.
A leader beats the drums by setting achievable expectations and creating an environment where those expectations can be met. Success should feel like a rush of energy flow through the organization, while failure should feel like a learning experience.
Quality is not just QA’s responsibility. Quality is everyone’s responsibility: Developers, quality engineers, agile coaches, project managers, people managers, product owners, designers, and executives. Everyone needs to be concerned and focus on creating high-quality products.
The responsibility of QA is to catch and verify missed issues, not to enforce quality. QA quality Assurance is there to help the process of creating quality results, not to block the team from shipping software.
You hired smart people because you want them to bring their expertise and guidance to the team. You want them to express themselves. That is why you brought them in. You should listen very carefully to what they have to say and create an environment where they can speak freely and where everybody listens.
Listening means understanding what is being said and considering it with care. It doesn’t mean agreeing with everything. That’d be chaos.
Allow your people to thrive by letting the best ideas influence the environment, the culture, and the strategy. The best ideas should prevail, regardless of who came up with them. Allow the value of each idea to guide decisions and not the title or role of whoever had it.
When you build software, you look for problems, evaluate them and fix them systematically or document them with care. The same rigor should be applied to everything else that can affect a team: culture, process, strategy, work environment, interactions, etc. When you notice that something is not working, evaluate its priority and fix it.
You also need to focus; so, in practice, you can’t fix everything. If something is not a priority, document it, archive it and do not forget to come back to it.
Never let severe problems go for too long. They tend to grow like cancer and affect the culture of a team. Talk to your team and listen carefully for nascent issues. Leverage the collective wisdom to find solutions.
Focus on the most critical priorities and avoid changing too many things at once. Let the dust settle after making changes and study the new landscape to see where the situation settles.
Highly performing engineering teams are always learning from experience, observation, the evolution of technologies and mistakes. Learning doesn’t come for free, but not learning is far more expensive.
Encourage your team to learn something new every day. Provide learning opportunities such as conferences, books, articles, training sessions, brown bags, etc. Give time to your team for exploration of new technologies and trends.
Highly productive engineers will not stay working for a company that doesn’t provide learning opportunities. They will leave in search for their next evolutionary step. That is how they became highly productive, and they are going to become unhappy if they feel stagnant.
Be careful not to confuse being busy with learning. A hard-working team is not necessarily learning. The difference is critical.
Get to know your people. Understand their strengths and weaknesses. Help them move to that place where they can be their best.
Within the boundaries of their comfort zone (and yours), get to know your people personally, not just professionally. Relationships that you build at work can be lifetime partnerships and friendships. People that understand and care for each other work better together and help each other and the company succeed.