To me Jamie and the IBM Fellows have all taken a path that as a developer should be compelling and exciting. The hardest part of their journey has been to get bogged down in failures. As I mentioned on recently, I've been reading the book "Reality is Broken" by Jane McGonigal and the pattern of many failures ultimately leading to success is also found in gamers. Gamers see a challenge and try over and over with different approaches to solve that problem. In development we see similar problems. It could be that you are looking at how to improve a specific algorithm to run faster or be more scalable or more fault tolerant. It could be that there is a specific market that you are trying to develop a new product for, and as such you put out multiple applications or offerings each testing out a new hypothesis. The problem isn't that one of them fails, it is a great opportunity to learn, as Thomas Edison said, one more way how not to develop that code or product.
As a developer I find that having the time to reflect on the reality of some failure is a great way to learn how to become better. Another great way to learn is to gain experience from others. Tomorrow I am planning on sitting in at least one live coding session. This is a friendly time to play with the IBM Mobile Foundation - Worklight mobile development platform, with no penalty for failure. The ability to fail quickly and learn, is one of the best teachers I can imagine.