This document discusses the history and evolution of configuration management from building entire systems to more modular approaches that allow for separation of scales, knowledge management, and absorption of expertise into infrastructure. It notes key issues as predictability, scale, modularity, layers/complexity, and retention of expertise. Principles of configuration management progressed from building/designing single systems to standardization, refactoring, monitoring, separating data from scripts, and using declarative languages like YAML. Technology has moved from program-centric to services/containers/clusters and absorbing complexity deeper into infrastructure.