Model Solutions on Reality NOT Technology

Technology is developed in order to solve a problem. The problem is defined in the real world so the solution should endevour to solve the problem based on a model of reality, not the model of technology.

+-------------------------------+
| Reality |
| +---------+ |
| |Problem | |
| | | |
| +---------+ |
| |based on |
| +----v----+ +----------+ |
| |Model | |Technology| |
| | | | | |
| +---------+ +----------+ |
| |based on | |
| +----v----+ | |
| |Solution | uses | |
| | <------------+ |
| +---------+ |
+-------------------------------+

How To Make a Piece of Software

  1. Define problem
  2. Develop a model of how the problem works
  3. Iterate on solutions that use the model
  4. Select the technology to implement the solution

The important part is to leave the technology last.

Solutions in software (to some extent) should not be concerned with the technology they’re implemented in.

Ben Winding2018