I tend to think of it as plants/trees. It starts from a single point, the main routine, and branches out its behavior over time. Branches get pruned, abandoned, merged, coopted to optimize for the nutrient gradient. I especially like the “roots” analogy i.e. it draws its strength from the parts that are hidden and difficult to assess by typical observation.