Code Wars: The All-Industry Competition for Software Talent

Code Wars: The All-Industry Competition for Software Talent

          
Title image

Code Wars: The All-Industry Competition for Software Talent

  • Add To Interests
  • SAVE CONTENT
  • PRINT
  • PDF

  • The Increasing Demand for Talent

    These trends present companies, especially those in nontech industries that nevertheless need tech talent, with multiple challenges. If such companies cannot attract and retain the software expertise they need with current recruiting and retention efforts—and many cannot—they risk falling behind in technological capability and product development. New and in-demand technologies are harder to recruit for but are still necessary to win, further exacerbating the threat of stagnation. Maintaining legacy code will become increasingly difficult because skills gaps are widening and many software developers are retiring. Yet the use of legacy language programs shows little sign of abating.

    Companies also face the challenge of determining the skills they need for their strategy and product development. They need to build the capability, if they have not already done so, to translate corporate and product strategies into resource plans, specifically with respect to software talent. The product strategy, for example, defines the technology and software architecture needed to keep new products moving through the development pipeline, including the required mix of software languages and frameworks (reusable platforms for developing software applications, products, and solutions). The resource plan is the resulting roadmap for getting the right talent in the right places at the right times to enable the software work required to drive the product strategy.

    None of this is remotely simple or easy in a highly competitive and complex environment for talent. It all presents entirely new challenges to wide swaths of the economy. How does an industrial-goods company find the talent it needs, for example, when management lacks the expertise to assess the skills required and when potential hires are concentrated in places where the company has no presence, such as Silicon Valley or India?

    There were more than 1 million software developers employed in the United States in 2012, according to BLS. The median pay for those developers was $93,250—nice work if you could get it, and get it you almost certainly could: demand for software engineers in the U.S. outpaced supply by some 35,000 positions. Demand is expected to grow at more than 20 percent per year through 2022—a sixfold increase.

    Fast-rising demand is one problem, but from a management standpoint, the issue is far more complex. The types of demand for software talent vary greatly depending on the applications, language skills, and frameworks that companies are looking for and the corporate roles they are seeking to fill.

    Applications. In terms of types of applications, the largest shortfalls are in security, enterprise applications, and systems-networking and storage engineers. The security field presents an especially daunting challenge: some 200,000 software security positions in the U.S. are currently unfilled. Meanwhile, there is a surplus of nearly 200,000 employees working with software architecture in the data and database layers and in data management (See Exhibit 1.)

    exhibit

    Within security, there is a particularly high shortage of experts in network security (Web and enterprise firewall, for example). Rapid growth in the popularity of cloud computing and mobile connectivity has created a host of new IT security concerns. The emerging practice of bringing your own device to the workplace requires additional end-point security layers, such as code signaling and code protection mechanisms. Agile software development places even more stress on security analysis, requiring robust source-code management. It’s one thing to be able to fix a product’s problem with a software patch distributed over the air, as Tesla Motors has done; it’s another to be sure that the transmission of the code—and the receiving cars’ onboard computers—cannot be hacked or otherwise interfered with.

    These challenges are emblematic of the kind that all sorts of companies face in keeping up with demand for software expertise, and nowhere are those challenges as acute as in software security. In April 2014, a security-testing company discovered the Heartbleed bug, a vulnerability in OpenSSL—the technology used by up to two-thirds of the world’s websites, including many that store passwords, personal files, bank details, and even Social Security numbers. The discovery illustrates how pervasive network security issues have become and how exposed the world’s data might be without the right talent to address the risks.

    Languages and Frameworks. Hundreds of software languages and frameworks are in use today, and proliferation is increasing as new software technologies are developed to meet more specialized needs. Languages and frameworks vary substantially in complexity and function. Languages range from those that are low level, such as C and Embedded C++, which are written to operate certain types of systems or applications, to high-level languages, such as Java and Python, which are designed for specific purposes and to solve problems. New languages and frameworks are tailored for individual applications. For example, Embedded C++, a derivative of C++, is designed to address specific shortcomings of C++ with respect to embedded systems—reducing the “bloat” on compiled code significantly and allowing the code to run efficiently on limited memory and 32-bit systems. Some languages, such as FORTRAN and COBOL, have been around for decades and are still in widespread use. Others are only a few years old but power some of the most prolific applications in use today.

    Object-oriented programming languages are more prevalent than others right now. Java, C++, and C# are most popular for coding, though Java is widely used for browser applications as well. Perl, PHP, and Python are most used for scripting, while PL/SQL, XQuery, and JQuery are widely employed for database programming. HTML and C are the most popular functional languages. Many developers can work in multiple languages and frameworks: on average, software developers in our survey knew six languages at an “intermediate” or “above skill” level and three at an “expert” level. But the demand for such talent in multiple areas keeps growing faster than the supply. Approximately half the software developers today view skills in three areas as the most important: SQL, Java, and JavaScript. Another third include skills in .NET, C++, and Oracle as well. SQL, HTML, C++, and C# skills are in oversupply; the largest talent shortages are in C, Objective-C, JQuery, and Visual Basic. Another 25 or so languages are also still widely used. (See Exhibit 2.)

    exhibit

    Disparities in language skills lead to further problems. Many companies still use the longtime programming stalwarts COBOL and FORTRAN. As of two years ago, one major bank was running 100,000 COBOL programs aggregating some 3.4 million lines of code. What’s more, a Computerworld survey at about the same time found that more than half the companies surveyed were still developing new COBOL programs. Older developers, who work in such legacy languages, are reaching retirement age. (COBOL and FORTRAN predate the formation of the Rolling Stones; about one-third to one-half of COBOL and FORTRAN programmers are at least 50 years old.) Younger developers work primarily in newer languages, creating an impending skills gap for many businesses. At the same time, languages and frameworks such as Apache Hadoop and Objective-C are still in their relative infancy. Finding developers who are both fluent in these languages and sufficiently experienced to fill senior positions can be tough. Most Hadoop and Objective-C programmers, for example, are too young to have acquired significant management experience. (See Exhibit 3.)

    exhibit

    Complicating matters further, the supply of generic-software developers and software program managers outpaces the demand right now, but there is a shortfall for product managers, quality assurance testers, and architects.