You are here

The Challenges of Information Technology

8 September, 2015 - 16:52

Rapidly changing technology, alluded to above, is a key challenge for the systems innovator. Most people today are familiar with Moore's Law: early in the life cycle of the large scale integrated circuit, Gordon Moore predicted that the density of components on a chip would double every 18 months. For over thirty years, the semiconductor industry has made good on that prediction. Think about that for a minute: if you double something every 18 months, in 30 years you would have doubled the amount 20 times, or produced 220 ~ 106 (210 = 1024 ~ 103), or a million-fold increase. So if at the start there were 1000 components on an integrated circuit (which is the order of magnitude achieved on the first memory chips in 1971), then today a chip should have a 1000 x 106 or a billion components. Intel announced in 2004 an SRAM chip with over a half billion transistors using 65 nanometer line widths.

The kind of challenge this presents can be seen in operating system programming. Early operating systems were very tightly coded because memory was scarce and cycle times relatively long. With today's billion transistor processors operating at gigahertz cycle times, that is no longer the case; Microsoft's Windows XP operating system reportedly has over 35 million lines of source code. And that, contend some, is inherently a problem since one software bug per 1000 lines of code is thought to be the currently achievable quality level. Further, such operating systems can take tens of seconds to boot up while they run though files for literally thousands of drivers for which no device is attached because it was easier to program that way. Even though it appears we will soon reach the physical limit of Moore's Law, the rapid pace of technology change will probably not slow as new techniques are introduced to compensate.

Rapidly changing technology leads directly to another challenge for the systems innovator: growing expectations. From Andrew Tanenbaum's web site (http://www.cs.vu.nl/~ast/reliable-os/): "TVs don't have reset buttons. Stereos don't have reset buttons. Cars don't have reset buttons. They are full of software but don't need them. Computers need reset buttons because their software crashes a lot. I know that computer software is different from car software, but users just want them both to work and don't want lectures why they should expect cars to work and computers not to work." Tanenbaum further observes that TVs, stereos, and cars don't take 30 to 50 seconds to boot up. They start immediately when turned on. Users aren't interested in the gee whiz factors of the technology. They just want it to do useful things for them. And given the increases in computer power, they expect more and better useful things.

A third challenge for the systems innovator is managing the "soft side" of technology innovation. In "The Inmates Are Running the Asylum" Alan Cooper [footnotes shown as such] tells us that programming is such a difficult and absorbing task, that the creation of software is so all-consuming that programmers must immerse themselves in an alien thought process which supersedes the demands of the user. The goals of the programmer and the goals of the user are different, and the latter usually loses out. And that is tragic because when we let our products frustrate, cost, confuse, irritate and maim us, we are not taking advantage of the real promise of software based products: "to be the most human, powerful, and pleasurable creations ever imagined."