In urban planning, a brownfield is when we build on land that was previously used for industrial purposes, potentially contaminated with hazardous waste or pollution. In order to improve the land, existing structures need to be demolished or toxic materials need to be removed. In software development, a brownfield comes often with significant Technical Debt such as having no automated tests or running on unsupported platforms. A greenfield in software development means to start from scratch and worry less about existing code bases, processes and teams.
Many people believe that DevOps, which requires a software architecture optimised for testability and deployability, is only possible for greenfield projects, but many companies, such as Etsy or LinkedIn showed how to close the large performance gap between what customers needed and what the organisation was able to deliver by selecting the right value streams and improving their software architecture along those value streams.
This talk starts with defining the Technical Debt landscape from Code Smells to the Technology Gap and shows why solving the problems of the landscape unsystematically is neither economical nor goal oriented and won’t lead you anywhere. We then look at the specific goals DevOps wants to achieve and how certain parts of the Technical Debt landscape interfere with these goals unequally strong. The presentation will offer conceptual background and concrete steps and examples on how to understand and select the right value stream for a brownfield DevOps transformation, how to get started and measure progress, select the right technologies at a certain point in time and finally move towards continuous architecting for DevOps.