5
The Nature of Software and the Laws of Software Process
This can be seen using a negative example: it is quite easy to deliver a
system to the customer. The challenge is not to create a system but to cre-
ate the correct system. If we know exactly what it is we have to do, we can
create systems as fast as our fingers can type. The real challenge is finding
out what the system should do, and how we can construct a system that
does it. Once we have acquired this knowledge, the creation of the system
is usually quite straightforward. Of course, once we (think we) have
acquired the appropriate knowledge, and go ahead and build and test the
system, we invariably find out there are things we did not know. This, of
course, requires further knowledge acquisition. ...