Why Code Lines Matter
Code Lines defined some terms. Here I’ll start getting into how SCM and Version Management concepts affect your day to day work
In A Timeless Way of Building Christoper Alexander says:
Some kinds of physical and social circumstances help a person come to life, others make it more difficult
Alexander is speaking of the physical world, and architecture and urban planning in particular, but there is a metaphor here for how processes affect how we work.
Code Lines often get less attention than project management, architecture and programming language details, but as a developer you interact with Code Lines every day, and they influence how you interact with other teams. Code Lines define your environment. The code line policies that teams have in place can both reflect values and influence behavior whether intended or not. These Code Line policies could send signals about trust, and affect batch sizes and speed of integration, and in the end, quality.
Compared to integration practices, writing code is easy. Collaborating with stakeholders to understand what to build, and with other developers to figure out how to build it involves communication — which is much harder. For effective software development it’s important that you check that your Code Line policies align with your goals, requirements, and the capabilities of the team.
The process you use for Code Lines should be a conscious decision, as they have an impact on how your team delivers value. But in the end most all processes are overhead — albeit necessary overhead. A well designed implementation of a Code Line model should make execution by team members easy and low cost.
Agile Code Lines can help you to realize the full potential of Scrum or whatever agile method you use. This means you need Code Lines that support agile code, which means having qualities that make it easy to change as business needs change.
You can work without branching. But branches can be a powerful collaboration tool. Fewer, shorter-lived branches are often better as minimize integration delay.
Because people often speak of the problems that can arise from using branching too much, the next couple of posts will discuss some ways poorly implemented branching can be harmful. First: Some general risks of branching.