Related: Concepts MOC, Database Management Systems (DBMS) and three-schema architecture


Black box thinking is heavy in programming, and refers to concepts where we don’t know its innerworkings, just that it works and has a purpose.

This is useful when you need to figure out how different parts of a larger system need to work together. It allows you to breaking down parts of a large process into smaller pieces, so you can look at the larger picture and how they relate to one another.

For programming, it allows you to not think about it as “what does the code do” - instead it’s about the structure before and after the code passes.

Some questions to help with this:

  • how will you test and update the code?
  • is it easy to scale?
  • how does it affect other downstream activities?
  • what are some problems that could arise?