I was asked the other day how I go about gathering project requirements. I answered that first I have to be sure I am addressing the right problem (which is not obvious, in many ways). This is analogous to the common wisdom that asking the right question can be more important than finding an answer. Second, how am I going to measure that I am solving that problem. Too often the measurement side of the issue is given short-shrift, whereas it really has to be center stage. If you can’t measure that you’ve solved the problem, it doesn’t matter how neat or intricate your solution is.
Regarding identifying the right problem, I was reminded the other day of the famous Google interview question –though I imagine the question has many forms, and predates usage at Google:
How many golf balls can fit in a schoolbus?
(I’ve also heard a variant regarding basketballs, which insightful people add ‘are they inflated basketballs or deflated basketballs?’). This post is about me giving a definitive answer, and also pointing to a bigger issue regarding training (intriguing enough?).
Of course the purpose of the question is to see how the candidate thinks, not to come up with a ‘right’ answer (since there is no unique right answer). Pretty much everyone I have heard on this topic will talk about the spatial relationship between the object and the bus, and questioning the dimensions of the bus and the size or shape of the objects. I have come up with a solution in which I can name an exact number, and be exactly correct. You’re thinking that’s pretty remarkable, but for those who know me (and even those who don’t), you already know I’m a pretty remarkable guy, and humble, of course :-).
What is my solution? Essentially, I just make up a plausible sounding number, like 165,216 golf balls. How do I know the exact number? I explain if I take those golf balls, I would build a school bus around them to be an exact fit–I would change the ‘school bus’ to define it in terms of being able to fit the # of balls I wanted. Of course I am being somewhat sarcastic, but my point is to reframe the problem into something we can measure exactly. Often we assume we know what the problem is, and then we’re off gathering requirements without taking sufficient time to examine any room in how the problem has been framed.
Next time you’re asked to solve a problem, ask yourself first if you are addressing the right problem, and how you are going to measure that you have solved that problem. Often by tweaking the problem statement itself you can get to an easier and more effective solution than if you simply accept the problem as is.