Document Type

Conference Proceeding

Publication Date



Software is not a product, it is a medium in which we store knowledge. As simple as this idea seems, the consequences of it are quite significant. If software is not a product, then software development is not a product of production activity, despite the common practice of managing it as such. Most organizations believe that job of software developers is to build a system that we then ship to a customer. It is not. The system we build and ship to the customer is actually the by-product of the real activity which is learning. Software development is the activity of acquiring certain kinds of knowledge. The software medium is simply the place we put the knowledge once we have acquired it.

Acquiring knowledge can also be considered as the reduction of ignorance. This article makes some observations on the nature of software, the acquisition of knowledge, the reduction of ignorance, and how these activities play out in the software field. In doing so, it helps to explain some of the classic conundrums of software development.



To view the content in your browser, please download Adobe Reader or, alternately,
you may Download the file to your hard drive.

NOTE: The latest versions of Adobe Reader do not support viewing PDF files within Firefox on Mac OS and if you are using a modern (Intel) Mac, there is no official plugin for viewing PDF files within the browser window.