While I’m on the topic of change management and how it isn’t very different than plain old good management, I feel like I need to address one additional aspect that people often get wrong. Initiating a big change is hard and it’s nearly impossible to get everything right. This difficulty can cause an organization to stall in the middle of its change process, or worse still, never get its changes off the ground at all. People can worry so much about trying to get everything right at the start, that they never actually start! These people are missing a key insight, though. They are almost guaranteed to not get a big change completely right, at least not at the start. So instead of spending so much time planning perfection that you never actually get started, plan instead to make some adjustments and corrections as you go. I look at this sort of like the agile development process for software.
Instead of the traditional software design approach of getting all the customer specifications, defining all the other interfaces and requirements, producing the proper flowcharts, and pseudo-code, all before writing any actual lines of source, the agile approach relies on rapid development cycles with frequent releases between customer and vendor. These frequent releases and testing cycles allow bugs and requirement misconceptions to get caught early and fixed before they are too buried in the code to be easily changed. Fundamental tenets of agile development (thank you wikipedia) include valuing:
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
While the items on the right are important, agile development places more value on those on the left. Agile development processes are now expanding beyond software to other areas of engineering and development as well. Rapid releases, real time customer interaction and results assessment, and teamwork development are all agile tenets which translate easily to other endeavors including change and general management.
Planning is important, as are defining initial requirements and defining your end point in terms what outcome defines success. But planning, even 100% perfect planning, doesn’t guarantee success. In some cases there are too many variables, too many complex systems, that it is impossible to plan everything with 100% accuracy before starting. In these cases, I say borrow something from the agile programming model. Define your needs, define your end point and make a first release. Test, evaluate, repeat, until success. Don’t let lack of predictability or perfection prevent you from making a needed change. If you can’t solve everything at once, that’s OK; solve what you can and evolve from there.