To improve is to change; to be perfect is to change often. – Sir Winston Churchill
Iteration is so under-rated these days. People who improve things one small thing at a time are called "uninspired" and "tinkerers." We need people like Steve Jobs who can wake up from dreams and write down furiously their latest and greatest ideas and make them happen! Sure, this happens once in a while and can make gobs of money, but relying upon it as a strategy is dangerous.
We call the Japanese "tinkerers" and wait for the Big Three US automakers to come up with cars that run on practically free hydrogen from the air while the byproducts are water cooled and bottled for our drinking pleasure as we drive. Very exciting, but decades away from happening in real life.
Meanwhile, Japanese automakers are eating their lunch and will continue to do so for decades to come!
The secret is "iteration" — continuous process improvement and not legendary leaps in innovation. Sure they can happen, great breakthrough ideas, once in a while. But iteration must be one of the most underrated and unexplored ideas. The Toyota Production System with its infinite patience for iteration, studying the results of the iteration and constantly trying to change something in provably better ways, seems to be proving that iteration is better in the long run than inspired instant change.
Particularly for business process outsourcing as well as software development.
In BPO, the selling is not as tough because people realize that before you can improve something, you need to be comfortable and trained on how it is done today. Outsourcing service providers do not have too much say in doing things too differently except in the case of the most enlightened customers.
However software development has institutionalized non-iterative ways of doing things. You CAN come up with a definitive requirements document that CAN be turned into a definitive design document that CAN be turned into perfect code, which in turn makes users ecstatic! Couldn’t be further from the truth.
This is where iteration provides the secret. Users may not know precisely in terms of software interfaces or functionality what their requirements are — especially when they keep changing due to changes in business environment, regulations, laws, and many other externalities. Iteration provides a base for reflecting upon ONE way of doing things and refining it as time goes on. This seems to work better than being forced to specify everything upfront.
Software development methodologies are evolving from rigid, poured-in-concrete ways of doing things to one of gradual evolution and iteration. In many real cases, these new methods seem to have worked better than than before since it involves a feedback cycle that works in design-develop-use-gather-feedback-back-to-design methodology over and over again, converging to the right solution. Some are radical agile methods and some are gradual improvements over the older waterfall methods of software development.
In all these cases, iteration seems to be the secret. Iteration provides a seed that be refined continuously with constant feedback from real users.
Time to embrace iteration as the solution for many ills that are abstract and ail both business process execution as well as software development, particularly in the outsourcing context.