Throughout my 20 years in the software industry, I've been immersed in many different types of engineering cultures across numerous industries and in companies of all sizes. I've been a manager for more than 15 years, and during that time, I've learned not only from others' mistakes and best practices but from my own. The No. 1 lesson I've learned—and that I love to share with other engineering managers—is that culture matters. Culture is fundamental to cultivating elite, highly effective teams.
Lately, the Great Resignation has underscored how important it is for engineers to be engaged and interested in their work. Now, in the current challenging economic climate, when engineering leaders are being tasked to "do more with less," culture matters even more.
With that in mind, I can sum up the culture-building practices that have worked for me on my engineering leadership journey with an easy-to-remember mnemonic of the 3Es—Engagement, Execution and Excellence.
Engagement is all about getting each member of your diverse team to maximize their special strengths and bring their full abilities to the table.
Start by engaging your direct reports by building a connection with each of them. Have a weekly (not less!) one-on-one with each of them, actively listening to their concerns and spending time to get to know them better. By establishing this "relationship power," you can make small adjustments to their behaviours to help them grow and improve, ultimately benefiting them and the entire team. Strive to communicate clear expectations, and help people understand the context of what they're working on so they understand their impact—and make sure they are recognized for their good work.
It's important to recognize that each person is unique, with different abilities, perspectives, and motivations. As a leader, understanding the individuals you manage is crucial in creating an environment that supports their growth and success. Early in my career, I made the mistake of assuming that what made me happy as a director would also make my team members happy. I valued autonomy over my projects, but this approach was not effective with a team that had different needs and preferences. In fact, one of my best performers felt undervalued and unappreciated because I did not check up on her progress as much as she expected.
This experience taught me several valuable lessons:
- Ask, don't assume. Your team members will appreciate being asked about their work preferences and growth goals and will provide valuable insight. Not everyone will provide direct feedback, but it's the manager's responsibility to be sensitive and create an environment of open communication.
- Adapt your management style to each team member. Tailoring your approach to individual needs and preferences will maximize your effectiveness as a leader.
- Regularly engage with your team members, even when there are no issues to address. In fact, it's often beneficial to spend more time with your strongest performers, as their improvement can drive the most impact overall.
- Trust takes time to build, and people have different needs at different times. It's your responsibility as a leader to provide the necessary tools and resources to help team members overcome challenges as they arise and reach their full potential.
Additionally, engage your team in hearty collaboration, emphasizing pride in the team. Group members together for project work and host regular knowledge-sharing sessions. When urgent issues arise, hold all-hands-on-deck group sessions, soliciting feedback and innovative ideas. A collaborative culture encourages team members to feel invested in their work and in each other, which can improve job satisfaction, team performance, and ultimately lead to a more successful and effective organization.
The secret to getting things done is relying on the force of habit in the day-to-day work.
Elite teams thrive on the force of habit, which is created by putting the right rituals in place. For example, I am a huge fan of the release train model: the train leaves every week at the same time, and whatever feature is onboard the train when it pulls out of the station gets to go to production, and the rest wait for the next departure. This approach offers many significant advantages:
- The team is able to ship constantly, minimizing the build size and ensuring that content is testable and not breaking. This reduces the stress or anxiety that often comes with a major event.
- Provides frequent opportunities for the team to celebrate accomplishments, boost morale, and showcase progress to the rest of the business, which is especially valuable when projects are starting.
- Offers predictability for the team and their cross-functional partners, reducing surprises and enabling more effective planning.
This same method of a regular, predictable process can be applied to other events in software development, like planning, demos, and design reviews.
One of the goals of creating habitual processes is to eventually remove yourself from day-to-day operations. A good leader is measured in their absence, and an effective team can function without your involvement so you can focus on strategic hurdles down the line.
Now let's improve the quality of what we are building.
- An elite engineering team is one that can focus not just on execution but on excellence. When your release train is chugging smoothly down the tracks, it's time to refine your culture to achieve the highest levels of performance. Here are five activities that can help your teams improve the quality of what they are building.
- Incorporate feedback loops such as linters, code complexity checks, and thorough code reviews to drive continuous improvement and establish more checkpoints that prevent potential failures. Address issues in a methodical manner and integrate automated tests, constantly iterating to enhance the quality and efficiency of each step. You'll see higher quality outcomes and larger confident strides in value delivery velocity.
- Foster psychological safety so that even if those guardrails fail, the good intentions of all team members is always assumed. Work hard to create a "no blame" environment to allow your team to innovate and take big risks.
- Enable your team to own end-to-end parts of the work and give them the time and tools they need to improve the product. This empowerment will foster creativity and innovation in the team and increase their sense of accountability and engagement.
- Eat your own dog food daily. Using and testing your own product as end users is another ritual to adopt religiously.
- Emphasize the quest for excellence. Excellence should be a well-known objective, ingrained in your culture, and embraced by each member of the team on both a personal and team level.
For a manager, the intrinsic reward of helping people grow is a large part of what I value, but I also receive great satisfaction from knowing that what I do makes a significant impact on my company's success. I firmly believe that succeeding in this job boils down to one thing: culture. Approaching the challenges of each day with the 3Es — Engagement, Execution and Excellence—in mind is a great way to create an environment that helps great people do their best work.