About to embark on a new software development project I was talking last week with Barry, our genius programmer and head of development. He was glad to hear that we're once again starting a new code base.
He explained that each time he starts over he does things a bit better than the last time: maybe the tools available have improved; or just simply he's found by trial and error the best way of doing things; or something he learned later down the track on the previous journey would have proved useful at the foundation stages and now he has chance to build that learning in...
It's similar to the drive I took this morning to a client: first time I went, I had to pay close attention to the GPS. Next time it was easier. Today I could tackle the journey confidently, allowing for traffic (even if that did mean an 05:30 start!)
There are lots of reasons for adopting what's called the "agile" method, moving forward in short sprints before huddling down and preparing for the next move. Look at the pace of change in agile-developed web apps compared to traditional operating system and application software such as word processors.
It's one of many valuable insights from the software world to take into the rest of life. Simply put, it's easier to pilot a wave runner than turn a supertanker!