This paper explores how to integrate formal meta-models with an informal method rationale to support evolutionary (continuous) method development. While the former provides an exact and computer-executable specification of a method, the latter enables concurrent learning, expansion, and refinement of method use (instances of meta-models) and meta-models (evolution of method specifications). We explain the need for method rationale by observing the criticality of evolving method knowledge in helping software organizations to learn, as well as by the recurrent failure to introduce rigid and stable methods. Like a design rationale, a method rationale establishes a systematic and organized trace of method evolution. Method rationale is located at two levels of type-instance hierarchy depending on its type of use and the scope of the changes traced. A method construction rationale garners a history of method knowledge evolution as part of the method engineering process, which designs and adapts the method to a given organizational context. A method use rationale maintains knowledge of concrete use contexts and their history and justifies further method deployment in alternative contexts, reveals limitations in its past use, and enables sharing of method use experience. The paper suggests how a method rationale helps share knowledge of methods between method users and engineers, explores how method engineers coordinate the evolution of the existing method base through it, and suggests ways to improve learning through method rationale.
Available at: http://works.bepress.com/kalle_lyytinen/54/