Course Adjustments and Bug Fixes

Software Development

Two analogies that have helped me to better understand personal growth are airline flights and software development. The first analogy I learned from Stephen Covey. The second I gleaned from my work as a software engineer. Rather than think of growth in dichotomous terms (pass or fail) it is more helpful, and true to life, to see it as course adjustments and bug fixes.

Correcting the Deviations
In his excellent “Seven Habits” material Covey discusses maturity and how to view failure. He explains that a plane is often off course from its destination due to wind and other factors. It arrives at the intended goal, however, because the pilot is constantly making course adjustments.

The significant point in this analogy is that the plane almost never is headed in a perfect direction, but that there is consistent attention given to correcting the deviations. The goal (destination) serves as a beacon to enable the plane to properly navigate the vicissitudes of the flight.

Iterate Towards Perfection
Software is developed through a process known as beta testing. Unfinished versions of the software are released to a group of testers prior to bringing the final program to market. The hope is that the testers will find problems in the software before it is released to the public. The software has to be put through numerous scenarios to really see if it works properly.

Even after software is turned into a final product and sold to the public there will inevitably be updates that fix bugs that surfaced as the masses start to use the software. A larger audience means more opportunities to work the software in ways the engineers couldn’t anticipate. Software is so complex that iteration is the only way to perfect it.

Humility is the Key
These analogies help me to see that human growth requires a process. We learn mostly through trial and error and so failure (error) is an integral part of the journey. Wrong doesn’t necessarily mean bad. If we have a dichotomous view, however, all shortcomings are seen as fundamental flaws and failure as tragic.

Life is much more complex than software and learning to be a loving person is quite difficult. Iteration is needed (i.e., living life and relating to people) to shake out habits of heart, mind, and action that will ultimately get us to our destination. We’re going to make a lot of mistakes along the way. They key is to be humble enough to make course corrections (and apologies) when needed and to learn from our errors.

Having this view of maturity and growth is helpful and productive. A pass/fail approach to growth doesn’t comport with reality and will actually hinder us from reaching our destination – to become kingdom citizens who reflect the love of God.