Monday, 25 June 2012

Why is it so hard to both find work, and find good candidates for work?


I came across a webcast the other day of an interview with Peter Cappelli from the University of Pennsylvania's business school, where it was being discussed that it is employers who are to blame for the "skills shortages" that we see happening in many industries, and which in my own personal experience in particular is felt quite strongly in the IT industry.

In his interview, Peter makes some really good points about how the human resources departments in many companies have either shrunk or been made effectively obsolete, essentially removing some of the more traditional checks and balances in the recruitment process. He also mentioned how most companies put very little effort into providing skills and training any more, and how the modern screening processes where aptitude tests and applications asking lots of yes-no answers can result in finding no suitably "qualified" applicants out of a pool numbering in the thousands!! It's these last points that I feel are the most telling, and in particular when the modern day hiring processes that most companies seem to use (referred to as the Silicon Valley model) seem to embrace a zero-training + blind-screening process (a subject I have touched on before).


I have been out of work a couple only of times in my 22+ year career.  Usually these periods of unemployment haven't lasted too long relatively speaking, and even when they seemed at the time to have been more than a month or two at the time, it was understandable, and easy to see how the job market was really poor because the market was equally poor.  If there's one thing to know about a depressed market, it's that new jobs are usually the first things to disappear, along with bonuses, perks, and sometimes even an existing job or two. And sure, I might be trying to start a company for myself now, but seeing as how it ain't earning me a cent personally, I'll technically be unemployed until it does. So I've been looking for work since I turned in my notice last April, and in all that time I've only managed to get past the pre-screening twice, and this even though there are hundreds of jobs being advertised... so what's the problem?


I'm a reasonably accomplished software developer with about 13 years solid experience under my belt, and yet I can't seem to find work, even though the market is reasonably good, and there is lots of work on the boards.  Unfortunately I'm both a victim of my own success, and of the Silicon Valley model which also does something else that I forgot to mention.  That is, poaching talent in order to inject skills quickly into your organisation so that you don't need to take the time to train anybody.

These days, every company under the sun wants skills in Web Site development, only I'm not talking about simply putting together the simply HTML pages of the 90's.  Today's websites are all fully fledged multi-tiered software products, often based around a content management system such as SiteCore or Joomla. In the C#/DotNet programming world, you need to have experience with MVC, WPF, WCF, and lots of other WxF products, and of course either Oracle or SQL Server, because the DBA's of yesteryear seem to have been slowly disappearing as a specialty to merge with the traditional programming specialties also. So for someone like myself, the 'consummate dabbler', who has become not simply a programmer, but a Software Developer and an API and Architecture specialist, someone who knows HOW to craft software, manage software development projects, and who can quite easily do anything software development related, to find that my very broad and still highly relevant skills are not considered in demand is quite frankly both appalling, and a real kick in the teeth.

I've worked very hard to ensure that my skill set never became too specialized, so that I would not find myself struggling for employment ever again, and yet somehow I've been unable to keep up with what the industry thinks it wants, even thought my skills remain significant and relevant.  I'm also a great salesperson when it comes to selling my skills, and yet I'm being passed over time and again. So how can this be situation be? It turns out that the answer can be simply put as being all because of the Silicone Valley model of recruitment, but also to an extent it is also due to an element of corporate greed.

Most employers don't bother with HR departments these days. This is because they can simply pay a recruiting company a disgustingly huge fee to find someone for them, and still save money because they don't have the ongoing expense of paying a permanent salary to maintain HR resources. Fair enough I say, although I'd personally never hire through a 3rd party because I wouldn't be able to guarantee that the people sent to me would be even remotely suitable for my particular company's specific needs.

When I hire people, I look for key 3 things that I feel are the most important attributes of any candidate:

  1. Natural ability with an aptitude to learn
  2. Passion for the work
  3. A personality that will suit the company culture
Only after these attributes are satisfied will I bother to look at specific skills, and even then I have 2 basic requirements when it comes to skills:
  1. Skills I would like to have available to me
  2. Skills I need right now
