Search the web
Sign In
New User? Sign Up
extremeprogramming · Extreme Programming
? Already a member? Sign in to Yahoo!

Yahoo! Groups Tips

Did you know...
Message search is now enhanced, find messages faster. Take it for a spin.

Best of Y! Groups

   Check them out and nominate your group.
Having problems with message search? Fill out this form to ensure your group is one of the first to be migrated to the new message search system.

Messages

  Messages Help
Advanced
Build Contention Equation   Message List  
Reply | Forward Message #121268 of 152305 |
http://jayflowers.com/WordPress/?p=65

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.

20 Change Packages = 8 Hours * 60 Minutes/ (5 Minute Build Time + 3
Minute Preparation Time + 15 Minute Buffer)

65% Chance Availability = 15 Minute Buffer / (5 Minute Build Time + 3
Minute Preparation Time + 15 Minute Buffer)

So if you have 10 developers they can submit twice a day. Does this
fit your needs? No? Well can you live with a lower chance of
availability risking that developers will start working in larger
change packages? If so then lets try reducing the buffer to provide a
50% chance of availability . That will yield an average of 30 change
packages in 8 hours for 2.5 submissions per developer for a 10
developer team.

So what is a team of 10 developers to do if there are no acceptable
set of values to this equation? The only solution that I can fathom
out is to split the build into multiple builds (e.g. a build for the
client and a build for the server). Dividing the build should occur
along two axis, package dependencies and number of contributing
developers. For example there is not much benefit to splitting the
the server off into its own build if only 10% of the team works on it.


--
Jay Flowers
----------------------------------------------------------------------
http://jayflowers.com
---------------------------------------------------------------------



Wed Jul 12, 2006 3:05 am

jfl0wers
Offline Offline
Send Email Send Email

Forward
Message #121268 of 152305 |
Expand Messages Author Sort by Date

http://jayflowers.com/WordPress/?p=65 We are exploring new ways to build our software at work. I was trying to convey a thought on validating the feasibility...
Jay Flowers
jfl0wers
Offline Send Email
Jul 12, 2006
3:12 am

On 7/11/06, Jay Flowers <jay.flowers@...> wrote: Jay - ... I don't get the buffer at all. Why do I want to allow 23 minutes for a process that's expected...
William Wake
wwake2
Offline Send Email
Jul 12, 2006
4:19 pm

... A build server, I am speaking of a build server. The server is monitoring source control and when a change is detected the build is triggered. So the ...
Jay Flowers
jfl0wers
Offline Send Email
Jul 12, 2006
8:22 pm

... I guess I'm not clear on why they can't overlap. Can't I sync, compile, run some more tests while the build is running? ... Not really. How is being forced...
William Wake
wwake2
Offline Send Email
Jul 13, 2006
1:27 am

Sorry guys, I have to put this conversation on hold. I suddenly have a lot of work to do. I want very much to finish this discussion will all of you. I think...
Jay Flowers
jfl0wers
Offline Send Email
Jul 13, 2006
1:51 pm

... You could do that, but there is no guaranty that you will get the token when the build completes; someone else might beat you to it and then you will have...
Jay Flowers
jfl0wers
Offline Send Email
Jul 14, 2006
2:18 am

On 7/12/06, William Wake <william.wake@... ... Take a look at "Codeline Merging and Locking: Continuous Updates and Two-Phased Commits" ...
Brad Appleton
bradapp1
Offline Send Email
Jul 14, 2006
8:34 am

... Where does this requirement come from? I can understand this for a private development build in one's sandbox. Must it be the case for a continuous...
Brad Appleton
bradapp1
Offline Send Email
Jul 14, 2006
8:34 am

... I hadn't read that little paragraph of Jay's before, and it troubles me a bit, but not because of the equation. I believe that there is no such thing as...
Ron Jeffries
RonaldEJeffries
Offline Send Email
Jul 14, 2006
10:02 am

Hi Ron, ... At one shop, when we first sat down to talk about setting up a CI build, we ended up spending an hour or so talking about all the things that could...
Charlie Poole
cpoole98370
Offline Send Email
Jul 14, 2006
12:32 pm

... I am curious: To be clear the build was triggered by source control changes or was schedule based? How many developers were submiting and how often? -- ...
Jay Flowers
jfl0wers
Offline Send Email
Jul 14, 2006
1:40 pm

