“We cannot solve our problems with the same thinking we used when we created them.”
Most people need a well-defined starting point
But a pre-set starting point is not likely to be well suited to the organization because there is no “one-size fits all” approach. While most organizations need to solve similar challenges, the way they need to solve them varies.
The approach of starting with a framework means a lot of time is spent learning the framework . This makes things even worse because there is then not enough time to teach key practices up front.
Solution: Create a starting point for your organization based on its needs. Focus on practices needed with as little training in the framework as possible
There needs to be a method to make predictions
Software development is part of a complex system. This precludes us from make totally accurate predictions when we suggest changes. Making changes is always an inexact science. Instructions are misunderstood, information is inaccurate and plans do go as expected. In addition to this, there are often relationships between different actions in an organization that are not seen or won’t behave we expect.
There are patterns of behavior in complex systems.
And we can often make reasonably accurate predictions that following certain rules will work better than ignoring them.
Also, while there may not be ‘micro-predictability’ (i.e., which color the ball will land on), we can often be pretty sure of the ‘macro-predictability’ present (i.e., more money is staying at the table).
Solution: Recognize patterns exist, attend to relationships in the system and check on what happens
We need to avoid reinventing the wheel
But there are so many options we want to avoid making things complicated
Solution: Organize options in pattern groups which contains patterns, or ways to solve problems based on particular context. This makes for easy navigation.
instead of starting with something simple but which will require creating something new, start with something simple that can be extended.