Architectural Patterns for an Efficient Delivery Pipeline
Continuous integration has made development faster and more reliable. However, as codebases expand, organizations are finding that their build pipelines slow down dramatically. One of the most common reasons is that we often rebuild parts of the system that don't need to be rebuilt. This can happen when the code structure isn’t a faithful representation of the logical dependencies between the different parts. This prevents the pipeline from detecting which parts of the system are impacted by a change and which ones aren’t. Abraham Marin-Perez describes common scenarios in which the structure of the code doesn’t represent the real internal dependencies, forcing unnecessary rebuilds. These include cases when a module depends on both the definition and the implementation of a library (when only the definition is needed) or a tiered application where all layers need to be rebuilt every time a new feature is added. Abraham explains how to fix each of these, sharing the necessary tools to re-architect code for a more efficient delivery pipeline.
An associate of Equal Experts, Abraham Marin-Perez has been working in software development for a decade, paying special attention to what maximizes a team's capacity to deliver in the long term. This has led him to study everyday programming habits and techniques that ensure the sustainability of the development process. Abraham shares his views in Real-World Maintainable Software and more informally in his blog and on Twitter @AbrahamMarin. An author and public speaker, Abraham helps run the London Java Community and contributes as a Java news editor at InfoQ.