Methodology
Methodology is the science that studies the methods of problem solving. Most sciences have their own specific methodology.
Methodology is sometimes used as synonym for a single, complex method.
Examples of (single, complex method) methodologies are
Methodologies and Processes
Some managers, who are held accountable for software development, may seek to find the commonalities in the efforts of their organizations; if those managers are process-oriented, (rather than people-oriented, task-oriented, profit-oriented, project-oriented, etc.) then they may seek methodologies or other proxies which can serve as templates for the software development process.
Methodologies
Software engineering methods span many disciplines, including
project management, analysis, specification, design, coding, testing, and quality assurance. All of the methods guiding this field are collations of all of these disciplines. Software design methods can be informally classified into thick and thin.
Thick methods include a large amount of formal process paperwork and documentation. Well-known thick methods include Cleanroom, ISO 9000, CMM and Rational Unified Process (RUP).
Thin methods eschew formal process paperwork and documentation.
Well-known thin methodologies include Extreme Programming (XP) and Agile Processes.
Recently, some (like Karl Weigers) have argued for no more methodologies. Methodologies tend to list the contemporary technologies and practices and insist that everyone use them. This advice is obvious for those who work on new systems and have the opportunity to use contemporary technologies and practices. This advice is useless for those who maintain legacy systems and must use legacy tools and must use older technologies and practice, due to circumstance. So, methodologies are not specifically useful. And methodologies must be updated as technologies and practices evolve.
Processes and meta-processes
A growing body of software development organisations implement process methodologies. Many of them are in the defence industry, which in the U.S. requires a 'Rating' based on 'Process models' to obtain contracts.
The Capability Maturity Model (CMM) grades organizations on how well they create software accrording to how they define and execute their processes. ISO 9000 describes standards for formally organizing processes with documentation.
ISO 15504 or SPICE, The software process life cycle is also gaining wide usage. This standard is aimed at setting out a clear model for process comparison. SPICE is used much like CMM and CMMI. It models processes to manage, control, guide and monitor software development. This model is then used to measure what a development organization or project team actually does during software development. This information is analyzed to identify weaknesses and drive improvement. It also identifies strengths that can be continued or integrated into common practice for that organization or team.
Six Sigma is a methodology that uses data and statistical analysis to measure and improve a company's operational performance. It works by identifying and eliminating "defects" in manufacturing and service-related processes. The maximum permissible defects are 3.4 per million opportunities. However Six Sigma is manufacturing-oriented, not software development-oriented and needs further research to even apply to software development.
Extreme programming, Agile processes, and Lean software development are full blown processes that take an incremental or evolutionary approach to software development.
See Also
See also software development process, list of software engineering topics.
Referenced By
-ology | List of basic software engineering topics | List of ologies | List of software engineering topics | Ologies | Ology
|