This is a guest post by Miguel Pinto, the former CEO and CTO of Rocket Internet’s Porto Tech Center.
Introduction
As many of you know, finding quality tech talent is one of the most challenging tasks you will encounter when you start or want to grow your project. The demand is great and the supply is reasonably limited if you consider the buzz around the international startup scene.
Now imagine you have to hire a high number of programmers in a very short time and create big scale projects with hundreds of thousands of visits a day, growing at a fast pace and under immense pressure.
This is what I encountered when I was at the Porto Tech Center and was in charge of over 140 programmers within six months, handling big projects like Zalando, Jumia and Lazada, and foodpanda.
This may look like a mission impossible but let me tell you, it is not. There are a couple of tricks and techniques you can use to speed up your hiring and onboarding processes, and to manage the performance of your team.
Following ‘lean’ principles, you start by identifying the questions and seeking the answers, and defining your objectives and long and short term strategies using small iterations with clear objectives. Then you analyse the results to identify problems and adapt to solutions, testing them in short cycles and leveraging the lessons learned in each cycle.
Scenario
Let’s use a hypothetical startup called Hyper Speed Development Systems, or HSDS for short. The company has a CEO, a CTO, an HR professional, one team leader and two developers, and it needs to find 20 additional developers and four team leaders.
Given this initial scenario, how do you start? Start by answering the following questions:
- How is the current team’s daily life? How do they interact with each other? What type of personality does each member have, and how does that define the personality of the team as a whole?
- How big is the ideal team? What is the role of a team lead? What are their daily functions? What technologies do they use?
- What can be improved in order to make the team’s working experience more pleasant?
These kinds of questions will help you define the type of candidate you are looking for, aside from the technical expertise required – being very good technically does not necessarily mean that person will integrate well with the rest of the team, and you need a nice stable team.
Having answered those questions, you now know the team’s personality and thus what type of person would be a good fit, and this will help you when evaluating a candidate.
Finding candidates
In answering the questions, you will have defined what technologies your company is using. In our example, let’s say it’s the following:
- Frontend: Html, CSS, JavaScript
- Backend: PHP, Mysql
So you define an offer, and post it on job boards, the company’s website and social networks accounts. What next?
There are a few other ways to spread the word. You can find groups on social networks dedicated to those technologies, join them and then share your offer. Or you can join a local or national group for those technologies. In our case, we are looking for PHP user groups, and UX/frontend related user groups, forums and meetings. Don’t just post job ads in these groups; connect with them, encourage your existing teams to participate in them, sponsor an event once in a while if you can – it’s usually not too expensive and the return on investment can be huge.
Filtering the candidates
Make sure your HR team knows the concepts behind the technologies you use and that they understand how things work (in theory they don’t need to know how to program, just the concept). This will help them better filter the candidates sent to technical interviews. Use the knowledge you gain about your own team to evaluate the candidates as well, and make sure you won’t create conflicts within the team.
Ask if the candidate has any project online that you can check out, ask for code examples or collaborations with open source projects, and obtain links to the candidate profile on code sharing sites like github or bitbucket so the CTO can better evaluate the quality of the work before the technical interview.
By reducing the amount of candidates you send for technical review, you are giving your CTO more time to focus on the system and guiding the teams rather than on interviews.
After you have identified a promising candidate, don’t take weeks to make a decision – good candidates may well have found another job in the meantime, so be quick about it.
Follow up on the team
Make sure to follow up with your team from time to time, checking how its personality changes and adapts with each new member. Each new addition will trigger changes in a team’s overall behavior, and you should track those changes from the beginning, regularly evaluating a new member’s integration over the first few months. This will help you better understand your team over time and make your connection with them stronger, which will in turn will provide you with more detailed information on the team’s performance and problems helping you modify your strategies accordingly.
Avoid non-technical problems from affecting developers. Having a good CTO and a good overall plan will help you define goals and features for the team to develop in short cycles, providing you with the feedback you need to shape your product and company. It also avoids developers doing unnecessary work. They hate seeing hours of work thrown away without any logical reason.
If you follow the plan you won’t change your mind in the middle of development, and if after testing a feature with clients you need to pivot (alter, add or remove functionality and/or characteristics) you have valid reasons for it, so let your team know, let them feel that is not their fault and that you appreciate the effort they put into building it.
Try and be open and available for your team, and be vigilant of their state of mind. Even if it takes more time to open up or create a connection, IT people are like most other people in that they have highs and lows. By listening to your team members, you will know how they feel regarding themselves, their life and their work. This will help you see in advance possible problems or mood changes in the team.
Productivity is directly related to the mood and state of mind of your team.
Handle problems swiftly
Every team will encounter problems; ups and downs are only natural. So make sure you do the following:
- Anticipate problems by knowing and cultivating a strong connection with your team.
- Bring every team member up to an equal standard, making sure that team leads, developers and any other team member are all at the same level in terms of importance. They may have different daily tasks and responsibilities, but they should all be treated in the same manner and have their opinions heard.
- Handle problems at an early stage. When you detect a small problem with your team don’t ignore it; tiny things have a way of growing into big problems. Sometimes the right word at the right time takes you a long way towards avoiding more serious situations.
- Hear everyone and measure the situation. If you need to intervene in some way never disclose how you received the information, nor make it obvious for the other person to find out; rather, try and find the root reason of the situation – people make mistakes, and it is much better to understand why and avoid repeating those mistakes, than it is to punish those involved. Talk openly with your team; knowing each of them personally will also help you know how to better reach out to them in order to achieve your goals.
Miguel is holding an HR workshop called ‘IT Concepts for HR Professionals’ on November 21 and 22 in Berlin. Sign up on Eventbrite.