As I mentioned in the last post, I spent a few hours talking with my coworker and her friend after seeing a show together on Friday evening. Her friend is also a software developer, and is, like me, a big fan of rapid prototyping (as I mention in my reviews of books like Experimentation Matters and Serious Play). I can’t remember how it came up, but at some point during the evening, he mentioned the idea of rapid prototyping one’s life. The concept really struck me, so I’m going to spend some time fleshing it out.
I think rapid prototyping is appropriate in most cases in software development, but there are some cases in which it excels. The qualities which point towards rapid prototyping are where the final goal is poorly defined, where only experimentation, not theory, will help define that final goal, and where there are no irreversible consequences for trying something. For instance, in the cases where I was developing software for a new scientific instrument, it was totally unclear exactly how the software should work because nobody had ever worked with this instrument before. We couldn’t just go see what our competitors did and copy them. There was a process of continuous refinement – I gave the scientists something crude, they started using it in certain ways, I shaped the next version of the software to streamline those uses, etc. And this software was not mission critical – it wasn’t for a medical device, or a nuclear power plant – if it crashed, it was inconvenient but not a disaster. So that was a case where rapid prototyping was definitely the right thing to do.
What about life? For most people, the goal of one’s life is extremely poorly defined. And, in most cases, we have to try something to figure out whether we like it and whether it works for us. And very little in life is irreversible. So it seems like life would be a good candidate for rapid prototyping.
I’m starting to realize this. Part of the reason for my New York adventure was realizing that I was somewhat dissatisfied with how things were going in my life, and deciding to shake things up a bunch. Live in a big city for a while. Work at several different roles in a company on my way towards a management position. See if I can meet some new people, make some new friends, try some new things. Maybe I’ll take up martial arts, something I’ve talked about for a while. Go to the theater more. Lots of options. And none of this is irreversible. I may find out I hate it, and move back to the Bay Area. But I would have tried things and I would have learned from the experience.
Trying new things and learning from the experience – sounds like rapid prototyping. Well, prototyping, at least. It hasn’t been so rapid for me. It took me about ten years to give up on being a physicist, and then I spent eight years as a programmer. At that rate, I guess I’ll be ready for my next career in six years. In the realm of sports, I spent six or seven years as a tennis player in middle and high school, six years playing volleyball in college and grad school, and two or three years playing ultimate frisbee, so I have a few more years of ultimate before it’s time for a change.
What this history demonstrates is that one of my faults is that I really hate being bad at things. So I tend to stick to doing stuff I’m already good at for longer than I should, instead of trying new things and having to start over. I need to just get over myself and try new things, revel in failure and see it as an opportunity to get better. Whenever I try it, I do tend to enjoy it – it’s fun being on the steep part of the learning curve again. I need to take up my friend Brad’s mantra to always do the thing that scares me the most. But it’s hard.
Anyway. It’s a neat concept, rapid prototyping of life. I need to get the iteration time down, but having that as a framework could be valuable for evaluating various opportunities: what can I learn from the experience? Will the experience help me refine what I believe or like? Will the experience help me to choose what to do next?