In 1990, Eli Goldratt has suggested that the sciences evolve in three distinct phases—classification, correlation, and effect-cause-effect
Phase 1—Classification
Classification is the phase in which nomenclature is debated and then agreed upon. People discuss what exactly is involved in the field they are pursuing or studying. They then agree on the names for founding elements or principles. The current state of Agile methods for software development would suggest that several of them have an agreed internal nomenclature. This is certainly true of XP, Scrum, and FDD. However, the nomenclature may not yet be complete. Initiatives such as Scott Ambler's Agile Modeling suggest that more nomenclature may be necessary]. There is certainly no agreement across Agile methods on a combined or unified nomenclature. Agile methods as a combined science can be considered to be in the classification stage.
Phase 2—Correlation
Correlation is Goldratt's term for the phase in which corroborating evidence is available to show that a method works in practice. Correlation is a phase of pattern recognition. The science of astronomy, when it was still known as astrology, spent thousands of years in the correlation stage. It was possible for astrologers to predict astrological events such as the turning of the year, the rise of the planets in the sky, and so forth by pattern matching against observations of recurring patterns.
It could be argued that the science of Object Oriented Analysis has reached the correlation stage. The classification stage ended with an agreement on the Unified Modeling Language—the nomenclature of OO Analysis and Design. The correlation stage actually started prior to this, with the emergence of patterns in the early 1990s. The correlation phase is now in full swing. A considerable body of work is available on OO Analysis. Books which have broken new ground include Analysis Patterns, Object Models, JAVA Modeling in Color with UML, and Streamlined Object Modeling. Similar work has been published in the field of OO Design by a long list of authors, notably Design Patterns [Gamma 1995] and Java Design. Others seek to teach the theory in a more palatable form, for example, Applying UMLx and Patterns.
Individually, then, some Agile methods have entered the correlation phase. That is to say that there is "proof in the pudding." There is corroborating evidence that the techniques work. People from all around the world have run XP, Scrum, and FDD projects and have reported better results. I personally have run (or been involved with) more than 10 FDD projects, and the results are remarkably similar across all of them. This similarity has been true across four geographical locations, with four different teams, each with different cultural, educational, and personal backgrounds, and irrespective of technology or industry involved. Evidence that shows a method or theory to be true in practice means the method or theory is in the correlation stage.
Phase 3—Effect-Cause-Effect
The third and final stage in the emergence of a science is effect-cause-effect. Astronomy became a science after Isaac Newton proved why apples fall down, rather than sideways. This effect was explained through its cause—gravity. The theory was then used to predict another effect—the Earth's orbit of the sun. When it is possible to postulate a theory, measure the effect, and validate the theory, science is being practiced.
If the art of managing software development is to be developed into a science, agreement must be reached on what is to be measured and what those measurements are called. How one measurement affects another must be understood. This would then permit managers to predict the effect of a decision on a new situation based on what is already known.
Many aspects of software development can be correlated against aspects of the manufacturing industry. Within manufacturing, many effect-cause-effect relationships are understood. Manufacturing has grown into a science over the last 30 years. By translating cause-effect relationships from manufacturing to software development, it should be possible to predict the effect. If the effect can be measured and validates the accuracy of the prediction, then software development management will have evolved into a science.
|