... I am not clear on what is troubling to you, please tell me more. I believe that there is no such thing as non-overlapping changes, ... How do you mean...
Jay Flowers
jfl0wers
Offline Send Email
Jul 14, 2006
1:46 pm

... Isn't waiting for your turn to commit an interruption? Seems to me it is a trade-off between a more frequent interruption (waiting for your turn) or a more...
Jeffrey Fredrick
frogstar
Offline Send Email
Jul 15, 2006
5:34 am

... I suppose stopping at red lights is a similar tradeoff. ;-> But seriously, I don't recall ever feeling interrupted by waiting to commit, probably because I...
Ron Jeffries
RonaldEJeffries
Offline Send Email
Jul 15, 2006
11:50 am

... exactly! er... ... I think we've both adapted to our prefered modes of working by visiting the water cooler at different times. When do my talk on CI & ...
Jeffrey Fredrick
frogstar
Offline Send Email
Jul 15, 2006
3:49 pm

... There was an interesting article about a related issue on one of the lean blogs I read: ...
David Carlton
carlton_db
Offline Send Email
Jul 18, 2006
5:21 am

... <guiness-ad-voice>Removing traffic signals? Brilliant!</guiness-ad-voice> What are you not sure about? The analogy to agile development or ? Jtf -- ...
Jeffrey Fredrick
frogstar
Offline Send Email
Jul 18, 2006
5:58 am

... [replying to noone in particular] I see similarities in this discussion (using/not using a build token; having/not having traffic signals) with the...
Kevin Lawrence
kevinwilliam...
Online Now Send Email
Jul 18, 2006
3:21 pm

... Everything, really. I'm curious what traffic like that is like, if it's as nice as is claimed in the article. (I've never been to Italy or driven a car...
David Carlton
carlton_db
Offline Send Email
Jul 20, 2006
4:40 am

... Very interesting ... I note that for this to work the motorist has to be able to see (and then actually notice) the environment and pedestrians at the...
Brad Appleton
bradapp1
Offline Send Email
Jul 19, 2006
1:04 am

... I haven't found "broken build" emails to be a problem. o They don't happen very often. (Hopefully, team members don't break the build too often! ;-) o...
Jeff Grigg
jeffgrigg63132
Offline Send Email
Jul 15, 2006
1:45 pm

... There is, its just not a guarantee against what you say below (which I think is really your point) ... So the issue here isnt about whether it's possible...
Brad Appleton
bradapp1
Offline Send Email
Jul 15, 2006
9:03 pm

So I am getting back around to measuring these things and more. I am wondering how one might measure the size of a change package. Data that I can think of...
Jay Flowers
jfl0wers
Offline Send Email
Nov 15, 2006
4:59 pm

... I typically see change-package-size as # of lines added/changed/deleted text. I often see # of files modified by a change-package included in there as ...
Brad Appleton
bradapp1
Offline Send Email
Nov 17, 2006
10:35 pm

... This is what we thought was the best measure as well. I often see # of files modified by a change-package included in there as ... I was wondering if...
Jay Flowers
jfl0wers
Offline Send Email
Nov 18, 2006
2:31 pm

Regarding avg # lines added/changed/removed per file ... I've found that to be less useful because it can vary so widely based on file-type (e.g., source file,...
Brad Appleton
bradapp1
Offline Send Email
Nov 19, 2006
6:38 am

Hmm, I try an translate to the way we operate. We use VSS,<gag> so there is no merging. We have an integration token. Sounds like the commit time/duration...
Jay Flowers
jfl0wers
Offline Send Email
Nov 19, 2006
1:56 pm

If commits are done serially/synchronously, then "commit-time" corresponds to a time during which others are dis-allowed to commit their changes. If...
Brad Appleton
bradapp1
Offline Send Email
Nov 21, 2006
6:38 am

... If the build breaks and 5 people contributed to the build all five people will be negatively effected. All will have to participate in fixing the build...
Jay Flowers
jfl0wers
Offline Send Email
Jul 14, 2006
1:31 pm
First  | < Prev  |  Last 
Advanced

Copyright © 2009 Yahoo! Inc. All rights reserved.
Privacy Policy - Terms of Service - Guidelines - Help