FutureWire - futurism and emerging technology

Tuesday, July 11, 2006

Too Much Software, Not Enought Coders

The growth of "smart" devices, combined with their being integrated almost everywhere, is creating a huge need for software to support them. According to one estimate, the number of lines of code for the average software project increased by 26% between 2000 and 2005. Yet the number of developers worldwide is reportedly growing by only 8% a year -- not enough to keep up with demand.

Despite reusable code, and barring any new rapid development methodologies (software writing software?), mass recruitment of coders or a global economic slowdown, this will lead to a shortage of software developers before long. The problem is compounded when the need for a rapid development cycle conflicts with the realities of the development process (12 to 18 months from start to finish).

Karl Gustav Niska of the software development firm Enea suggests the use of pre-integrated platforms as one solution, whereby developers can simply buy what they need from third parties instead of creating it from scratch. Interestingly, Enea specializes in embedded software and middleware for mobile devices. It makes sense... but as Forrester points out, that's only part of the story. Proprietary software and intellectual property rights are among the additional monkey wrenches thrown into the development process. Plus, an innovative company creating a new and potentially disruptive product may need to develop software from scratch and take the efficiency hit.

The demand for new and better software won't go away anytime soon. Like the global demand for oil, the marketplace is not longer just the developed world but the developing world. To meet this need, we will need to either train and nurture many more developers, or create development processes that are far more automated and less labor-intensive.

RELATED: Strategy+Business examines the possible effects of software vendor consolidation on the enterprise.

Source: Device Software Optimization