The MobileCoin Team Machine
Introduction
Many companies try some form of remote engineering and find out that it doesn't work for them. The most common failure mode involves outsourcing development to a dev shop or agency in Eastern Europe, India, or South America. Rates are attractive compared to US devs, but things never seem to go smoothly. Communication, working hours, and quality leave something to be desired.
Managing distributed engineering teams is different. Applying the same techniques and expecting the same results as a colocated team isn't realistic.
When hiring locally, most companies feel like the talent pool of capable developers is frustratingly small. This is what allows recruiters to charge high fees even when they can't tell the difference between Java and JavaScript.
In contrast, the global talent pool is absolutely massive.
Of course, this does not solve the problem all on its own. There are several orders of magnitude more great developers out there, but there are even more time-wasters.
In this manual, we're going to use techniques to:
- Attract quality devs from around the world
- Filter out candidates that lack either the technology skills or suitability to work on a distributed team
- Quickly bring new devs up to speed on your projects, process, and culture, and
- Keep them engaged while increasing their skill and productivity
In other words, this manual will show you a full system for recruiting, vetting, onboarding, and managing a fully distributed engineering team that wall be much more efficient than what can be done locally.
When used correctly, the techniques in this manual act as a "machine" that can be run continuously. As long as the machine runs, you'll be attracting quality engineers that you can add to your team.
The Four Phases
The machine has four phases that work together:
- Recruiting: make the devs want to invest their time and attention to apply to work for you.
- Vetting: quickly cut through unqualified candidates and time-wasters.
- Onboarding: set the tone and rules for the working relationship.
- Managing: maintain engagement and increase productivity over time.
The following chapters will cover each phase. To see how they all work together here's an example timeline from the talent perspective:
- Recruiting
- Read about and get excited about the job
- Attempt and complete the threshold challenge
- Submit application with challenge solution
- Vetting
- Answer interview questions measuring ability to work well on a distributed team
- Receive and accept trial job offer
- Read team coding guidelines
- Attempt and complete the simulation challenge
- Address change requests/code review
- Onboarding
- Receive access to necessary accounts
- Product dogfooding
- Learn team values, process, and core duties
- Take onboarding quiz
- Introductions to team
- Review first PR
- Land first PR
- Managing
- Project workflow
- Code review
- Automated daily standups
- Weekly manager checkins
- Weekly team meeting