Best Practices for High Performing Engineering Teams
By Dr. Patrick Desbrow, Senior VP of Engineering, MomentFeed
A group of individuals can be very productive and perform at high levels, however, no single contributor can succeed alone on very large endeavors. At some point, all the code has to be combined as part of a unified platform. This means even the singular contributors must learn to collaborate. Steven Covey refers to this in his book, “The Seven Habit of Highly Effective People” as Synergy (Habit 6). If people work together in a collaborative way their level of productivity becomes greater than the sum total of their individual efforts. Technology managers have learned through trial and effort the benefits that can be gained when they create a culture of high performing teams.
Luckily, we live in the age of knowledge sharing and best practices are readily available. We’re happy to share some of these here for you.
Identify the team’s purpose
Make sure you’re focusing the team’s efforts in the most beneficial and constructive ways. Typically, there are several internal stakeholder groups that are lobbying for access to the engineering team. Sales, professional services, support, and customer success all represent different customer touch points that demand your team’s attention. They cannot be ignored but neither can they be allowed to highjack the product roadmap.
Many SaaS companies offer several products where technology managers have to work through a multitude of differentiating purposes. MomentFeed’s product line is an example of this. The focus of each team must stay just one of the products in the overall platform such as Social Media, Paid Media, Review Management, or Multiplication management services.
Technology managers must balance these priorities
Start with the business goals handed down by the leadership team.
Technology managers should always surround their teams with process, product management and the appropriate gates that ensure high levels of quality assurance
These goals must be translated into product features, bug remediation, and technical debt projects. Next up is to inventory the key stakeholder requests and map them back to these projects. This should be your priority and represent at least 70 percent of the team committed capacity. The remaining percentage can be allocated to the other requests rotating through each of the internal stakeholder needs as part of the agile sprint cycle.
Pick the best team members
It may seem obvious but you need to recruit the best people with the right skills and a positive attitude. However, managers do not usually have the luxury to create their teams from scratch. Most of the time they inherit entire departments already organized into existing teams. Take a look at each team’s construction and their corresponding sprint metrics.
Here are some key signals that you probably need to make a change to the team:
• More than half of the team members are in remote locations or asynchronous time zones
• A pattern of slow burn down metrics (i.e. less than 13 story points per team member)
• Consistently low velocity percentages (i.e. less than < 70 percent completion of the committed stories)
• Personality conflicts between team members
Coach them like a professional sports team
Professional sports are full of examples of high performing teams. There is a lot to be learned from these coaches and managers. They’ve honed their skills at scouting top talent, onboarding them and developing their individual skills. Coaches are always on the field during practice sessions and on game day. They assign each team member to specific roles in the team so the group has the best chance to meet their objective and win.
The best technology managers think like sports coaches
Take time to develop your engineers into subject manager experts. Assign each technologist to the team and role that provides the highest impact. Make time to invest time in their personal career growth and teach them to mentor other members of the team. Use the five agile meetings (sprint planning, daily scrum, sprint review, retrospective, and backlog refinement) to stay close to the action. Create coaching opportunities that result in better story planning, better stand-ups, better delivery, and better retrospectives.
Surround the team with a process
Technology managers should always surround their teams with process, project management and the appropriate review and approval gates that ensure high levels of quality assurance. Agile is the process, with the five-meeting structure designed to optimize the software development lifecycle (SDLC). Product managers and quality assurance engineering work together to define and test the agile epics, stories and tasks. This works best when you use software tools such as Jira to enforce the workflows and add steps for QA and product management review.
Take a look at your software development teams. Are they performing at the highest levels consistently? If not, consider the best practices presented here as a way to audit and improve. Team productivity requires more than planning and execution. The team itself needs a continuous level of scrutiny to remain competitive in the world of commercial software development.