Building and Managing an Engineering Team
Remote Engineering Teams
In today’s fast-paced, interconnected world, remote work is becoming the norm rather than the exception in the post-Covid period. As a CTO, leading a remote engineering team can present unique challenges and opportunities. This chapter delves deeper into guidelines, best practices, common pitfalls, and step-by-step instructions for building and managing successful remote teams, along with software recommendations for collaboration, monitoring, and operational purposes.
The advantages of remote work are numerous. A study by Stanford University found that remote workers experienced a 13% increase in productivity compared to their office-bound counterparts. Furthermore, companies like Dell have reported saving up to $12 million per year in real estate costs by implementing remote work policies.
One of the most significant benefits of allowing employees to work remotely is the ability to attract and retain top talent. Good talent is scattered all around the globe, and remote work broadens the talent pool, enabling companies to hire the best engineers regardless of their geographical location. For example, GitLab, an entirely remote company, has over 1,300 employees spread across 65 countries, enabling them to access a diverse range of expertise and perspectives.
To ensure the success of your remote engineering team, it is crucial to create an environment that fosters collaboration and communication. Companies like Automattic, the creator of WordPress, have successfully implemented remote work policies by using tools like Slack, P2, and Zoom to facilitate real-time communication and collaboration among their distributed workforce.
Maintaining a healthy work-life balance is critical for the well-being and productivity of remote employees. To address this, companies like Buffer have instituted policies such as mandatory vacation time and flexible work hours, which have led to increased employee satisfaction and retention rates.
When implementing a remote work policy, it is essential to be mindful of potential pitfalls. For example, remote workers may feel isolated or disconnected from their colleagues, leading to reduced morale and engagement. To combat this, some companies, like Zapier, organize annual team retreats to foster bonding and collaboration among remote employees.
When it comes to budgeting for upskilling and training, companies like Shopify have implemented innovative solutions like “Hack Days,” during which employees can work on personal projects or learn new skills. These initiatives can help maintain employee engagement and satisfaction while fostering a culture of continuous learning and innovation.
Implementing a Remote Engineering Team
Step 1: Assess and Plan
Before transitioning to remote work, assess your company’s readiness and identify any potential challenges. Develop a clear plan that outlines goals, timelines, and necessary resources to ensure a smooth transition. Consider the reasons for implementing remote work and how it aligns with your organization’s mission and values.
Step 2: Establish Clear Policies
Create a comprehensive remote work policy that covers expectations, working hours, communication methods, and performance evaluations. This policy should be transparent and easily accessible, ensuring everyone is on the same page.
Step 3: Select the Right Technology
Choose the appropriate tools to facilitate communication and collaboration among your remote team. Some essential tools include:
- Video conferencing platforms (e.g., Zoom, Microsoft Teams)
- Project management tools (e.g., Jira, Trello, Asana)
- Messaging and collaboration platforms (e.g., Slack, Microsoft Teams, Discord, Telegram)
- File sharing and storage solutions (e.g., Google Drive, Dropbox)
- Time tracking and productivity tools (e.g., Toggl, Time Doctor)
- Documentation (e.g., Notion, Confluence)
- Office software (e.g., Google Docs, Office 365)
Step 4: Foster a Culture of Trust
Trust is vital for remote teams to function effectively. Encourage open communication, accountability, and transparency. Empower employees to make decisions and take ownership of their work. Check the section called “Creating a Supportive Environment” for more information on building a culture of trust.
Step 5: Set Clear Expectations
Establish clear expectations regarding work hours, communication, project deliverables, and performance metrics. Regularly review these expectations with your team to ensure they are aligned with company goals and objectives.
Step 6: Encourage Collaboration and Communication
Foster a collaborative environment by using the selected tools to facilitate regular communication. Schedule team meetings, one-on-one check-ins, and informal chats to maintain team cohesion and prevent feelings of isolation.
Step 7: Offer Training and Support
Provide training and support to help employees adapt to the remote work environment. This may include training on new tools, best practices for remote work, and tips for maintaining work-life balance.
Step 8: Monitor Performance and Adjust
Regularly evaluate the performance of your remote engineering team to identify areas for improvement. Be open to feedback from your team members and make adjustments as needed. Use data-driven insights to inform your decision-making process and optimize team performance.
Step 9: Foster Team-Building and Bonding
Organize virtual team-building activities and social events to strengthen relationships among remote team members. Consider hosting annual in-person retreats or meet-ups to promote camaraderie and collaboration.
Step 10: Continuously Iterate and Improve
As your remote engineering team evolves, continuously review and update your processes, tools, and policies to ensure they remain effective and relevant. Stay up-to-date with industry best practices and be prepared to adapt to the changing needs of your team and organization.
Remember that transitioning to remote work is a gradual process that requires patience, flexibility, and a willingness to learn and adapt.
Enhancing Collaboration in Remote Teams with Mob and Pair Programming
Mob programming and pair programming are collaborative software development techniques that improve code quality, streamline development, and foster teamwork. These practices can be particularly beneficial for remote engineering teams, encouraging communication and collaboration while alleviating feelings of isolation.
Mob programming involves the entire team working together on a single problem using a shared screen. Team members rotate between “driver” and “navigator” roles, allowing for quick issue identification and knowledge sharing. Pair programming, on the other hand, features two developers working together on code, with one as the “driver” and the other as the “navigator.” This process facilitates mutual learning and error-free code.
Pivotal Labs and Corgibytes exemplify the advantages of remote pair programming. By utilizing video conferencing, screen sharing, and collaborative coding environments, these companies maintain strong collaboration and code quality among remote teams. I personally recommend that all cameras be on during both remote mobbing and remote pair programming, as this allows for a more cohesive team experience.
Recently, cloud IDE solutions have emerged to make mob and pair programming more efficient in remote environments. As a dedicated Chromebook fan, I have been using cloud IDEs for a long time due to the limited processor and memory capacities of these devices. Replit (replit.com) offers perfect environments to apply these disciplines with its cloud IDE capabilities and the ability to allow multiple developers to code and chat on the same code at the same time.
Similarly, it is possible to create a similar environment on VSCode with various extensions (such as Visual Studio Live Share), and similar features are also available for Atom Editor. As the popularity of remote work increases, it is inevitable that this feature will become an expected feature of all advanced IDEs and editors.
Streamlining Onboarding New Engineers in Remote Teams
Onboarding new engineers in remote teams can be challenging due to limited face-to-face interactions and potential miscommunication. In a remote setting, familiarizing new hires with teammates, company culture, and hands-on guidance may be difficult. To ensure a smooth and successful onboarding experience for new engineers, consider these strategies:
Begin with pre-onboarding communication, supplying essential information about the team, company culture, and relevant documentation. Introduce new hires to teammates, managers, and other key personnel through video conferences, allowing everyone to share their roles, backgrounds, and remote work tips.
Establish a mentorship program, assigning a mentor or “buddy” to guide the new hire through the onboarding process, answer questions, and provide support. Create a structured training plan that includes both technical and non-technical topics, combining self-paced learning, hands-on exercises, and guided sessions.
Schedule regular check-ins to discuss the new engineer’s progress, address concerns, and provide feedback. Organize virtual team-building activities to foster camaraderie, and set clear communication channels and guidelines, promoting a culture of open communication.
Finally, gather feedback from the new hire and their mentor or manager to evaluate and refine the onboarding process. By implementing these methods, new engineers can become productive and engaged team members despite working remotely.
Running Internship Programs in a Remote Setup
One of the biggest drawbacks of remote work is the difficulty of running an internship program. A successful internship involves a junior employee learning by shadowing a senior employee. This is necessary not only for improving technical skills but also for developing social skills. An intern learns many details by observing an engineer they choose as a role model, from their coding style to defect reporting, and how they handle conversations with project managers. So, how can we provide this development environment in a remote setting?
Unfortunately, there is no solution yet that can replicate the face-to-face approach one-to-one. However, we can try to overcome this with several convergent remedies. For example, an open-cam policy can be beneficial in this regard. Peer and mob programming are also proven methods that can be useful.
In an ideal world, an intern would develop under the mentorship of an engineer. The mentor would get them involved in daily standups, even if they are remote, expose them to the preparation process for meetings, pair with them when coding, and be always available to them.
The Open-Cam Policy: Fostering Connection in Remote Teams
An open-cam policy encourages the use of video during virtual meetings and collaboration sessions in remote work environments.
Improved communication is a significant advantage of an open-cam policy. Visual cues, such as facial expressions and gestures, enable clearer communication and reduce misunderstandings. Furthermore, video creates an immersive and interactive environment, leading to more innovative ideas and better team performance, thus enhancing collaboration. Face-to-face interactions also help establish trust, improve working relationships, and increase job satisfaction, ultimately building trust and rapport among team members.
However, some people believe that implementing an open-cam policy requires consideration of potential drawbacks and privacy concerns. It is essential to respect individual privacy and comfort levels and adjust the policy if necessary. Providing support and resources to address technical challenges, such as unreliable internet connections or low-quality cameras, is also crucial. Striking a balance between fostering connection and respecting individual preferences by making the policy flexible can help mitigate these concerns.
I am a staunch defender of this policy. Just as we do not consider showing our faces to people in the office a privacy issue, I believe that some concerns about privacy when working remotely seem like a luxury.
Furthermore, I believe that people should organize their remote workspace within the framework of their respect for their job. I have been working remotely for many years and, whether or not I have a meeting, I dress as if I were in a real office every day, keep my desk clean, and ensure my hair is neat. I see this behavior as a sign of respect for my work and myself. In my opinion, closed cameras do more harm than good.
Overcoming Internal Challenges and Demonstrating Success
One significant challenge when managing a remote engineering team is addressing concerns from other departments and the board of directors. It’s not uncommon to face resistance or jealousy from sales and finance teams who work in the office daily. If left unaddressed, this discontent may escalate, leading to the board or CEO questioning the effectiveness of remote work arrangements.
To proactively address these concerns, focus on showcasing measurable results backed by data. Compare your team’s productivity before and after implementing remote work, using employee satisfaction scores and the quality of the work produced as key indicators. Demonstrating the positive impact of remote work on your team’s performance will help alleviate doubts and reinforce the value of remote work arrangements.
The role of a CTO comes with its challenges, but being prepared with tangible evidence of your team’s success will help you navigate these internal obstacles and maintain a thriving remote work environment.
Summary
In conclusion, effectively managing a remote engineering team requires a thoughtful approach that takes into account clear communication, effective collaboration, personal relationships, work-life balance, and the right software tools. By following these guidelines and best practices, and learning from the examples of companies that have thrived in remote work, you can build and manage a remote team that is productive, engaged, and satisfied. With the rise of remote work as the future of work, embracing this reality can lead to long-term success for your engineering team and your organization as a whole.
All proceeds from the book go to planting trees. Trees and the PDF · Amazon ↗