Article Preview
TopIntroduction
Method engineering deals with the design, construction, and adaption of approaches, techniques, and tools for the development of information and software systems (Brinkkemper, 1996). Siau, Long, and Ling (2010) claim that development methods are one of the key factors for the success of information systems development. However, since projects vary in their characteristics, standard development methods in a textbook or manual may require specific adaptations so that they will support all software development properly. Situational method engineering (SME), which is a sub-field of method engineering, focuses on in-house construction of organization- or project-specific development methods (Kumar & Welke, 1992; Brinkkemper, 1996; Domíngueza & Zapata, 2007; Henderson-Sellers & Ralyté, 2010). The main terms used in SME are method components, situations, and situational methods (Mirbel & Ralyté, 2006; Henderson-Sellers & Ralyté, 2010). Method components, the building blocks of SME, are development methods, or any coherent parts of them. A situation can be defined as a vector of characteristics that relate to various entities in software development, such as the project in hand, the software development organization, the software development team, and so on. Finally, a situational method is an approach used in the development of software systems that is designed and constructed to fit particular situations.
In their review of twenty method engineering approaches, Becker, Janiesch, and Pfeiffer (2007) found five important mechanisms for composing method components into situational methods. The most utilized mechanism is aggregation, which combines independent method components to create a “larger” method component. This mechanism, which is also called assembly, construction, or integration, appeared in 70% of the reviewed approaches. Specialization, which is sometimes called tailoring, was found to be the second most popular mechanism, appearing in 45% of the approaches. Analogy construction (van Offenbeek & Koopman, 2006; Ralyté & Rolland, 2001; Raylte, Deneckere, & Rolland, 2003), configuration (Karlsson & Ågerfalk, 2005; Becker, Knackstedt, Pfeiffer, & Janiesch, 2007), and instantiation (Nuseibeh, 1994) were utilized much less frequently and usually in addition to aggregation or specialization. Becker et al. (2007) further claim that aggregation and specialization, which are classified by Ralyté et al. (2003) as assembly-based method engineering, can be used in a much wider variety of situations than the other mechanisms, as they provide flexible means to adapt a solution to the specific needs of a given situation.