3 reforms needed to avoid the coming software development disaster
Developers are being splintered by competing players instead of moving toward convergence
The application development landscape is in tatters because there are too many dominant players, platforms and software development kits (SDK) vying for developer mindshare. At the same time, there are new disruptive technologies, such as 64-bit computing and IPv6, waiting in the wings.
This double body blow is the straw that will break the back of the development community and cause massive pain until a clear direction emerges. And the ramifications of this chaotic environment are serious: continued buggy and unreliable applications with stovepiped data and a short shelf life; continued lack of professional standards, licensing and liability for software engineers (unfortunately, I still have to use that term loosely); and continued proliferation of proprietary, closed devices, data standards and platforms.
Speaking of proprietary platforms, the iPad is an extension of Apple’s iPhone and iPod lines and is little more than a large iPod Touch. Strategically, it seeks to be a Kindle-killer, but more importantly, it will provide another outlet for iPhone developers to sell more software. So, although the iPad makes perfect business sense for Apple, it is a disaster for the development community because it continues the splintering of developers at a time when technological convergence should be leading to greater software reliability. And for me, software reliability in the government sector is the No. 1 concern.
Let’s examine those dominant platforms and players and the disruptions. First, the platforms.
- Target-based platforms: Web, cloud, mobile, rich Internet applications and desktop. These platforms target a specific set of devices or environments. The problem is that although each environment has similarities, most software platforms for those environments reinvent the wheel each time. Each vendor in each niche puts out a custom SDK with its own set of duplicative libraries. Worse, each niche competes not only against the other niches but also against the other types of platforms listed below.
- Technology-based platforms: Java, Linux, open source. These platforms are centered on a single, unifying technological concept. For example, Java is centered on the principle of “write once, run anywhere;” Linux on a free operating system; and open source on the notion of collaborative, community development.
Proprietary platforms: Microsoft, Adobe, Amazon and Apple. These platforms revolve around a for-profit corporation as the prime mover. Microsoft is the clear leader in proprietary platforms, with its Windows franchise. Adobe has Flash, Flex and AIR. Amazon has the Kindle. Apple is rivaling Microsoft with its music, mobile applications and elegantly designed Macintosh hardware. It is debatable whether Google belongs here, as they compete in many of the technology and target-based platforms but with an open-source bent.
Although I am a believer in free markets and the benefits of competition, industry has a responsibility to work together on the foundational layers to build security, quality and reliability from the ground up to advance the professionalism of the field. In essence, the information technology industry must emulate other engineering disciplines, or technological disasters and cybersecurity holes will worsen.
Make no mistake: In terms of job creation and cybersecurity, this must be a national priority. The need is even more pressing given the large number of new technological disruptions on the horizon. I do not have space here to go into details, but the major ones include: 64-bit computing, IPv6, cybersecurity, robotics, flash storage, new modes of use (gestures, voice, augmented reality) and new devices (smart phones, netbooks, e-book readers and tablets).
In line with our mantra of change, I propose a few technology reforms.
- License software engineers along the same lines that other professional engineers are licensed.
- The National Science Foundation and Defense Advanced Research Projects Agency should lead the development of an open, 64-bit, language-independent, layered redesign of the technology stack.
- Move beyond software as art to fully embrace software as engineering.