“The fluttering of a butterfly’s wing in Rio de Janeiro, amplified by atmospheric currents, could cause a tornado in Texas two weeks later.”
I’m currently reading “The Click Moment” by Frans Johansson. It discusses many interesting stories about rapid change and randomness in our daily lives. One such story describes how Edward Lorenz ran a weather prediction simulation using the number 0.506127 as a variable and then on his second pass he used 0.506 instead. Rather than being quite similar, the results were vastly different weather predictions.
The upshot was that if you have a complex system, like weather patterns, any minor variation at the start cascades and amplifies, producing large variations by the end of a given sequence. The more complex, the stronger the butterfly effect.
Johansson also introduces the concept of the “smallest executable step” as a mechanism for harnessing the apparent randomness of our modern, rapidly changing world. He suggests that we make many small bets rather than one massive bet as a means of improving success rates. It’s worth reading the book. He does this concept much more justice than I just have!!
Anyway, the points I’m getting to are that:
- OSS are complex systems so any small deviation makes predictions of completion time, resources and cost difficult. As implementers, it’s your job to remove as much complexity as possible
- Break your project into many small executable steps or deliverables with more tangible goals and less variables than major transformations. An example is building rapid prototypes of separate modules and then refining rather than trying to deliver a transformational project as a single deliverable (or small number of deliverables). Big vendors and big CSPs tend to go with the latter approach in my experience.