Philip Armour, in his book <The Laws of Software Process>, said, “Software is not a product. The product is not software, it is the knowledge contained in software…then software development can only be a knowledge acquisition activity. Coding is only a small part of the software activity, and it is getting smaller.... We can reasonably assert that if we already have the knowledge, then transcribing it does not require much effort.” Knowledge contained in software is a thing-in-itself independent of software. Software depends on the knowledge. Logically we’d be able to discover the whole knowledge before developing software. In reality, however, we are unable to do so. It’s because this knowledge, like electromagnetic waves, is weightless and intangible, that cannot be discovered by intuition or verbal language. But it becomes possible with scientific method. With scientific terms we are able to unravel the complex phenomenon in its entirety including hidden aspects.
The problem with software industry, the impossibility to define adequate requirements before development is due to requirements elicitation approaches that are intuition based rather than science based. It is assumed that there is order and regularity in the application domain that we can come to know precisely and completely. This is only possible with scientific method. Scientific theory has three properties: consistency, completeness, and independence. Once we represent application domain in form of scientific theory, we would be able to extract requirements from it to derive requirements with the same three properties.
Contact UCSoft to explore how can your company benefit from our scientific way of defining requirements to achieve the goal of defining adequate requirements before development. |