OK, so my candidate attribute lists probably don't seem to so different from most other people, except perhaps for the relative order of importance of them. All employers want all of these, and yet they often are happy to simply list skills that are needed for a role, then spend good money while trying to find the 1 or 2 single people out there who might actually have an exact match for the specific skill set they need. The software industry is very cut-throat. More so in many ways than in the financial industry because our products can take 18 months to 3 years to complete, but can often only have a relative shelf-life of 12 months before they need to be upgraded, modified, or even replaced in order to keep up with the competition. This makes things incredibly fast-paced, and you only get one chance to get your product right, built, and out the door before you lose your opportunity for ever. So I can understand why a company want to get a very specific skill set in order to keep up the pace, and have people who can get on board and simply start being productive from day one. It is however the falsest of economies on the employer's part if they think that this can be anything other than a costly exercise, to the detriment of both themselves, and to their employees.

Let's examine this for a moment. You pay a huge fee to employ someone with the skills you want now, and because you're only going to get away with poaching someone from another company, the search is going to take time because it's not relying on the ready pool of people actually actively looking for work right now. Your new "tiger-team" employee arrives and is given an introduction, a spec, and a bunch of code to maintain. What does this employee do next? Possibly spends anywhere from a week to a month learning about the systems you use internally to write software - from the SDLC processes all the way down to the testing and coding standards. The employee might get a little bit of work done, but needs to constantly adapt to systems that are by and large quite unfamiliar, even thought the employee might have used all of the tools before. For that whole time, your new employee is operating at perhaps 50% capacity or less. When your company decides to change it's approach and take on a new technology, it does the same thing it did before and hires people with the new skills that it needs, leaving the older employees behind to eventually leave, taking their knowledge and experience with your company, its products and systems with them.

Compare this now to spending the same - and more likely lesser fees - to train one of your employees to learn the technologies you want to move your company into. Not only do you retain knowledge and experience (instant saving!), but you also reduce the overall training time required by the newer employee who operates at a higher efficiency because of his knowledge of your existing processes and methods, and you end up with a good multi-skilled employee who can be relied on to provide support for the legacy systems until they are phased out some time in the future. Quite likely, you can also keep your staff numbers to the minimum needed. So, you save money on your recruitment fees - and possibly on salaries if you hire more junior software developers with the view of providing cheap but targeted training, you save time in training without an appreciable loss of efficiency, and your time to market should likewise not be to severely impacted if you are hiring quality staff who can adapt and be re-tasked almost at will, Most important, you have a staff member who will be more than willing to move into something else that is interesting, and you don't have to wait to hire this person because you already have him on staff!  Why on earth would you throw away thousands of dollars in time, efficiency, knowledge, experience, and (presumably) company loyalty? Most likely because on the surface it looks quicker and cheaper because the real costs are effectively hidden, and because it's the easy way out.


There is a darker side to all of this. That is those companies where they really only need a work force temporarily to ramp up a big project, but then cut the numbers of staff back when the product enters maintenance. Instead of hiring contractors for a fixed term, the unscrupulous hire staff by telling them they will have a permanent role, pay them at a rate that is much less than contracted rates, then make those people redundant later citing a lack of work and high staffing costs.  It saves the company money because the wages are kept low, but loses the company much in the way of good will when their methods are found out, and they lose the best of the experience and knowledge that they invested in the people that they hired to do the job in the first place. My first programming job showed me this darker side to industry, and it was a lesson that I learned well. This, and the shortsightedness of the Silicone Valley model define the corporate greed that I mentioned earlier in this article.

So by becoming the best possible software developer I can be, with good broad skills and experiences, and open-minded attitude, and the aptitude to be able to do any job, anywhere at any time, I've truly become the victim of my own success, because I have not specialized in the present Web trend that is the fever of the software development world these days, and thus as a result of corporate greed, my years of experience have made me largely unmarketable.  With mobility applications rapidly taking over the industry, I have no doubt that many of the web specialists of today will become tomorrow's victims-of-their-own-success much as I have, and as with my own experience with employers who refused to invest in my future as an employee, these specialists who are enjoying a boom time in their work will find things very difficult for themselves in the future if they don't manage to find roles where they can gain experience in new things and remain marketable.

As Peter has suggested in his book/interviews, employers really are to blame.  By treating employees as simple replaceable resources, and by encouraging employment agencies to behave effectively as pimps selling bodies for hire to suit a particular client's specific immediate needs, a workforce-wide problem has emerged where it isn't skills that are in shortage, but simply basic common sense and common decency when it comes to running a business and dealing with skills and employees. It is sadly not a problem that will go away any time soon, but something I will certainly be keeping firmly in mind as my own company grows and I start to hire my own staff.

No comments:

Post a Comment