Abstraction is the key to managing complexity in software systems.