50 likes | 166 Views
Methodology-free software development: Why having hundreds of methodologies?. Herwig Mannaert. Which Methodologies ?. More than 1000 exist... BON , Booch , BOOM , Catalysis , CBD/e , Coad/Yourdon , COMMA CRC , Convergent Engineering , Demeter , DOORS , DOOS
E N D
Methodology-free software development: Why having hundreds of methodologies? Herwig Mannaert
Which Methodologies ? • More than 1000 exist... • BON, Booch, BOOM, Catalysis, CBD/e, Coad/Yourdon, COMMA • CRC, Convergent Engineering, Demeter, DOORS, DOOS • EPA, EROOS, Fusion, Goofee, HOOD, IDEA, ION, KISS • MERODE, MOSES, MWOOD, Object COMX, Objecteering • Objectory, OEP, Octopus, OMT, OOAD/OOIE, OOA/RD, OOBE • OOCL, OOHDM, OOram, OOSC, OOSD, OOSE, OOSP • Open, OSA, PAUD, ROAD, ROPES, RUP, Scrum, Skill-Driven Design • SDL, Shlaer & Mellor, Softstar, SOMA, SOMT, Syntropy, XP • Which one do we use ? • The “methodology jungle”...
Adoption of Methodologies • Huisman & IIvari, 2002: “Many organizations claim that they do not use any systems development methods.” • Riemenschneider, 2002: “Only about half of all organizations actually follow a methodology” • Interpretation • Explicit use • Implicit use • Ad hoc
Common Flaws of Methodologies • Most methodologies manage the process: • “Managing the process is what you do if you cannot manage the product.” • Example: assembly lines in manufacturing • Most IT projects are/should be closer related to manufacturing than to R&D. • Example: management training programs VDAB • State-of-the-art design principles are defined informally and leave room for interpretation • Example: coupling, cohesion, and information hiding
Common Flaws of Methodologies • Most methodologies implicitly lead to a one-to-one functional-to-constructional mapping: • In engineering this mapping is many-to-many: requirements are global constraints for the design • Example: specs vs. parts in a car engine • This creates the evolvability challenge: ever changing requirements imply design for change • Example: upfront design of basic changes • Key design activities/decisions are described informally and left over to individual designers • Example: generalization, granularity