According to a 1998 survey by Forrester Research, 85 percent of CIOs said they expected the difficult task of hiring IT people to become even harder. I think many people assumed that once the Y2K issues were behind us that the squeeze on developers would be over.
After all, according to GartnerGroup, there are more than 8.1 million developers in the U.S., compared with only 2.5 million non-developer IT professionals. But that number doesn’t appear to be enough.
Microsoft research indicates that in the year 2000 there will be 760,000 more openings for software developers than there will be applicants. By the year 2003, the information-based economy will create an additional 1.2 million jobs.
Without significant retraining and workforce development initiatives, the total shortfall for software developers could be more than 2 million by the year 2003. This is only for developers using a Microsoft platform. When you include Sun, Linux, HP/UX, AS/400, and other platforms in the mix, the number of positions could be well over 4 million by 2003.
What’s driving the shortage is the shift from an industrial to an information-based economy. Companies are hungry for workers who can help them create information systems that leverage the Internet infrastructure.
There are also new client platforms emerging, such as technologies including high-speed consumer access and wireless networking, that allow access to information anytime, from anywhere, and by anyone. This not only increases the demand for development skills, but also changes our expectations of the skills required to be a successful developer.
In this first article, we’ll give you an overview of the developer shortage and help you understand a developer’s job. Other articles will focus on finding, creating, retaining, and organizing developers for your business.
What is a developer?
What is a developer? Contrary to popular opinion (especially among systems engineering types), you can’t just learn a programming language and become a developer.
In fact, with state-of-the-art programming environments like Microsoft Visual Studio, IBM Visual Age, and other similar software development environments, much of the raw code writing is done with wizards or is encapsulated in objects that are part of the run-time environment.
For example, until Microsoft Transaction Server became part of the Windows NT 4.0 environment, developers on that platform spent 40 percent of their coding time developing object-management code and not code that actually did “the work” of the application.
Knowledge of a language is necessary, but it isn’t enough to be productive. Developers also need to understand the basics of:
- Accessing the runtime environment API’s.
- Programming for security.
- Using SQL or other database technology.
- Developing against communications, transactions, and queuing subsystems.
- Hooking developed objects and systems to the appropriate user interface (HTML, Win32, etc.).
If you look at this very basic list of skill sets, you’ll see a trend emerging: Developers tend to work around deployment platforms. Once you’ve defined the skill sets required of your developers, you should identify the specific platforms upon which your applications are based.
Building applications on a solid foundation
So what is a “platform?” Platforms consist of a core operating system, operating system services, application services, and development tools. Let’s look at a couple of sample platforms. First, let’s consider the Microsoft Win32 platform:
As you can see from the example, you should consider defining your platform without regard to packaging from the vendor. Microsoft’s core operating system(s) provides access to and configuration of devices, the user interface, and any other features that you would use “standalone” or when not connected to a network.
Operating system services include any features that are required to build applications for execution on the underlying operating system. Application services provide pre-packaged capabilities that allow you to build robust applications quickly. Development tools are the set of applications that translates programmer instructions into code that the underlying run-time platform can execute.
So why use Microsoft as an example? According to a GartnerGroup study, Microsoft development tools are used by 70 percent of all developers. Microsoft platforms also are targeted by 90 percent of all professional developers.
The larger your company, the more likely your platform is composed of a significant number of non-Microsoft products. It’s also probable that you can identify a series of unique platforms upon which your applications are based, many of them without ANY Microsoft components.
Before you start looking for developers, it’s a good idea to identify your internal platforms to be used to develop and deploy your future applications.
Once you’ve identified your platform(s), you can begin deciding how you’ll organize your development staff to create applications. Then you can begin the process of finding developers from outside the organization or creating them from within. Then comes the fun part—creating an environment that keeps them challenged, motivated and, most importantly, working for your company.
Tim Landgrave is the founder and CEO of eAdvantage. His company assists small to medium enterprises in the development of their electronic business strategy.Do you have a difficult time finding developers for your business? Post a comment below or send us an e-mail.