Subtitle: Software Development Methodology – The universal elixir (supposedly)
By now, perhaps it is clear that software should be written following a disciplined software method. Most likely, this is a tremendous assumption and the industry is not really, really aware of that fact.
The state of current affairs in mainstream practice is that even if a method is followed, perhaps that method is followed blindly, avoiding the ability for local adaptation based on the present project context.
What is much needed is the knowledge and experience to actually perform that local adaptation based on present conditions; this essentially takes, as the starting point, courage (sadly, this is an attribute not much practiced in teams).
That knowledge and experience, namely techniques (technique=theory + practice), is the subject of the composed word: methodology. You know, from Greek: study of methods.
Not a single fancy, buzz-word compliant, ultra-hyped method, (here you can insert the name of each software method from structured programming to current and future single methods proclaimed as the one and only truth path to nirvana); but we need to really know as many methods as possible such as tools in a toolbox, then we can choose the proper one that fit the job at hand; and the ability to adapt and steering each development project as needed.
In a sense, software development methodology – study of methods, is what we need with regard to disciplined software development.
A related essay:
Practical programmer: Matching methodology to problem domain
Robert L. Glass
Communications of the ACM
Volume 47, Number 5 (2004), Pages 19-21
Methodology = a body of methods employed by a discipline
Method = a body of skills or techniques, a discipline that deals with the principles and techniques of scientific inquiry