This document discusses applying agile practices to both software development and operations. It notes that developers must support operational use of software, known as "devops". Environment automation can help address common impediments like unavailable test environments. The document proposes treating infrastructure provisioning as software that can be developed using practices like test-driven development and continuous integration. It introduces the Opscode Chef tool for environment automation and argues both developers and operations should learn unfamiliar skills to better collaborate.