Please enable JavaScript.
Coggle requires JavaScript to display documents.
The New Methodology by Martin Fowler (From Nothing, to Monumental, to…
The New Methodology by Martin Fowler
From Nothing, to Monumental, to Agile
Engineering Methodologies
These methodologies impose a disciplined process upon software development with the aim of making software development more predictable and more efficient
Methodologies are often criticised for being
bureaucratic
. They require a great deal of things to be followed and so the whole pace of development slows down.
The notion of methodology was introduced in attempt to change the "code and fix" approach.
Agile Methodologies
The Agile methodologies appeared as a reaction of the bureaucracy of the engineering methodologies mentioned above.
These methodologies provide just enough process to gain a reasonable payoff on a project.
Compared to the engineering methodologies they are
less document-oriented
and are rather
code-oriented
Agile methods are
adaptive
rather than
predictive
Agile methods are
people-oriented
rather than
process-oriented
Productive versus Adaptive
Separation of Design and Construction
Design which is difficult to predict and requires expensive and creative people, and construction which is easier to predict. Once we have the design, we can plan the construction. Once we have the plan for the construction, we can then deal with construction in a much more predictable way.
The problem with a UML-like design is that it can look very good on paper, yet be seriously flawed when you actually have to program the thing.
In software: construction is so cheap as to be free
In software all the effort is design, and thus requires creative and talented people
Creative processes are not easily planned, and so predictability may well be an impossible target.
We should be very wary of the traditional engineering metaphor for building software. It's a different kind of activity and requires a different process
The Unpredictability of Requirements
Estimation is hard for many reasons. Part of it is that software development is a design activity, and thus hard to plan and cost. Part of it is that the basic materials keep changing rapidly. Part of it is that so much depends on which individual people are involved, and individuals are hard to predict and quantify.
What might be a good set of requirements now, is not a good set in six months time. Even if the customers can fix their requirements, the business world isn't going to stop for them.
If you are in a situation that isn't predictable you can't use a predictive methodology. You need a process that can give you control over an unpredictability. That's what adaptivity is all about.