In this article, I’ll explore the differences between a process and methodology. Then discuss why, in my opinion, the word process or methodology is a wrong word to use to label and encapsulate agile-lean product (system-software) development. I will also provide guidance how a team can move forward inspired and motivated to uphold the team’s agile-lean product (system-software) development approach, continuously improve and confident in the security such guidance provides.
First, let me clarify my understanding of a process and methodology. According to Merriamm-Webster.com, the primary sense of the noun process is:
2 a (1) : a natural phenomenon marked by gradual changes that lead toward a particular result lt;the process of growthgt; (2) : a continuing natural or biological activity or function lt;such life processes as breathinggt; b : a series of actions or operations conducing to an end; especially : a continuous operation or treatment especially in manufacture
3 a : the whole course of proceedings in a legal action b : the summons, mandate, or writ used by a court to compel the appearance of the defendant in a legal action or compliance with its orders
Thus, a process is holistic in nature and is devised with a specific goal in mind. While different organizations apply system-software development processes that are similar in many respects, their processes also differ in some ways. A system-software development process must be flexible enough to meet the needs of both a particular organization and a particular project.
A methodology is a much broader concept than a process. The Random House Dictionary defines a methodology as “a set or system of methods, principles, and rules for regulating a given discipline….” The American Heritage® Dictionary of the English Language defines the two main senses of the term methodology as follows:
“A body of practices, procedures, and rules used by those who work in a discipline or engage in an inquiry; a set of working methods….“The study or theoretical analysis of such working methods.” Dictionary.com gives this definition of the suffix -ology: a “branch of knowledge, science.”
The Random House Dictionary says the word “ method refers to a settled kind of procedure, usually according to a definite, established, logical, or systematic plan.” The American Heritage® Dictionary defines a method as a “procedure, especially a regular and systematic way of accomplishing something” or “the procedures and techniques characteristic of a particular discipline or field of knowledge….”
I have found the codification of system-software development past and present to be comprehensive and extensive bodies of knowledge that attempt to codify/capture the structure and substance of roles, tasks, artifacts, principles, guidelines, examples, templates, checklists, practices, activities and methods, targeting many different system-software development situations and contexts.
“One size fits size all”, software development processes or methodologies don’t work.
It isn't so much a problem with what is contained in a methodology but how it is packaged and its practicality of use. Methodologies end up being a large software development process repository, which is like a large pantry containing all the ingredients you would need to make any number of meals. Unfortunately, people don’t seem to realize or come to understand they don't need all of the ingredients for every project. What usually results is many projects using way too much process, which in turn results in more documentation, more design and less software. Also, trying to quickly find a specific answer to what you are looking for ends up to be an ineffective, time consuming and frustrating experience.