Veenus Group Seeks Plutonium-Eating Martian Superhero
March 31, 2009
March 31, 2009
Many universities have active careers centres where soon-to-be graduates are matched with employers, making companies, the universities and graduates happy. This is, in general, most likely a good thing.
Problems arise when employers from technological companies are mixed with careers centres of technological institutes. This was demonstrated yesterday in my receiving a "Vacancy for a Developer/Programmer" from Veenus Group.
A recruiter has the task of finding the most suitable candidate for a given opening. Recruiters are just salesmen punting jobs. Like all salespeople, the aim is to get the greatest value for the client at the least cost to the client. There's also the need to sell as many jobs as possible. There's also the need to justify to the client the suitability of a candidate.
For a large organisation employing programmers but where the production of software is not the main focus, those in management are not programmers and those in management were never programmers, therefore those in management are in the worst possible position to make a good decision about hiring programmers because they know nothing of what is required of a good programmer.
So, we have salesmen with targets answering to management who don't know good from bad. Putting together all these factors and adding the IT industry to the mix results in a very messy situation.
Let's digress a bit: what makes a good programmer? Most people in the audience are normally rather quiet at this point because, quite simply, not many people know. It's one of those questions where the answer is really obvious when you know it but otherwise beyond reach.
What makes a good web developer? That's a lot easier to answer, and you'll get calls of 'HTML', 'CSS', 'Dot Net' from the audience. The occasional brave soul will call out 'Ruby on Rails' (the same people calling out 'Java' five years previously). 'XML', shout the old timers.
Perhaps we'll hear 'configuring IIS' or 'installing Apache' as the most obvious ideas run thin on the ground. Mixed in with all this, you'll find the salesman recruiter strafing the audience with acronyms and abbreviations like a technological machine gun spitting red-hot bullet points.
What makes a good Windows developer? That's not too tricky to answer either, although since it's not quite as cool as the whole Software as a Service fad, you might get a few mumblings of 'Win32 APIs!', 'VB forms' and so on.
Amidst all the suggestions, you again find the salesman recruiter, sharply suited with a fashionably shiny pink tie, finely heeled in glossy leather shoes coming to an unnaturally long point at the toe, killing the atmosphere with cannonballs of the latest and greatest abbreviations there are.
There will be a minority sitting at the back on the left, quietly sipping their drinks with ever broadening grins, as they listen to the unending stream of wrong answers.
The salesman recruiter, sitting in the audience midway from the stage and to the right, now so excited and frenzied he's almost at the point of initiating both his own standing ovation and a Mexican wave, drives the audience away in perceptible ripples as he approaches bursting point. Twenty seven acronyms per breath and one red face later, he reclaims his island seat.
Clearly the equation "Good Programmer = X" is not satisfied by "X = long stream of tech industry acronyms and abbreviation jargon". Good Web Developer != HTML+CSS+PHP+Perl+Python+C#.
In the world of quantum mechanics (and bear with me, for this is relevant) there is, at any point in time, a certain understanding of how the building blocks of the universe work to a certain level of really really small smallness. Of all mathematical models put forth to describe whatever is the latest level of understanding, the one most simple, balanced, symmetrical and beautiful is, time and time again, the one that is most right.
Whether this is true of other aspects of life I couldn't say, but the "Good Programmer = " equation certainly does follow the same pattern.
One of the first scientists to actively investigate this problem was Joel Spolsky. The success of his long running experiment in the shape of Fog Creek Software empirically proves that Good Programmer = Smart + Gets Things Done:
People who are Smart but don't Get Things Done often have PhDs and work in big companies where nobody listens to them because they are completely impractical. They would rather mull over something academic about a problem rather than ship on time.
People who Get Things Done but are not Smart will do stupid things, seemingly without thinking about them, and somebody else will have to come clean up their mess later.
Any skill set that people can bring to the job will be technologically obsolete in a couple of years, anyway, so it's better to hire people that are going to be able to learn any new technology rather than people who happen to know how to make JDBC talk to a MySQL database right this minute.
Solutions are output after processing two streams of input. One input is the problem, with all its constraints and pleasant quirks. The other stream of input is factual knowledge. Some factual knowledge will inevitably lodge itself in my head if I use it enough, but it doesn't stick because it doesn't need to.
If I know how to design software well, I can read a book detailing the syntax of a given programming language and then implement that design in that language. If I know how to program in a given language but don't really know how to design software irrespective of the language, I'm completely stuck when a new language comes out. Knowledge of the facts is pretty irrelevant.
After that short digression, I'll get back to the point.
On the one hand we have management within a company who, by definition, can't make a good decision on who to hire. And on the other hand we have a salesman selling the vacancy and answering to people who can't make a good decision on who to hire. Management likes things short, snappy and to the point so that time for the lunchtime golf session does not go to waste. Management want checklists, metrics and measurements of success and failure.
Tell such management types that the ideal candidate is someone who's smart and gets things done and you'll be asked to quantitatively measure that on a business card-sized snip of paper that can be understood in five minutes.
It's no wonder that recruiters, in trying to find the most suitable employee, match the acronyms of the candidates with the acronyms of the ideal person. Jim gets 8/10, Bill gets 6/10. Quick, easy, hire Jim, kill Bill. Time for golf.
But these flash kids coming out of universities these days have whole streams of acronyms to pick from. Why ask for just ten? Jim gets 8/10, but Ted gets 12/15. Surely the more acronyms you can squeeze out of a candidate the better? Why stop at just fifteen? Why stop at just twenty?
Which brings us back to Veenus Group, who currently prefer candidates to have a "good understanding" of twenty-one key jargon words:
At a meagre six months per jargon to be competent enough to be able to get things done without making a mess for everyone else, Veenus are looking for someone with 10.5 years of experience in a range of fairly diverse jargons. Let's for now ignore the ridiculous notion of asking this of fresh university graduates.
We can group the jargons into three or four related areas where one might be suitably specialised to be of some real value. Someone possessing a "good understanding" of all twenty-one jargon-heavy points is not going to be suitably specialised in any one of the three or four areas to be of real value. Good programmers are up to twenty times more productive than average programmers.
As an employer, do you really want to be hiring people who have an understanding so diverse that they're capable of adding, at best, an average level of value to what you produce? Do you want to publish such unrealistic expectations that you'll actively drive away those talented people who can be of most value to you? Keep doing so and you can't fail to lose every time.
As a potential employee, do you really want to work for a company that demonstrates such a lack of understanding of what is needed?
As an employer, cut that list of jargon out and look instead for people who are smart and get things done and you'll destroy the competition. If you really want the lists of jargon, keep it to a core four or five points, look for people who really know these technologies well and pay them four or five times as much. The overall amount you pay out in salaries will be significantly less, and the quality of your employees, and what you produce, will be significantly increased. You can't lose.
As a potential employee who is smart and gets things done, you'll be invaluable to a company that recognises this. Don't waste your days away in the monotony of a poorly-managed, slow-moving downward slope. Look on the job boards of Authentic Jobs, Joel on Software and 37Signals.
Unless, of course, you are so talented in so many areas that you have the skills not possessed by anyone else on the whole planet. In which case, go and apply for the position of Plutonium-Eating Martian Superhero currently open at Veenus.