The essential skills of a developer, and why don't we check them during an interview

Arseni Mourzenko
Founder and lead developer
November 29, 2019
Tags: hiring 14

A few months ago, I de­scribed a frac­ture which ex­ists be­tween the skills con­sid­ered de­sir­able dur­ing an in­ter­view and the skills which are ac­tu­al­ly valu­able for an em­ploy­ee. I haven't ex­plained, how­ev­er, the rea­sons for this frac­ture. This is the goal of the cur­rent ar­ti­cle.

For those of you who don't have time read­ing the linked ar­ti­cle, the idea, es­sen­tial­ly, was that com­mu­ni­ca­tion skills, team­work, abil­i­ty to learn, and a few oth­er char­ac­ter­is­tics of a can­di­date are not as valu­able as the pol­i­tics, the abil­i­ty to fo­cus a bit in a con­cen­tra­tion-hos­tile en­vi­ron­ment, or the abil­i­ty to give an im­pres­sion that you do your job.

Two things need to be ques­tioned there. First, if play­ing pol­i­tics is more im­por­tant than be­ing able to work with a new fan­cy frame­work, why would any­one spend a hour test­ing the knowl­edge of the fan­cy frame­work and not how well are per­son's skills in pol­i­tics? Sec­ond, if it is most­ly worth­less for a com­pa­ny to en­cour­age work­ers to make it look like they are do­ing some­thing use­ful, why is the skill so valu­able?

The sec­ond ques­tion is the eas­i­est: the lack of prop­er mea­sure­ment of em­ploy­ers' pro­duc­tiv­i­ty. Most man­agers as­sume that they some­how mag­i­cal­ly would de­ter­mine who is work­ing well, and who is not, and that based on their sub­jec­tive ob­ser­va­tion, they will some­how make per­fect­ly ob­jec­tive de­ci­sion to fire some­one, and pro­mote some­one else. Near­ly all man­agers are com­plete­ly clue­less about the fact that the pro­duc­tiv­i­ty can be mea­sured, and most don't even care. When it comes to the de­vel­op­ers, they op­ti­mize for what could help them to get a pro­mo­tion. There­fore, if their pro­duc­tiv­i­ty is mea­sured, they will ei­ther op­ti­mize for high­er pro­duc­tiv­i­ty or game the sys­tem. If noth­ing is mea­sured, they will op­ti­mize to ap­pear bet­ter than they are in the man­age­ment's eyes.

So why wouldn't we stop be­ing fools and start test­ing for what re­al­ly mat­ters?

OK, John. Next ques­tion. Imag­ine you're at the meet­ing room. Your cowork­er, who tries to get the po­si­tion of a team leader that you de­serve is pre­sent­ing a de­sign pro­pos­al (it seems that he did a great job) for a new fea­ture, based on a MQS. You re­mem­ber a dis­cus­sion with Nan­cy where she was telling that us­ing MQS in the con­text of this pro­ject would be com­plete­ly crazy, but her ar­gu­ment was rather shal­low, and she knows that. You no­tice that she's fid­get­ing in the cor­ner of the meet­ing room: she wants to say that the pro­pos­al of your col­league is un­ac­cept­able, but she is afraid that every­one would be against her. What do you do, giv­en that your man­ag­er is in the room? What do you do if he isn't?

You can't imag­ine how much I would like to ask this ques­tion dur­ing an in­ter­view. You can imag­ine how help­ful an an­swer to that ques­tion would be in or­der to eval­u­ate a can­di­date, as well as his sin­cer­i­ty! And nat­u­ral­ly, you can imag­ine why I wouldn't ask this ques­tion dur­ing an in­ter­view, and if I asked, why most can­di­dates won't an­swer.

Self-de­cep­tion is quite fre­quent when it comes to choos­ing some­thing. It re­quires knowl­edge and self-aware­ness to un­der­stand some of the rea­sons of the choice, and ad­mit­ting some oth­er rea­sons is not that sim­ple. Take, for in­stance, a choice of a new piece of clothes. What would be the rea­sons you would pub­licly ac­knowl­edge? The piece of clothes is nice? It suits you? Its col­or fits nice­ly with your oth­er clothes? And now, what are the ac­tu­al rea­sons that you won't ad­mit some­times even to your­self? That the piece of clothes is ex­pen­sive, which should be able to make you look more at­trac­tive to the op­po­site sex? Or that it makes you look thin­ner? Or that you haven't bought clothes for a while, and your cowork­er did re­cent­ly, and every­body looks at her, and you want every­body to look at you in­stead?

