Software Manifesto Paradigm Shifts:
Waterfall, Agile, Craftsmanship
I have combined "Manifesto for Software Craftsmanship"
with "Agile Manifesto" (see both at the end of this text)
to present natural evolution of software development processes.
Waterfall | Agile | Craftsmanship |
3. comprehensive documentation | 2. working software | 1. well-crafted software |
1. following a plan | 4. responding to change | 2. steadily adding value |
4. processes and tools | 1. individuals and interactions | 3. community of professionals |
2. contract negotiation | 3. customer collaboration | 4. productive partnerships
|
In addition, I have extended the evolution metaphor
to "maturity models" (you => I => we), well known in psychology,
and popularized by book "7 Habits of highly effective people".
"Agile" principles are described in contrast with pre-Agile ("Waterfall"),
and "Craftsmanship" principles are described in contrast with Agile.
The order of principles has changed, I have added numbers in the table to show original priority. For "Waterfall" order of priorities, I am sure pre-Agile practitioners would have opinion of their own.
Now, those "levels of thinking" could be related to paradigm shifts well known in psychology, and described by
Dr. Stephen Covey in his seminal book
"7 Habits of Highly Effective People"
that represent maturity level of an individual or an organization.
Dependence | Independence | Interdependence |
YOU | I | WE |
take care of me | can do it myself | can do it better together |
- At the beginning, a developer behaves as a child, dependent on a bureaucratic organization to do planning, monitor every step.
- By accepting Agile principles, a developer becomes independent, able to solve problems on his/her own in efficient way.
- Finally, at Craftsmanship level, it accepts ultimate response-ability for Quality of the work, and is able to work in interdependent effective teams to produce worthy results in a synergistic way!
This progression is natural, and requires focused effort. It applies to all fields of human development, including software! There are no shortcuts, and focused practices help produce real professionals in the field.
By extending the metaphor, we can describe
"7 Habits of Highly Effective Software Developers", almost as a tutorial how to improve on
Jurney from Novice to Expert described in excellent book
Pragmatic Thinking and Learning by Andy Hunt, one signers of Agile Manifesto.
Manifesto for Agile Software Development
We are uncovering better ways of developing software by doing it and helping others do it.
Through this work we have come to value:
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
That is, while there is value in the items on the right, we value the items on the left more.
Manifesto for Software Craftsmanship "Raising the bar.
As aspiring Software Craftsmen we are raising the bar of professional software development by practicing it and helping others learn the craft. Through this work we have come to value:
Not only working software, but also well-crafted software
Not only responding to change, but also steadily adding value
Not only individuals and interactions, but also a community of professionals
Not only customer collaboration, but also productive partnerships
That is, in pursuit of the items on the left we have found the items on the right to be indispensable."