Code Branching

Code branching is a mechanism that facilitates parallel development in software development project.

It is especially common when we have a specific release of the system in production and we continue with the development effort for the next release.  In that case, you need to have a code branch for any possible production support activities and you need to have a code branch for continue product development. All fixes we applied on production support branch need to be replicated to the product development branch.

When it comes to code branching, there are 2 conflict factors in our decision making process as when is the best time to branch.

1.       The sooner we branch the code, the sooner we can start development activities for the next release.
2.       However, as soon as we branch the code, we will need to replicate solutions from one code branch to another.

Based on the first consideration, you would want to branch the code sooner. Based on the second consideration, you would want to delay or avoid branching as much as possible.

In practical, a check point is used in the decision making process, which is “do we have enough work to keep the entire development team busy without branching?” if the answer is “Yes”, you would want to hold of branching, if the answer is “No”, that is the time you start to consider branching.  The goals of this decision making process are:

1.       Minimize development team idle time and
2.       Minimize replication effort
   
Branching too early or too late both negatively impact the overall productivity of the development team.

No comments:

Post a Comment