Doing projects better doesn't stop at agile. In this presentation I attempt to distill new advances in software development from the field of complexity science.
Complexity science is the study of complex systems, like ecosystems, biological systems, economic systems, etc. "Complexity science" is the scientific approach to "systems thinking". It can be used to understand and explain why complex systems behave the way they do. Ken Schwaber, Jim Highsmith and other experts have explained in their books that a lot of agile concepts have been copied from the study of complex systems. However, agile software development has not covered all there is to learn.
I will show why practices must be agile (self-organized) *and* formal (controlled), why any software development method is doomed to fail, why managing scope is a too simplistic interpretation of the principle of “embracing change”, why most process improvement initiatives are linear and wrong, and why some sets of practices will be show chaotic behavior when combined.
3. A. psychological profiles
B. leaders vs. rulers
C. organization types
D. organizational structures
E. risk management
F. organizational optimization
G. adaptive methods
H. non-linear improvement
J. tuning process dependencies
K. classification of methods
Agile... what’s next?
My ideas, taken from complexity science
9. photo by Noël Zia Lee
(many) complex systems are
adaptive
10. “For example, an ant colony, the brain, the
immune system, a Scrum team, and New
York City, are self-organizing systems.”
- Ken Schwaber
Agile Software Development with Scrum
“At the heart of complex adaptive systems
theory’s relevance to software development
is the concept of emergence, and the
factors leading to emergent results.”
- Jim Highsmith
Adaptive Software Development
12. The 12 Laws of Software Development
Reduce Risk
Measure Performance
Evaluate Feedback
Acquire Knowledge
Manage Uncertainty
Evolve Practices
Motivate People
Empower Teams
Align Results
Optimize Communication
Enforce Discipline
Restrain Growth
which led me to “discover”…
20. Don’t agree?
There exists a selection of practices for
which the sum of people’s motivational
balances is optimal.
therefore...
“In a software project the optimal method
is a function of the psychological profiles
of its team members.”
Agreed?
A
43. Prevent systems from growing...
1. Limit input and output (keep it simple)
2. Make resources scarce (small budgets)
3. Reduce complexity (remove waste)
4. Clean up regularly (refactoring)
44. ? :
? : ? :
? :
? :
? :
? :
? :
? :
? :
#7: the system is exposed to risk
48. Don’t agree?Agreed?
Someone needs to try and reduce the
system’s exposure to risk...
“Risk management (mitigating potential
impediments) can best be done by
stepping outside the system.”
E
49. ? :
? : ? :
? :
? :
? :
? :
? :
? :
? :
#8: the system must know how it’s doing
+/+
-/-
50. The 8th Law of Software Development
Measure Performancephoto by xmatt
51. The Tragedy of the Commons:
using shared resources
photo by ojbyrne
54. Don’t agree?Agreed?
“Optimize the whole means to optimize
to the largest possible span of control,
which can mean: don’t optimize the
individual software projects.”
F
55. ? :
? : ? :
? :
? :
? :
? :
? :
? :
? :
#9: the system responds to the input
+/-
-/+
56. The 9th Law of Software Development
Evaluate Feedbackphoto by JasonRogers
57. ? :
? : ? :
? :
? :
? :
? :
? :
? :
? :
#10: the system needs ways to learn
!
58.
59. The 10th Law of Software Development
Aquire Knowledgephoto by procsilas
60. ? :
? : ? :
? :
? :
? :
? :
? :
? :
? :
#11: the system must cope with uncertainty
80. Don’t agree?Agreed?
“We now experience a burst of methods
and tools, due to environmental change.
This could converge into a few main
forms with many small variations.”
K
81. The 12 Laws of Software Development
Reduce Risk
Measure Performance
Evaluate Feedback
Acquire Knowledge
Manage Uncertainty
Evolve Practices
Motivate People
Empower Teams
Align Results
Optimize Communication
Enforce Discipline
Restrain Growth
ANY creative team project
82. A. psychological profiles
B. leaders vs. rulers
C. organization types
D. organizational structures
E. risk management
F. organizational optimization
G. adaptive methods
H. non-linear improvement
J. tuning process dependencies
K. classification of methods
Agile... what’s next?
Don’t agree?Agreed?
85. http://creativecommons.org/licenses/by-nd/3.0/
This presentation was inspired by the works of many people, and
I cannot possibly list them all. Though I did my very best to attribute
all authors of texts and images, and to recognize any copyrights, if
you think that anything in this presentation should be changed,
added or removed, please contact me at jurgen@noop.nl.