This picture was taken from the book: “Code Complete – Steve McConnell” from the section call Problem Definition where talks about how the first prerequisite you need to fulfill before beginning construction is a clear statement of the problem that the system is supposed to solve (sometimes call “product vision” or “mission statement”).
Key Points for this chapter:
- A problem definition defines what the problem is without any reference to possible solutions.
- Good : “We can’t keep up with orders from XYZ"
- Bad : "We need to optimize our data-entry system to keep up orders from XYZ”
- The problem definition should be in a user language, and the problem should be described from a user’s point of view
Important to remember (also in real life):
The penalty for failing to define the problem is that you can waste a lot of time solving the wrong problem. This is a double-barreled penalty because you also don’t solve the right problem.