It is nat­ur­al to re­ject the fact that the em­ploy­ees who are bet­ter at pol­i­tics or who can cope with the hor­rors of the work­place are the ones who'll win. Oth­er­wise, you'll be faced with two facts: that you have no clue about the ac­tu­al val­ue of the per­sons you man­age, and that you have no pow­er or skills to pro­vide them a de­cent work en­vi­ron­ment. It is much eas­i­er, then, to use self-de­cep­tion by pre­tend­ing that team­work, com­mu­ni­ca­tion and over­all ex­cel­lence are the things that re­al­ly mat­ter. Sim­i­lar­ly, if you start think­ing about the real rea­sons you bought a piece of clothes, you would have to ad­mit that you gained weight, or that oth­er peo­ple want to be with you for your mon­ey, and not be­cause of your nu­mer­ous per­son­al qual­i­ties.

Mis­in­for­ma­tion from a can­di­date is an­oth­er fac­tor which makes it dif­fi­cult to test the skills that mat­ter. In fact, if the can­di­date knows that you are look­ing for per­sons who can cope with noise, bad smells, ter­ri­ble light­ing and low-grade hard­ware, he can op­ti­mize his an­swers to make it look like he's bet­ter than he is. If I take the same ex­am­ple of a piece of clothes, you pos­si­bly want it to be durable, you want to iron it eas­i­ly, and you want it to keep its orig­i­nal col­or no mat­ter how many times you wash it. Now, if you ask the sales­man how durable the piece of clothes is, there are chances that he will en­sure you that you'll be amazed by the qual­i­ty of the clothes he sells. His an­swer is based on the fact that he as­sumes that a spe­cif­ic an­swer would in­crease the chances of sell­ing you the clothes, the same way a can­di­date dur­ing a hir­ing in­ter­view would give what­ev­er an­swer if he be­lieves that it in­crease his chances of be­ing hired.

In or­der to pre­vent mis­in­for­ma­tion, hir­ing staff re­sort to ques­tions for which the can­di­date can­not guess the good an­swer. Tech­ni­cal ques­tions, for in­stance, are ex­act­ly that. If you don't know the dif­fer­ence be­tween the stack and the heap or the num­ber of gen­er­a­tions in .NET Garbage Col­lec­tor, you don't know what an­swer would make me want to hire you. This is one of the rea­sons, by the way, for the em­pha­sis of the in­ter­views on tech­ni­cal skills, and more pre­cise­ly the as­pects of tech­ni­cal skills which could be pre­sent­ed in a form of ques­tions which have a sin­gle right an­swer. When it comes to the skills of a can­di­date to ex­plain things or to learn things, tech­niques are present­ly much less straight­for­ward. The abil­i­ty to ex­plain a sub­ject can be test­ed through an ex­er­cise where the can­di­date ac­tu­al­ly ex­plains you a sub­ject that he knows, and you pre­tend you don't: the dif­fi­cul­ty is that you have to take in ac­count the stress, the un­re­al­is­tic con­text, the time con­straints, and a few oth­er pa­ra­me­ters. The abil­i­ty to learn things can be de­duced from the past ex­pe­ri­ence of the per­son (es­pe­cial­ly the sud­den shifts from one tech­ni­cal stack to an­oth­er), but here again, the task is not sim­ple, and you have to take in ac­count all sorts of el­e­ments, such as the in­ter­est of the per­son for a giv­en tech­nol­o­gy/lan­guage/frame­work, the avail­able time in a con­text of per­son­al con­straints (a new­born could cost you a pro­gram­ming lan­guage you won't learn!), etc. Fi­nal­ly, things like the abil­i­ty to work in hor­ri­ble work­place can­not be test­ed in a scope of an in­ter­view, and you can­not ex­act­ly ask your can­di­date for ob­jec­tive in­for­ma­tion (you can al­ways try to call his pre­vi­ous em­ploy­er and ask how hor­ri­ble the work­ing en­vi­ron­ment is there, but be pre­pared to re­ceive an an­swer you may find... im­po­lite).