concrete requires a multitude of perspectives. These are methods I use naturally in my head& $ To draw analogies between what happens in a program and events in the real worldE $ Once it works, I create a solution for the real world and then bring it into the program. For example, I evaluated Pairs’ iOS architecture as successful by comparing it to how a ward office operates: long queues, verbosity, yet it works correctly, is scalable, and offers better resilience.