views:

354

answers:

4

I am using FogBugz as a tool to give us "a look into the future". The program takes our work hours, the tasks for a release, assigned developer's estimate against that task, and the developers tendency to under/over estimate, and tries to come up with a probability of making the release against a range of dates in the future.

Now since FogBugz takes into account the work hours, it assumes that the developers will put in the hours into the tasks they are assigned, which is not true in XP because the earlier decision of the pair was to work on one of the developers' tasks together.

Does this mean that I cant use FogBugz for estimates when doing pair programming?

+1  A: 

Does this mean that I cant use FogBugz for estimates when doing pair programming?

I don't have any FogBogz experience but I'd say “give it a try”. The whole point of the time estimates in FogBogz is that the software learns from experience and automatically corrects estimates based on this. This is an incredibly strong mechanism because in practice, most people's estimates are worth squat. It'd be interesting to see if FogBugs can also cope with pair estimates. I expect the error margin to be quite a bit higher but perhaps the estimtates are still usable.

Konrad Rudolph
FogBugz will "correct" estimates based on historical data, so if I consistently estimate twice as much time as I actually use, FB will actually start to revise my estimates to about half of what I say. That won't work if the estimates are truly random of course.
Lasse V. Karlsen
+2  A: 

If the two programmers are working together, then for all practical purposes they are like one programmer with two heads, no? Why not create another user account in FogBugz that represents them both? They should then also produce their estimates together. That might actually increase precision.

Vilx-
Put 10 people on a team and see how many ways-to-pair-them exist. Now bring money into the equation, FogBugz on demand is a "per user" license.
Nick
Well, I thought that the pairs were pretty much permanent. :P And I didn't know which solution you were using.
Vilx-
+1  A: 

Does this mean that I cant use FogBugz for estimates when doing pair programming?

I don't have experience with it, but intuition would tell me "it depends"

To elaborate - Say you have 2 programmers, John and Bob, both with FB accounts:

Does John always Pair-Program with Bob?
- John's estimates should be consistent with respect to his actual completion times. Even if he does his estimates based on what he alone thinks, the 'velocity' calculations should make up for this

Does John sometimes Pair-Program with Bob, and sometimes by himself?
- Provided John knows ahead of time which projects will be paired, and which won't, he will adjust his estimates accordingly. They might still be wrong, but the velocity calculations should probably still be ok? maybe?

Does John pair-program with a wide variety of partners? (optionally including programming alone)
- You're screwed. There are too many variables in motion for John to be able to produce any kind of useful estimates, let alone for FB or anything (or anyone) else to compensate for them.

Orion Edwards
+3  A: 

What I would do in this case would be to have each developer estimate each of his cases for the release expressed in working hours it will take to complete it while pair programming (that is, time spent with a partner actually working on that case). Then figure out about how much time you spend pair programming on your own tasks vs. on someone else's tasks, and set your "% time spent on FogBugz tasks" on your Working Schedule to the approximate percentage of time you spend on your own tasks.

Then, when you're working on your tasks, mark yourself as Working On -> case ID, and when you're working on someone else's tasks, set Working On -> Nothing.

There are actually a lot of different ways to get get this to work (and the other answers here might be better depending on the circumstances), but that's how I would do it.

Brett
This could work... I'm wondering how fogbugz handles virtual users. Say I assign a task to a virtual user called "Pair" for example. And then have both of the developers estimate the task and do Working On->case ID. How would fogbugz estimate in this case?
Nick
It would show up on the Developer Ship Dates graph under the virtual user, and it would be simulated by FogBugz EBS using the estimate history of the last developer to enter an estimate on the case.
Brett
For my small team, I ended up creating a separate user to represent the pair. Eventually that user will reflect me and my partner working together. I think the idea you suggested could work as well though and would be suited better (cheaper) for larger teams.
Nick
Good luck, and if you have a chance, let us know if it works out for you or not on the discussion groups or by email! (http://our.fogbugz.com/default.asp?fogbugz )
Brett