When I started writing this blog I had no idea what I was going to write about. I don't remember that ever happening before - usually I know exactly what I want to talk about and more-or-less how I want to say it.
When I test, however, I find myself in a similar situation all the time: I sit down for a bout of testing and discover that I haven't a clue what to test or how to test it. For example, I currently own the entire Macintosh client for Live Mesh. How do I get started testing that?
If I don't know where to start, it probably doesn't matter where I start so long as I get started. Once I started writing this, I picked up momentum and eventually discovered that I had a pile of words - i.e., this blog post. Other times I discover that I have nothing, in which case I start over with a new first word. In both cases I learn about what I do or do not have to say about my topic.
Likewise, once I start testing I pick up momentum and eventually discover that I have a pile of defects to log. Or I discover that I have nothing, in which case I move on to a different area or switch to a different testing strategy. In both cases I learn about what I can and cannot say about the state of my application.
One reason I believe this Simply Get Started Already strategy works for me is that doing something - anything - gets me into gear, which I find to be a prerequisite for slipping into Flow. When I am in Flow, information flows effortlessly and I know exactly what to do, where to do it, and how to do it. If I'm not where I need to be, the information guides me there.
Until I start analyzing.
What is the best word to use here? Does that sentence flow as well as it could? Should this be one paragraph or two?
That isn't the functionality I meant to invoke. What's the proper order to go through this checklist? Would five objects be better than six?
Are these really the best examples I could give?
Are these repro steps really as short as they could be?
While I do not want to ignore these issues, neither do I want to sidetrack myself out of Flow. I find that editing myself is a surefire route out of Flow, whereas writing down the words as they come to me, and executing the tests as they come to me, without regard to their correctness or perfectness or Best Optionness, tends to take me deeper into Flow. By keeping these two states of consciousness separate, I can better focus on and stay in each one, and I ultimately make more forward progress and come up with an end result more to my liking than when I attempt to do everything all at once.
How about you? What do you do when you don't know what to do or where to start? Let me know!
*** Want a fun job on a great team? I need a tester! Interested? Let's talk: Michael dot J dot Hunter at microsoft dot com. Great testing and coding skills required.