Some 50,000 years later, several other descendants of Gote from the tribe called “Computer Scientists” proclaimed the birth of the first programmable computer. The clan then decided that within the next 50 years they would build amazing computers that would help put men on the moon, revolutionize medicine, and change the fundamental dynamics of human social interaction and commerce. Luckily, there were no tribal elders to restrain them, and here we are. We of this tribe should be unabashedly proud of what we have achieved. If we had not overreached we would not be here.
But, we are also constantly faced with the consequences of our overreaching. Our ability to build quality software has improved very little in the last 50 years. One can make the argument that since problem complexity is increasing faster than our software engineering techniques, the overall quality of what we build is decreasing. Every new advance—from AI to client server to OO—has been hailed as the answer, but fails on its overarching promise. In wake of such failure, however, we have discovered several gems to move us all forward. The business leaders and the financiers cannot restrain us; they do not know how. Indeed, they believe (or reluctantly accept) every new overreaching promise we make. It’s no wonder most of our software projects fail.
Examples abound. We overreached with client server computing. If all the dollars spent on failed client server projects over the last 20 years were donated to charity, we could have ended poverty in several countries. If all the energies and frustrations spent on getting PCs to work were bottled up and channeled to rocket science, we would have long settled Mars. Yet, without client server computing and home PCs there would be no Web. There would be no e-commerce. And worse, there would be no Solitaire or Tetris!
Is there a lesson here? I think so. Those building the technology should constantly overreach. Those implementing and deploying software should eschew the latest buzzwords, develop a far healthier level of skepticism than has been on display, and prudently follow the safe path, even if it is not the sexiest path. Perhaps this will allow us to continue to blaze on at the mind-bending pace we’ve set, and yet, regain and maintain the confidence of those who place their trust in us to build our software bridges.
There is a theory which states that if ever anyone ever discovers exactly what the universe is for and why it is here, it will instantly disappear and be replaced by something even more bizarre and inexplicable. There is another theory which states that this has already happened. — Douglas Adams, author, futurist
But when all is said and done, our tribe has managed to build the computer equivalent of the Golden Gate Bridge over the last 50 years. We can either be disappointed that parts of it keep collapsing, and maybe it rusts too fast; we may complain our commuters are unreasonable and expect to be able to cross our bridge on time, every time, without fear or harm. Or we could be thrilled it stands there at all—a monument to the most dazzling engineering discipline ever.