Many times as a Software Engineer you might have realized you grown your toolset of skills and feel you deserve a promotion. However, during the promotion cycle, your manager gave you feedback that for you to get promoted you need to grow others around you. This statement might have puzzled you, since when has your performance as an individual contributor had anything to do with other people? It is called the Individual Contributor path for a reason, no?

While you may excel in your technical skills and abilities, it’s important to remember that most software engineering positions involve working with a team. Collaboration between developers, product managers, and designers can lead to better products and make you a valuable member of the team.

Teamwork Series

We can define Software Engineering as the union of people, processes, and products to enable the continuous delivery of value to our end users. There can be no promotion if the team does not grow with it.

“Teamwork” is a series of posts where I will be sharing my learnings from topics surrounding working with teams like Team Cohesion, Coaching and Mentoring, Delegating and Sponsoring, and others from the perspective of an Engineering Manager. These tools will allow you to support and lead your tech team grow with you.

Team Cohesion

In my first post, I will be talking about Team Cohesion especially working on agile development. Teamwork plays a crucial role in agile, an approach to software development that emphasizes continuous delivery, iterative development, and the ability to quickly respond to change.

In an agile team, everyone works together closely to create high-quality software products. According to the Society for Human Resource Management, teamwork and collaboration are one of the top skills that employers look for in job candidates. Therefore, to achieve success as a Software Engineer, you need to work well with others.

For everyone working together, team members need to click like pieces of a clock to move the arms in sync. But we are all different. We have different backgrounds, different personalities, and different ways of working. But, we need to find a way to coordinate our efforts in a direction that works for everyone despite our different strengths and weaknesses including unique ways of communicating, learning, and growing.

What can the team do?

There are times when team members might not be able to work together as a team. This is where the role of an Engineering Manager comes in. The Engineering Manager is responsible for ensuring that the team is working together effectively and efficiently. One of the most important skills that an Engineering Manager needs to have is to build team cohesion. Team cohesion is the degree to which team members are attracted to, motivated by, and committed to the team. It is the glue that holds the team together, and the reason why people stay in a team and work together to achieve a common goal. Let’s talk about some of the tools that could help you build team cohesion.

Team user manual

One of the tools that an Engineering Manager can use to build team cohesion is the team user manual. The team user manual is a document that describes the team’s culture, values, and processes. It is a living document that is constantly updated and improved, and It is shared with all team members and stakeholders. It is a document that is used to onboard new team members and to help them understand the team’s culture and processes.

The process of building one requires the inclusion of all team members, and how do we achieve it? We need to start by asking all team members to write their user manuals. The manual describes the team member’s preferred way of working, communicating, learning, and growing. If you want to see an example of one, here is mine.

Once all team members have written their user manuals, the Engineering Manager needs to review them and consolidate them into one document. The document should be shared with all team members and stakeholders. It is important to note that the team user manual is not a static document. It is a living document that is constantly updated and improved.

We can describe the team user manual as the common set of rules that the team members follow to work together effectively and efficiently without stepping on each other’s toes or forcing others to change their ways of working. It deletes bias from leadership and includes everyone in the process of building the team.

Team Charter

Another tool that an Engineering Manager can use to build team cohesion is the team charter. The team charter is a document that describes the team’s mission, vision, and values. It is another living document that is constantly updated and improved, and It is shared with all team members and stakeholders. The team charter is built with the input of the 3 main users of a team: the team members, the stakeholders, and the customers.

The sections of this document include the purpose of the team, the team’s mission statement, the team’s values, and the engineering principles to follow in the software engineering process. It should describe who are the customers and the market research done to understand their needs. You can also include the structure of the team and relevant information like the team user manual.

Finally, it roadmaps the strategy and the actions the team will take in the next 3 to 6 months to solve these needs. One of the most efficient ways to drive this effort is with the Object Key Results methodology.

This document is a living document that is constantly updated and improved when any of its parts pivots or there are new learnings from the customers. It is a document that is used to onboard new team members and to help them understand the team’s mission, vision, and values. It is also used to communicate with stakeholders and customers about the team’s strategy and the actions the team will take. The Team Charter connects the stakeholders, the customers, and the team members on a common goal.

Team Roadmap

Now that we know the rules of the team and the team’s purpose, let’s talk about the product that they build. To build cohesion in the team, the team members need to know what they are working on and what they are planning to do next. We split this into blocks of work called sprints.

This is where the team roadmap comes in. The team roadmap is a document that describes the team’s product strategy and the actions the team will take in the next release to improve the product they are working on.

With the roadmap, we can estimate the amount of work the team will be able to deliver for each sprint. We can also estimate the amount of time it will take to deliver the features. It also helps the stakeholders to understand the team’s progress and to know what they can expect from the team in the next release.

At any given moment every team member can read the roadmap and understand the priorities the team has and what is the next most valuable thing to work on. The roadmap also helps the leadership of the team surface any blockers or risks that might prevent the team from delivering the features on time. It also helps them set confidence levels for the team’s progress.

Effective Communication

Something worst than not collaborating is collaborating poorly. Effective communication is the key to building team cohesion. It is the key to building trust and making sure that everyone is on the same page, and making sure that everyone is working on the most valuable thing to work on.

We need to communicate in a way that is clear, concise, and actionable.

  1. Set clear expectations: Ensure that everyone on the team understands their roles and responsibilities and the expected outcomes. This helps to avoid misunderstandings and ensures that everyone is working towards the same goals.

  2. Foster an open-door policy: Encourage team members to approach each other with any questions or concerns they may have. Creating a safe environment where team members feel comfortable sharing their thoughts and ideas is crucial for effective collaboration.

  3. Use the right communication channels: Different situations call for different communication channels. For example, instant messaging may be more appropriate for quick questions or asynchronous updates, while synchronous meetings may be better for more detailed information and discussions. Utilizing the appropriate communication channels can help to ensure that messages are delivered and received promptly.

  4. Practice active listening: Communication is a two-way street, and effective listening is just as important as effective speaking. Encourage team members to actively listen to each other, ask clarifying questions, and provide feedback.

  5. Provide regular updates: Regular check-ins can help to keep everyone informed of the team’s progress and any changes in direction. This helps to avoid surprises and allows team members to adjust their work accordingly.

Conclusion

In this post, we talked about the importance of team cohesion in agile development. We also talked about the tools that you can use to build team cohesion and grow the team around you. To collaborate effectively we need to understand who we are, how we want to work, what are the most valuable objectives to work on, and how are we going to communicate to update each other. In my next post, I will be talking about Coaching and Mentoring and how to do it effectively. I will also be talking about the different types of coaching and mentoring and how to choose the right one for your team.

References