When people think about Agile development, their first thoughts go to Agile planning processes (upstream) such as Scrum, Lean, Kanban, etc. However, Agile engineering practices like continuous integration, test-driven development, and continuous deployment (downstream) are just as important and more common.
At one time it was acceptable for organizations to begin their Agile transformation by focusing mainly on upstream Agile activities, and then eventually adding downstream activities, but this is no longer the case. Development teams should kick off their Agile transformation by adopting both upstream and downstream Agile activities in tandem, while their operations partners prepare Agile infrastructure and automation for them to execute on.
The larger challenge that many organizations face today is connecting these upstream processes and downstream agile practices together.
Upstream Agile activities remove barriers between business and development teams. and typically involve a product owner from the business, short two-to-four-week iterations, frequent feedback, daily scrums, and burn-up/burn-down boards for transparency.
Downstream activities remove barriers between development, testing, and operations. Engineering techniques like continuous integration, continuous delivery (at least to test or in staged environments), and test-driven development are good downstream activities.