A team is only as strong as its weakest members, and technical skills are only part of the equation. Learn some key aspects of choosing the right team members and how to find people who will bring you to the next level. Techniques include reading resumes, asking the right interview questions, and assembling a team that will work well together.
- [Instructor] Your tenure as CTO will be as good at your team. Which means probably the single most important thing you'll do as CTO is hiring. It is important that you take your time with this process. I realize that when you need someone it usually means you needed them yesterday, but it's worth taking the time to get the right person for the job and for your team. Start by writing a job description. Really look at what your needs are for the position and be specific. Think about what they'll be doing.
Do they need to architect? Will they be focusing on user interface mostly? Or backend, or the full stack? Are there any specific platforms or libraries that they'll have to know to be valuable? Being clear and thorough will encourage the right people to apply. And it gives you criteria for selection as well. But be realistic. You're not going to find someone whose a full stack engineer who also knows android development and iOS development whose also a DevOp's whizz. Don't just post your job and wait. Be proactive, the best reference you can get if from someone you know and trust.
And the best developers don't go to job boards so ask your network, real and social and have everyone on your team also share. Go to user groups and meetups and make announcements. When you post, don't just go to the free posting sites. Go to specific niche ones that are valuable. GitHub and Stack Overflow are good for technical hires, try Dribbble and Behance for designers and AngelList for startups. Then look for someone who has communicated their match to your description.
Once you have chosen some top resumes, then you need to start weeding out the best fit through interviews. Have a smart interview process that weeds out the inexperience and finds a good cultural fit. Curiosity can be just as important as exact skills. If you have someone who loves PHP and codes in his spare time using it, but has never used Laravel, that might be better than someone who knows PHP and Laravel but has lost some of that enthusiasm. A good way to discover this it to ask about a hot topic in their domain of expertise.
Like what do you about SQL versus NoSQL databases? Think about a trial project. I personally feel it's unfair to ask people to do something as part of the application process. But what about hiring the top two or three candidates to do a two to four week project, just to see how you work together. Beware the rockstar. There's a lot of talk about looking for the best coders and designers but here's the deal. True rockstars are exceedingly rare. And even if you do find one, they will likely want more pay than you'll get for their gain productivity.
Focus on hiring people with the skills you need and a personality to match your culture. Make sure to take a good look at any potential employees work. This might seem obvious but you'd be surprised how many people don't do this. Have them talk through what they did in the app, what the challenges were, and what they might do differently. This will give you an understanding of how they think and how truthful they are. Don't forget to do a code review for your developers. If you don't know the language they're coding in, find someone you trust who does.
At the very least you should be able to see if they are using uniform naming conventions, comments and general code organization even if you don't know their language. The code is their work and it should give you an idea of their technique and approach. Note that success in coding tests, does not necessarily correlate with being able to write good code. Use services like Codility and similar tools with this mind. The same goes for certifications. The code source is the only source.
Always call references and have a look at who they are. If they don't have a reference for the past three jobs, that might be a red flag. Find out how your developers communicate in writing. It's good to do some kind of writing test, this might be a good first step for applications before the phone interview. The easiest way is a simple type form or email questions. Have them describe a project they worked on. The key is to see if they can easily communicate to others what they're working on, what they need and other important things.
Hiring for culture does not mean hiring people that look like you. Hire for diversity. Studies have shown that racially diverse workplaces are 35% more productive and gender diverse companies are 15% more productive. People thrive in organizations with differing opinions and studies support this. The final step is the interview. There are many theories of interviewing, but I personally think interviewing should not be like taking a stressful test. It should be like discussing work with a peer.
It's important to be prepared. You want to know how this person works under pressure, what there ideal working environment and time is, and get a feel for who they are. This means have some questions you want to ask prepared and take 10 minutes to review their resume before they come in. In the end you really just need to know if they can do the job, if they'll be motivated and if they'll get along with your team. Also I think having people on your team drop in versus having a panel and introducing them one at a time is a good approach.
Another option is to hire individuals overseas. We'll discuss this more in the outsourcing movie. This is something I've had great luck with but also some failures. So I wanted to share some of the things that have made it successful. A couple of tips. Hire close, in the US I've had the best luck with South Americans. They have a similar culture, a similar timezone and most speak English pretty well and Spanish is certainly easier to learn than Hindu or Chinese. Post to local boards, this gives you an advantage.
I found a board in Chile for example that I used exclusively to find developers and I had great candidates. Overall hiring is one the most important things you'll do as a CTO. And if you're in a growing company, it's something you'll probably be spending 20 to 30 percent of your time doing on an on going basis. So it's important to take your time to find the right people. We just got to touch on the topic here, but there are many things to think about. The most important thing you can do is spend the time to get to know people during your hiring process. This will save you a lot of pain in the future.
- Hiring a great team
- Enhancing team communications
- Creating a product roadmap
- Capturing and using data and analytics
- Identifying key performance indicators
- Choosing which platform to use
- Managing the product life cycle (PLC)
- Taking feedback
- Public speaking
- Running efficient meetings
- Marketing and launching products
- Growing and scaling
- Managing crises