Box Evaluation

It is quite common for people to say:

Think outside the box

However, the reality, as stated in The Pragmatic Programmer, is that people often overlook some important constraints and conditions and/or instead looking into their imagined constraints, that is preconceived notions. The box could be considerably larger than what people thought. Therefore, it is the primary task for the software engineer to find out the box, that is the real boundary of constraints and conditions.

Don’t think outside the box – Find the box.

Be aware of your environment. Recognising what’s the constraints that placed upon us and how much freedom do we possess. It is essential in ultimately solving the puzzle given to us. Challenge any preconceived notions and evaluate whether they are real constraints, no matter how ridiculous they might sound to you. If you think that “It Can’t Happen”#, then prove it. It is recommended to find out the most restrictive constraints first, then fit the remaining constraints within them.

If you are not sure, thinking that you’ve took a wrong path or you simply don’t have time for the mind experiment, Hunt et al. suggest the following questions for us to evaluate:

  • Is there an easier way?
  • Are you trying to solve the right problem, or have you been distracted by a peripheral technicality?
  • Why is this thing a problem?
  • What is it that’s making it so hard to solve?
  • Does it have to be done this way?
  • Does it have to done at all?
#development #math