Multiple projects, different goals, one thing in common: the codebase!
Are you developing new functionalities into branches? Have you ever experienced the pain of merging the changes into trunk? The so called "merge hell" is one of the first and probably the most important smell that tells you've been abusing of your source control manager branching capabilities and, most likely, hurting your productivity and your code quality as well. In order to move towards a continuous delivery approach, the practice of trunk based development suggests ways to avoid this type of issues among others like inconsistent feature sets, code that stays in an undeployable state for a long time, regressions introduced by semantic differences that arise during those joyful merging sessions, integration surprises with the other features, and the like. Even if you are not a developer on your team you will benefit from the examples and techniques presented.
Outline/structure of the Session
The session will start covering the main smells that suggest you might need to consider using trunk based development and the impact they have in your development process.
Based on that, we will see how the practice of trunk based development can help you tackle these problems and the additional benefits it provides (as well as its shortcomings).
We will also see in which situations the use of source control branches can support trunk based development, since this is not about "avoiding branches" but about how to handle your source code better to increase productivity and quality.
To wrap it up, we will see real world examples of feature abstraction on different technology stacks, so the audience can have more tangible information to put this in practice.
- Understand the main problems of branching by source control and how these issues can be tackled by applying techniques like branching by abstraction.
- Strategies to handle different streams of work being developed by different teams.
- Techniques that will give the audience ideas of how to abstract features in real projects in order to successfully apply trunk based development.
- How trunk based development allows multiple stakeholders and decision-makers to hedge on the order of software releases.
Anyone involved in a software development project, but the session will be specially interesting for folks that have felt pain while dealing with source control tools being used in a suboptimal fashion.