February 24, 2009

The Phoenix Checklist



My friend Rob Lambert enjoyed my post "Ask Great Questions!"  And in an email, he mentioned a blog entry he wrote last year - http://blogs.imeta.co.uk/RLambert/archive/2008/10/17/is-software-testing-like-being-in-the-cia.aspx .  Very nice!

The blog post refers to The Phoenix Checklist, which seems to me like a very useful framework for questioning in general.  I'm going to reread Rob's blog and this list periodically, and hopefully learn how to ask better questions.

From "Thinkertoys" by Michael Michako:

Phoenix is a checklist of questions developed by the Central Intelligence Agency to encourage agents to look at a challenge from several different angles.

The Phoenix Checklist

The Problem
  • Why is it necessary to solve the problem?
  • What benefits will you gain by solving the problem?
  • What is the unknown?
  • What is it you don't yet understand?
  • What is the information you have?
  • What isn't the problem?
  • Is the information sufficient?  Or is it insufficient?  Or redundant?  Or contradictory?
  • Should you draw a diagram of the problem?  A figure?
  • Where are the boundaries of the problem?
  • Can you separate the various parts of the problem?  Can you write them down? 
  • What are the relationships of the parts of the problem?
  • What are the constants (things that can't be changed) of the problem?
  • Have you seen this problem before?
  • Have you seen this problem in a slightly different form?
  • Do you know a related problem?
  • Can you think of a familiar problem having the same or a similar unknown?
  • Suppose you find a problem related to yours that has already been solved.  Can you use it?  Can you use its method?
  • Can you restate your problem?  How many different ways can you restate it?  More general?  More specific?  Can the rules be changed?
  • What are the best, worst, and most probable cases you can imagine?
The Plan
  • Can you solve the whole problem?  Part of the problem?
  • What would you like the resolution to be?  Can you picture it?
  • How much of the unknown can you determine?
  • Can you derive something useful from the information you have?
  • Have you used all the information?
  • Have you taken into account all essential notions in the problem?
  • Can you separate the steps in the problem-solving process? Can you determine the correctness of each step?
  • What creative thinking techniques can you use to generate ideas?  How many different techniques?
  • Can you see the result?  How many different kinds of results can you see?
  • How many different ways have you tried to solve the problem?
  • What have others done?
  • Can you intuit the solution?  Can you check the result?
  • What should be done?  How should it be done?
  • Where should it be done?
  • Who should do it?
  • What do you need to do at this time?
  • Who will be responsible for what?
  • Can you use this problem to solve some other problem?
  • What is the unique set of qualities that makes this problem what it is and none other?
  • What milestones can best mark your progress?
  • How will you know when you are successful?