194
THE LAWS OF SOFTWARE PROCESS
Presently, we learn most on the project. The trouble is, we tend to cap-
ture our misunderstandings into the product along with our understand-
ings. It is to remove some of these that the Agile approaches recommend a
“refactoring” activity. Currently, software projects are somewhat uncon-
trolled failures that result in uncontrolled learning activities. This must
change. As the executable mode tool set becomes more comprehensive,
integrated, and domain specific, it can become a place where “failure” can
by tried and tested. Requirements models of flow charts can be made to
“flow” to see what happens. Design models can execute, use resources,
interact with other systems, interact with their environment, in simulated
ways ...