Automation has changed network management by enabling new devices to automatically find initial configurations, utilizing scripts to standardize procedures, and scheduling operations, reducing the need for manual "box-by-box" configurations. Software-defined networking (SDN) further automates networks by using controllers to handle tasks like configuration deployment and software upgrades across devices, allowing operators to focus on higher-level design work. SDN implementations can take an imperative approach where the controller fully programs device forwarding, or a declarative approach where the controller declares requirements and devices determine how to implement them.