A lot of software is still handcrafted. Complexity is a part of life and business. This is what software tries to model and replicate. So, while great progress has been made across many industries, software, in the words of Brad Cox, “remains intractable; immune to the organizational innovations that make us think of computer manufacturing as a mature industrial age enterprise.” Gary Chapman takes this ahead to its logical conclusion:
One problem is that software projects begin with a nearly limitless number of possible approaches; on top of that, software has to work with so many different and uncontrollable variables, such as other software, hardware of unimaginable variety and users with wide variations in skills.
On the user end, repeated experiences with software glitches tend to narrow one’s use of computers to the familiar and routine. Studies have shown that most users rely on less than 10% of the features of common programs such as Microsoft Word or Netscape Communicator. It takes a high tolerance for frustration and failure to explore beyond the boundaries of one’s own comfort level. This adds to the exasperation of tech-support personnel, who often don’t understand why users are reluctant to venture into the unfamiliar features of a program. It also calls into question how much money and energy we spend on new software features that most people don’t use or even know about.
But few people are talking about how to make technology easier to use. There’s a universal assumption that people will have to adjust to the rampant, irrational and escalating complexity of a hyper-technologized society–or fall into the ranks of the losers and the ignorant. This split is likely to characterize modern life in the 21st century.
Steve Lohr, writing in the New York Times, discusses the solutions to the software crisis:
The two main answers, according to computer scientists, are new tools that will make programmers more productive and new technology that will enable more people who use software to program for themselves. And simple economics should speed the process along, they predict, because there could be a handsome payoff for any solutions.
As the Internet makes it easier to share work around the world, software will be increasingly procured from a global market, just as sophisticated manufactured products are now. A personal computer is made of components from dozens of countries. And there is not a lot of silicon being baked in Silicon Valley anymore, though the Valley remains a hub of innovation for the chip industry. Software, experts say, will probably follow the same pattern with much research, design and early-stage development centered in America but production shifting overseas. The outsourcing of software today from places like India is just the beginning, they predict. The trend will be accelerated by the spread of high-speed Internet connections internationally and the growing share of the world’s programmers trained abroad.
The challenge for Indian companies is to not just strengthen the services base (at some point of time, they will just not be able to double workforces every year) but to move into creating intellectual property through software components and platforms.