Mike Cannon-Brookes was on the radio.
Slamming the government's drive to cut down on 457 visas. “We
don't have the scale or scope of talent here”. For some reason
his words were making me angry. Red hot under the collar, steam
coming out of my ears type angry.
So I had to reflect. Was my anger
because I'm not sure we actually have a
shortage of software developers in Australia? Or that I think
that employers in this industry are continually trying to hire
people that they don't have to train? No. They might have been a
contributing factor to my internal steam levels, but they weren't the
cause.
I was getting annoyed because of the
use of the word “talent”. To me it is such a nebulous term. What
on earth do we mean when we use the word “talent” in the software
industry?
I have a dread suspicion that it is an
unconsciously used synonym to indicate “superstar” employee. That
the real complaint here is not that we do not have enough developers,
rather, that we do not enough superstar developers.
Trying to break this down a bit, first
off, what is talent? In this article
Scott Barry Kaufman, adjunct assistant professor of psychology at New
York University, tells us that talent and practice are intertwined.
And that 10
years of deliberate
practice
seems to be the general rule when it comes to developing deep domain
specific knowledge.
Which leads me to wonder if the speaker
at the developers breakfast I attended a few weeks ago, targeted the
right thing when he suggested that we use the latest “hot”
languages and tools to attract the “young talent, fresh out of
university”. Surely we should be looking to attract the older and
more staid developers, rather than avoiding them, if we are looking
for deep domain specific knowledge?
Scott Barry Kaufman goes on in the
article to tell
us that talent can be see as the mix of characteristics that
allows someone to either accelerate the acquisition of the deep
domain specific knowledge, or to perform better than someone else who
has a similar level of practice and learning.
He then notes that the interaction of
genes and environment play a distinct role in helping us to develop
by increasing our abilities according to our talents, and in turn
those personal characteristics that we call talent. In the article he
finishes by stating that “we shouldn't dismiss the seemingly
untalented” and that we should in fact be “keeping the door open
and instituting a dynamic talent development process where the only
admission criterion is readiness for engagement”
Which is not what I feel we are doing
in the software industry.
I have two dead canaries in this coal
mine.
The first is Ted
Neward. I've never met Ted Neward, and I have no idea what he is
like as a person. However, I do know that not only does he write
books and articles, he has also written what is to me one of the most
insightful blog postings I've ever read in my career in software: The
Vietnam Of Computer Science. I believe that the world would
actually be a better place if this blog posting was required reading
for software developers.
So if Ted Neward was interested in
working for a company I was at, I would be delighted, as we could
learn much from him. I would be trying to find out what he was like
as a person, and seeing if he was a good fit for the people he was
going to be working with. I certainly would not be getting him to
write a programming test.
However, in this whacky industry: yes,
he was required
to write a programming test. And was rejected on that basis!
My second canary is someone I met
socially, recently, right here in Melbourne, who has been unemployed
since graduating two years ago. One of the desirable “young talent,
fresh out of university”. Unable to find work, he has been getting
by through tutoring and part time teaching at the university he
graduated from. So. Degreed, good enough to be invited to tutor and
teach, but not “talented” enough to hire, in a country where we
are claiming to have a shortage that is so bad we need to bring in
people from overseas on special visas.
What seems to be happening is that the
software industry has adopted some sort of heard mentality as to how
to hire people. Heard mentality in hiring is apparently normal.
Not rational, but normal.
As ever, though, we've taken it to
extremes by becoming increasingly set on using coding tests to find
out if potential hires have “talent”. But really, how do you set
a coding test for a mix of characteristics that will indicate that
the person in front of you has the potential to be a better developer
than someone with a similar level of experience?
The truth is that if we as an industry
hire like this, a shortage of people passing our tests doesn't
indicate a shortage of developers: it indicates a shortage of
developers that companies are prepared to hire.
Some thoughts have been bothering me
about all of this:
- If anyone is going to have to pass a test showing their ability at hiring time, then I would very much like it to be, say the brain surgeon who may be about to operate on me. Strangely enough, the medical profession doesn't seem to work this way. Why is that?
- Are we actually moving to a world where some newly graduated developers are not going to find work in the industry because they aren't “talented” enough? My second canary seems to indicate that this may indeed be the case.
- Is this the hoary old chestnut about developer productivity raising its head again?
- Why don't we regularly test existing employees? If recruitment tests are actually useful in determining “talent”, then it would be good to regularly check to see if our internal processes are helping our talented developers to further their acquisition of that deep domain knowledge?
- How many companies regularly review their recruitment process and measure its effectiveness?
Having pondered the Scott Barry
Kaufman's article on talent, I've decided that if a developer can
pass a simply “fizz
buzz” test, then they have enough “talent” to hire. End of
story.
The onus should actually be on the
companies that hire developers to create environments that are
conducive to developing “talent”. Rather than creating ever more
stringent and time consuming new hire procedures, they should be
“instituting a dynamic talent development process where the only
admission criterion is readiness for engagement”.
Go figure.