From all of my conversations with potential ThoughtWorkers, I have recognized a trend - candidates sporting three very specific inclinations are more likely to be hired by us (and, I’d wager by other companies as well). Let me discuss these characteristics in a little more detail.
The learnability quotientI’d say this is one of the most important developer skills to embrace. Not unlike other creative jobs, a developer has the opportunity to learn something new every single day. We constantly encounter new codebases and new technical challenges at work. The tech landscape changes rapidly enough for any good developer to have to consciously meet the challenge of keeping up with the latest tools, languages and frameworks.
Having said that, it is not mandatory for candidates to have dabbled in every hot framework present on the market, because more important than that is their learnability quotient. Does the candidate have the potential and interest to acquire new skills as and when required. And, how quickly and effectively can they manage this?
“When the student is ready the teacher will appear. When the student is truly ready... The teacher will disappear.” — Lao Tzu, Chinese philosopher and writer
Learnability’s related attributes would be - self-reflection; to know where one stands when it comes to knowledge. Add to this a hunger to improve and self-motivation that ensure the intent to learn morphs into action. And, finally, the ability to apply theory to practice which means there is a willingness to try, fail and try again.
One of my recent interviewees was working with legacy technologies and did not have much scope of learning in his current project. But, he did not let his project load stop him from getting some hands-on experience with other technologies and alternatives in the project.
During the code pairing round, when I asked him to refactor the solution by applying one of the design principles he was, at the time, unaware of - he did come up with the right solution after being provided with basic resources on that design principle. This goes to show that he was able to quickly apply theory to practice - an obvious advantage for any developer.
Other behaviors that attest to a candidate’s learnability are being proactive with personal projects, a willingness to understand a system’s internal makeup and exploring avenues outside their project’s scope. Also, being concept oriented and not syntax oriented, and contributing to open source are key indicators of a candidate’s ‘learnability’.
The collaborative quotient“The strength of the team is each individual member. The strength of each member is the team” — Phil Jackson, American professional basketball executive
When interviewing a candidate, if I am finding it difficult to arrive at a final decision of ‘go or no-go,’ I ask myself a question - Would I like to have the candidate as part of my team at work? Great teams are not made of perfect people, but of people who perfectly understand and help each other out.
It’s important to grow a team where members work with the BA’s for backlog grooming, with the PM's for Release Planning, work collectively to achieve deadlines and project releases.
During one of the hiring workshops at ThoughtWorks, we divided candidates into teams that needed to solve the problem statement. Each team member was supposed to solve one part of the problem. One of the candidates not only implemented his own solution but also helped his teammates in resolving their issues and solving their problems. This is a perfect example of taking the team along - a coveted quality indeed.
The proactive quotientThe number of challenges you have faced determines not your age but your experience.
Not always have the more experienced candidates been able to solve every problem. There have been instances when the former has not had the kind of project experience or has not been a part of a challenging enough situation to know better. Their range of experience is limited by their exposure. I look for the quality that drives a candidate to pick a task - one that others are hesitant to pick up. I appreciate the fact that while that path might begin with mistakes, it will end with valuable experience.
I believe it is our duty as creative folks to exit our comfort zones as learning happens outside of it. There are some candidates who go the extra mile and handle an edge case scenario when it comes to problem solving. They explore something that wasn’t discussed during the pairing (evaluation) rounds. These individuals think ahead and craft their solutions to be extensible and plan for foreseeable changes. We, at ThoughtWorks have seen such candidates not only perform better in projects, but also tend towards proactively picking up challenges ahead of others.
I really enjoy interviewing because I am able to be a part of different perspectives and approaches for the same problem. It expands my own horizons because I get to view the problem from several different angles, and that feeds my need to learn and grow as a creative developer, a creative person.