I spent a few years writing down my thoughts about how one should approach problems. If you're looking for a how-to guide, a cookbook, or a reference this book is not for you. If you want to learn by challenging the way you think, pick up a copy.
I've built a few successful products and looking back on their success, I think that the mantra that drove product development is what separated our products from the rest of the market: "products built from pain." All of the products we've built were done so to relieve acute pain. Not pain we researched; pain we experienced. We built products and changed the world of software because our lives sucked.
I've read a lot of books lately on new ways of running organizations and different methods of motivating people and many of them focus on studies around jobs that require a tremendous amount of creativity or "thought workers." I think these books are interesting, exciting and I'm interested in carefully applying some of the research at my places of work. Thinking is critical, creativity is what enables you to innovate. Now, I'll say something highly unpopular: get over yourself.
Inspiration to drive innovation is what we're looking for and most innovation happens through punctuated equilibrium. Inspiration, by its very nature, is tied to a punctuated result because it is sudden. We often speak of "flashes" of inspiration and one definition of the word is even "a sudden, brilliant or timely idea."
If you've ever had a stroke of genius, there is a decent chance it happened in the shower. The place where you relax, zone out, and cannot escape ideas for implementations. What I see now I find sad: people restructuring their lives to have lots and lots of what I call "shower time."
If you write code, which many of my readers do, I'm about to piss a vast majority of you off. We're not thought workers. Innovation in code is a rare thing and coding is a tedious task. Until the day when we can merely think of inputs, outputs and algorithms and the computer will simply codify them on our behalf, we all will spend a lot of time meticulously telling a computer what to do. It might be challenging. It might require focus. It requires a perfect vocabulary, impeccable grammar and a mastery of common idioms and colloquialisms, but at the end of the day 99% of it is writing a set of instructions for a deterministic system to follow. Bottom line, it is largely not a creative process. I know that many of us (myself included) like to think of new and clever ways to do something -- it's good mental exercise. But, almost every time someone shows me a new and exciting approach to solving a problem, I can find an almost identical reference implementation of the same solution published either academically or commercially.
If you step back, the large applications and services we all are building are new and different. It took vision, whimsy, courage and maybe a fair share of batshit-crazy inflated self-confidence to pursue them in the first place. I applaud this, but find it paramount that one stay grounded in the fact that executing on that vision is 99% blood in the mud. It's hard, it's often not creative, it rarely resembles "thought work."
I see more and more people trying to avoid the sweat and focus on constructing halcyon environments where they have the freedom to think differently and be creative. Here's the deal, you're a human being and as such, you don't need a special environment to arrive at freedom of thought; nothing and no one can take that away from you but you. It is the constraints that result in true creativity. It's wading through shit for 18 hours, suffering your own bad decisions and those of others, arriving at a moment of painful failure and tears that ultimately requires a shower. It's not the shower you took yesterday or the day before. It won't be the shower you take tomorrow. This shower is truly "shower time." In this shower, maybe (just maybe), you've set the stage for sudden, brilliant or timely idea - because you've earned it.