Are Companies Hiring Software Engineers All Wrong?
Software has eaten the world – car companies and banks now compete on the quality of their software tools, and whole industries are undergoing disruption. Certainly, technology is a big part of this digital transformation, but none of this is possible without people with the software development talent to make it happen. It is no surprise thatthe competition for tech talent is stiff: NASSCOM predicts the AI, Big Data Analytics talent gap to grow from 62,000 to 1,40,000 over the next three years
If we look at the software engineers’ recruitment landscape, it appears that there is a lacuna in the talent available and in the recruitment process. So,if digital transformation is so important and technical talent so hard to find, why do companies go about hiring software engineers all wrong?
The Lacuna
I’ve seen it happen in dozens of companies. They bring in candidates, put them in a room, give them
a coding test, and tell them they have 45 minutes to complete the code. Perhaps they ask them to find an answer to an absurd and even unsolvable problem. This is meant to be an assessment of a candidate’s technical and problem-solving skills, which is a good goal, but nothing about theseartificial testspredicts how the candidate will actually perform in a real world work environment.
We all have this image of a software coder as a loner, working at odd hours doing things that no one else can understand. The reality is that software engineering and coding is a team effort, with lead architects, project managers, and a repository of code where work-in-progress is shared by a team of developers.
Yet, when companies are assessing candidates, they make the engineers work alone and prohibit them from usingany reference sources, as if the assessment was some sort of school exam. The working world is nothing like school, so why test people that way?
The Assessment Process
When Altimetrik assesses software engineering candidates, we strive to put them in a situation that’s as close to an actual work environment as possible. We call it Playground Exercises for Talent Assessment, and interaction and collaboration are encouraged during the exercise. The word “playground” connotes a sense of fun, putting candidates immediately at ease. The exercises are fun, and candidates tell us they enjoyed and even learned from the experience.
The candidates get a use case to work on, something specific to the industry they will be working in, and they are tasked with finding a solution. They’re encouraged to talk and chat with each other, use Search engines and other online resources, and then code on their own and ultimately present the results of their efforts. We have senior engineers, which we call coaches, walking around helping candidates. The coaches are not there to judge or assess the candidate, just to help them think through any difficulties.
The quality of the code counts, but what we are looking for goes beyond just quality code. Are the candidates thinking not just about coding but also about unit testing and whether the code will work as a piece of a larger whole? Those are the types of attributes we need in software engineers, who don’t just work on one problem in isolation, but work as a team, leveraging each other’s efforts to solve a bigger problem.
As companies strive to rethink their business and undertake digital transformation, they should also look to transform the way they onboard talent. How something is done matters in a team environment, and that is what needs to be evaluated in our hiring processes. I would gladly take three adequate engineers who are great collaborators over four or five great engineers who don’t work well with others.
As with the playgrounds of our youth, our Playground Exercises for Talent Assessment explore whether candidates know how to play well with others. After all, you learn more about a person when you interact with them than when you make them take a standardized test.
Far from having to recall everything from memory, the first step for solving any software development problem is to use Search engine platforms. Why reinvent the wheel when you can find the plans for it on the Internet? The work is collaborative in nature, so we create an environment that assesses someone’s ability to collaborate. What we are really looking for in these sessions is how an engineer works with colleagues. Does he or she contribute to the success of others? When solving a problem, do they get pulled down into a rabbit hole and never come out, or do they know when to seek help?