—A Look at Problem Frames
This Twitter thread drew my attention to Michael Jackson and Problem Frames. I hadn’t heard of Problem Frames before. The thread is worthwhile and contains other references to help explore a problem domain.
I read two papers on this topic.
The first I would characterize as describing the motivation; the second as the method.
What makes these papers interesting, for me, is their focus on problem identification and description. The solution is secondary to solving the correct problem. You’ve heard this before, I’m sure.
The first paper is worth a read because it links problem exploration to Polya’s work. It characterizes topics in How to Solve It as focusing on problems to prove or problems to find. It proceeds to liken software problems as falling into the latter; problems to find.
Jackson call problems to find problem frames. He provides a nice connection between what Polya says and his motivation for problem frames:
By fitting a problem into a problem frame we should be classifying it precisely enough to be able to select an appropriate method for its solution.
The key requirement for a good problem frame is that it should be precise enough to give a really good grip on any problem that fits it.
The goal of a problem frame then is to characterize the problem well enough to select an appropriate method for it’s solution. He’s talking about a method for it’s solution, not a solution. That’s what makes the approach interesting–it’s modeled on Polya’s approach and he’s tailoring it to software problems. Jackson’s discussion goes on to worry about context–the application domain you are working in.
There is also a large section on Object-Oriented Analysis and Design that is worth a read.
Probably the key value in reading the first paper is the notion that focusing on the problem is more important than the solution. A good solution is a by-product of understanding the problem.
The other key point here is that the problem frame that guides to the solution must reflect the problem.
The second paper describes the problem frame and provides an explanation and example.