Don’t worry, I am not trying to change the English language! That comment is very true with the software development process that I believe in, practice, and communicate to the people that I work with to deliver business value (including customers). This statement by Kent Beck in “Extreme Programming Explained (Second Edition)” essentially means don’t try to make things 100% perfect, rather the action of perfecting something is more important. Most of the time the benefits and value to the business will be missed if we wait for perfection before we can start/deliver. Continual improvement or kaizen in building and delivering software means many things (taken from http://www.kaizenmanifesto.org/):
1. Make continuous improvements in every aspect of the business.
2. Actively pursue a superior, complete customer experience.
3. Continually improve designs, code, and processes.
4. Strive to increase agility (binshou) while reducing costs.
5. Use the Deming Cycle to minimize disruption from change.
6. Prevent errors (poka-yoke), in software and in business.
7. Respect people, leverage expertise, and trust staff.
8. Reward suggestions, improvements, and progress.
9. Always move forward.
So if you are looking for the perfect design, the perfect process, or the perfect software solution, you’ll be left behind while others are finding the benefits of a great solution today, knowing and understanding that tomorrow it will be even better. Make kaizen work for you today by not waiting for perfection!