Build Contention Equation We are exploring new ways to build our software at work. I was trying to convey a thought on validating the feasibility of a build process today with the following equation.
Number of Change Packages = 8 Hours * 60 Minutes / (Build Time + Preparation Time + Buffer)
Filling out the right side of the equation will show how many change packages can be process by the build on an average day. The Build Time is how long it take the build to complete. The Preparation Time is how long it takes a developer to get the build started. This could represent claiming the build token, submitting to source control and waiting for the build process to begin. In the proposed build process only one developer could submit at a time; the build is triggered by a submission to source control. The Buffer is the tricky variable. The buffer deals with contention or rather is a means to reduce contention. It is desirable for developers to be able to submit to the build when they complete a task. It is not desirable for them to have to wait to submit. The buffer is the amount of time that will create a situation where when a developer goes to claim the build token chances are it is available. Let me repeat that, chances are it is available. I do not know how much this variable should be. I just see that it is a fulcrum, a way to control, reduce the contention for the build. It will not eliminate it will just reduce the chances of it occurring. Lets say we make the Buffer 15 minutes. This will yield a build that can process on average 20 change packages in 8 hours with a 65% chance that the build will be available when a developer goes to submit.
...