Nick Sutterer's extracted lesson from 30 years of programming: structure software as small working units of code that take inputs and return outputs, knowing nothing about the outside world and vice versa, then compose them into workflows and let a process engine handle execution, continuation, tracing and visualization. This simplifies reasoning about complex applications and lets non-authors understand what the code does by reading diagrams.