Team building and recruitment for software engineers is part of the Software Development Managers job. These are some of the “non-techie” and “soft skills” I look for when building a team. Most cannot be identified by an ATS.
A carefully constructed and updated job description written by a Software Development Manager or Software Engineer for a specific job can target specific candidates – unlike some of todays “capture whole department” JD’s written by non-techies. We never had a problem before reducing applicant amount using accurate JD’s, and filtering them by eye. I would say we had a better outcome as great candidates always get to the front of the line. It is imperative that the Software Development Manager and their team(s) are involved at all stages of recruitment.
Project Size and Complexity
For small projects it is important to have jack-of-all-trades, that is people who are multi-skilled but for larger projects specialized people in each area become more and more important.
We also need to consider the size and complexity of the project, and the time it will most likely take to complete. There will be peaks and troughs in effort required and dependencies between tasks. To fill these peaks and troughs it would be foolish and expensive to recruit more permanent staff – unless they can be re-allocated from elsewhere in the organization. If the resources are from the existing resource pool then there are no real risks but should you employ someone specifically for the project you need to consider local employment rights legislation.
Qualified or unqualified, Academic or Experienced?
Qualification is used by HR and ATS’s and filters out experienced candidates. A Software Development Manager can see real experience with or without qualification in a resume or interview. I also hold the view that qualification alone is not useful unless we have real experiences and there are people with experience but no qualification.
Academics can pass tests but have little if any practical experience to solve real life problems, whereas, experienced people have real-life practical experience and may find tests suited to academics harder – but given a real-world test will flourish.
We need experience and ability, but also responsibility to give newcomers a chance, therefore, we must balance the team, and we may require two interview strategies to do so.
Domain Specific or Global?
Domain specific software engineers focus on knowing software engineering for one industry very well. Global Software Engineers bring new ideas to the table. If we stuck with just domain specific software engineers, we are likely to get stuck in our ways – and create our own skills crisis. Again, we can balance the team with both. If we recruit from one domain we lose lots of opportunity to grow.
Pragmatic, Evangelist, or Zealot
With doubt pragmatic’s as they are guided by practical considerations than by ideals of any tool, process, or technology. They will know the time when to implement a quick or elegant and robust solution, and most likely to see a balance between practicality and perfection. Evangelist can be an excellent choice for a change program.
Skeptics or Optimists
Optimists assume their code will never fail and reduce testing to match, whereas, Skeptics will test far more thoroughly.
Great Software Engineers question and constructively criticize a plan if it doesn’t make sense. Others do word for word whatever you say without question. We need those who come forward – but we should accept responsibility as a manager to ensure we also give opportunity for them to come forward and not reject them.
Can take the rough with the smooth
Many software engineers love to write new code – but few loves to debug. Fewer will want to debug someone else’s code. Great software engineers even if not enjoying the task will dive in and resolve the bug – even if it wasn’t theirs.
After much time solving a problem with a particular tool, process, or technology evidence arises showing others are or even were better. A great software engineer knows when to press the rest button and admit when being wrong
Many are fans of waterfall or agile but not both but a time may arise when a short project using the other came along. Great Software Engineers will get on with it
Many like to work on the latest technology but there are times when we have to maintain legacy software. Again, great Software Engineers will just do it.
It is very easy to exclude and create a skills crisis where none existed by being to specific with qualifications and domain requirements. We can also create problems in the team spirit if we recruit non-team players such as zealots or those that cannot take the rough with the smooth. We need also to look at where a candidate and employer can collaborate with the candidate bringing new ideas to the table, and the employer offering the candidate a chance of new experiences.
There is a lot more to team building and recruitment that an ATS can cope with. Only a Software Development Manager or Software Engineer has ability to extract this information with discussion.