|The Next Generation
The following commentary originally appeared in the January, 1993 edition of American Programmer magazine.
Should my children make software a career? Before I can answer that question, another seems very important. What does computer science want to be when it grows up?
All of us - the professors who teach it, the authors who write about it, the practitioners who apply it, the managers who control it - continue to struggle with a fundamental question: Is what we do an art-form or an engineering discipline? A simple answer is to say, "both." But as we move toward a new millennium, I think we're going to have to choose one or the other.
If we opt for an art form, I'll advice my children to follow another path. The United States will loose it's supremacy in software to countries that have decided that software must be engineered; that chic new languages, methods and tools do not replace a highly trained practitioner, a solid process, or good measurement; that a system-oriented view is far more important the "ultimate" program.
If we continue to treat software development as an art, growth in software related jobs will slow and then stop. We'll become outsourcers extraordinaire, we'll consume programs and systems in much the same way that we now purchase consumer electronics - as end users rather than innovators. The future for would-be software developers will not be bright.
If, on the other hand, we make a serious attempt to instantiate software engineering discipline, if American companies stress software quality and the three R's: reusability, re-engineering, and re-tooling, our field will continue to grow.
Should my children make software a career? It all depends on what we want to be when we grow up.