While one part of the IT Web article on the “Java Skills Gap” seriously bothered me, it does touch on some issues that I’ve recently been pondering. My first several J2EE jobs were with software companies, and I found that pretty much every developer on every product that I worked on was an intelligent, skilled developer who knew their stuff. During those years, I would have highly doubted that there was any significant lack of capable developers in Java. Since then, I’ve come to work in a corporate IT environment, and come to know more developers in similar jobs, and there just might be some truth in it.
At a fairly large local company that has sold its soul to Microsoft, they’ve bought the .NET tools and servers, but haven’t started development yet. It seems that there’s a team over there whose job is to wrap the APIs and write code to make it easier for the other developers to write code. This team hasn’t had the time to write such code for C# and ASP.NET, so, with the exception of a few of their blue chip developers, they’renot writing .NET code yet. This shocked me for a couple of reasons. First, it’s amazing that a mid-size (not huge) company has its best developers mired in writing code that never directly sees production. Even more eye-opening is that they have whole teams of developers that can’t even develop applications in VB or ASP without someone dumbing it down for them.
Most of the people that I know doing Java development are fairly capable, and by their accounts, this story keeps repeating itself. I run into so many colleagues of mine who get bogged down in infrastructure work not as a matter of architecture or code reuse, but in the name of making development accessible for the “average” developer at their company. The traction of Sun’s Project Rave and MDA tools in the market seems to testify to this fact – companies have large teams of developers who will be assigned to Java projects but don’t have a deep understanding of how to write Java applications. Certainly, with the right budget and focus, individual companies can assemble teams composed entirely of experienced and capable developers, but many companies are looking to convert developers from other areas to their Java projects, and some Java developers simply aren’t willing to put in the time to attain expert knowledge – they’re fat and happy with their salary and job, and see no need to learn more.
So in general, I find this observation about a lack of Java developer talent to be believable, and it’s frightening. I still keep tabs on the undergrads at my alma mater, Georgia Tech, and even the grads I know from their CmpE and CS programs aren’t having trouble finding jobs. The experienced developers are always finding new opportunities. The frightening part is to think about all the developers who found work during the ’90s boom and bust that can’t find it now. While there are probably exceptions – truly talented people who can’t catch a break – the general conclusion is that these people were even LESS skilled than the developers that remain, and that’s scary. It makes you wonder how much of this so-called “underemployment” is due to people living in denial of their actual market value.
Underscoring this point is the usual batch of creative journalism from local rag, the AJC. A recent article shares the typical one-persons-sob-story-used-to-refute-otherwise-encouraging-statistics. You see, Georgia’s jobless rate is down to 3.8%, which sounds pretty strong to me, but here comes the poor husband and father of three kids who can’t find a job. We’re given a partial history – the guy lost his “high tech job” (software sales) in 2001, he’s had such a hard time finding a job that pays even half as much as his $65k sales job. The entire article is framed around his inability to find a job that pays the same as that golden $65k sales job. Nowhere do we get any other details on his background, qualifications, skills, or salary prior to that sales job. I know that at the software company I was at that laid off salesmen in 2001, $65k was chump change for a salesman – that was the salary given to the inexperienced, the entry-level guys. Funny thing about sales jobs though – they’re usually structured in such a way that you don’t make much extra money until your commissions equal your salary (often also called a “quota”). If you don’t justify your salary with your sales, you get canned. So here we’re supposed to believe that the unemployment numbers are bogus because this one guy can’t find a job to equal his one-time, over-inflated salesman salary where he didn’t even sell enough to pay his own salary.
I wonder how much of this is true in the broader job market. How many underskilled, underperforming workers are calling themselves underemployed simply because their salary doesn’t stack up to what it was during those years of companies squandering VC money to try and find someone who can find the power switch on the computer. I believe that the skills gap is very real, and about to get worse. With the baby boomer generation poised to retire, we are about to see a mass exodus of workers from the workforce. Though these vacancies are mostly not Java development, the loss of these developers who built corporate information systems will likely spur a new wave of IT modernization, which will create additional demand for developers in modern languages (.NET and Java). To compensate, supply of developers must increase, demand for developers can be increased (usually through higher salaries), or tools can help increase productivity of existing developers. A combination of these will probably prevail.