About the author:
Kevin Zhang is a Senior Software Engineer building mobile applications at Salesforce in San Francisco. Kevin’s team has gone fully remote in March 2020 like the rest of the company and had to adopt new ways to onboard new team members. His team has used CoScreen to simplify and streamline the remote onboarding process using formal and informal pair programming and other best practices which he describes in this post.
Challenges of remote engineering teams when onboarding new developers
As a small development team of a mobile app, it is critical for us to enable new members to feel part of the team and to ship code quickly. Having been a primarily co-located organization before the pandemic, the transition to being fully remote wasn’t always easy given that more than half of our team joined after the work from order was issued.
The two main issues we’ve experienced when onboarding remote engineers:
- New team members were frustrated because they struggled to get up to speed and rather felt like a burden instead of a boost for the team.
- The existing team felt less productive during the onboarding phase due to the inadequacy of existing collaboration tools.
Even though we tried a variety of video conferencing and screen sharing tools to pair program in real-time, we just didn’t reach the productivity and development flow we had when working together in person. During our first attempts using Zoom, Meet/Hangout, and more specialized pair programming tools, we struggled because only one of us could share at a time which meant that we couldn’t compare and align on progress or point out exactly where we were in the code or which paragraph in a document we were referring to. In addition, not every team member was comfortable with sharing their entire screen all the time because like many of us we had to deal with personal matters at the same time.
Misunderstandings about individual tasks became more frequent which we only discovered late in our development process during our code reviews. This was especially the case for some of our new grad hires who had to ramp up to a complex codebase remotely and I struggled myself as I had only joined that team in July 2020, a few months into the pandemic.
How we improved onboarding remote engineers using CoScreen
In addition to adopting a couple of new practices like more formalized, well-documented onboarding tasks that can be tackled asynchronously (similar to GitLab’s Onboarding Issue), CoScreen has made a major difference in the way we could get new team members up to speed.
This is what CoScreen gives us but no other solution we’ve tried:
- CoScreen enables us to share only specific windows (e.g. an IDE) and share control only for them instead of over the whole system which helps address privacy and security concerns.
- Using CoScreen, we can share both ways: Our new team member can share her IDE and specific code segment she has a question about. Right next to it, I can share a coding snippet in my IDE or a relevant piece of information from Stack Overflow.
- Pair programming of mobile apps is particularly difficult as it requires us to work on a variety of applications like IDEs, emulators, debuggers, and design tools. Collaborative IDEs are not sufficient but CoScreen enables us to collaborate on any application, no matter where we are in our app development workflow (e.g. design, development, debugging, or maintenance). Experienced engineers can take control whenever needed, or highlight relevant code.
- We can even copy & paste code snippets and technical IDs (or rather any kind of text) between our shared windows. That means we don’t have to go via some external chat tool and negotiate who puts which piece of code where.
- For complex issues, urgent incidents or cross-team alignment, we can even collaborate with more than just two team members on a joint desktop - e.g. an app designer, a senior and a junior app developer or the whole team.
Watch CoScreen in action
As we started to use CoScreen during its early private beta, we had to work through a couple of issues with the CoScreen team and we appreciated their in-person support:
- Our team has very different multi-monitor configurations (e.g. up to 3 and in diverse layouts), and the windows sometimes failed to share properly.
- CoScreen didn’t support sharing the Android Emulator at the time, initially limiting our use-cases to document collaboration and walking through websites like Stack Overflow.
- Initially CoScreen didn’t have video chat, so we still had to hop on a Zoom or Google Hangout.
The CoScreen team has been incredibly responsive with understanding our feedback and addressing our issues. The above problems were resolved quickly, the team keeps releasing exciting new features on a frequent basis and created something that is truly a joy to use for teams like us.
CoScreen enables us to onboard new engineering team members in at least 30% less time
CoScreen can provide teams like ours a huge uplift in terms of productivity and it enables us to save at least 30% of efforts until new app developers are fully productive. Thanks to CoScreen, our team can also collaborate more seamlessly after the onboarding phase even on complex development environments like Android Studio.
Learn more about CoScreen!