Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

"Calculating" code ownership index using TFS SDK 2010

Tags:

tfs

tfs-sdk

I need your help on an idea that came to my mind recently.

Speaking in TFS terms, I am trying to come up with a formula that can determine the ownership index for some source-controlled file (i.e. who is the developer most responsible for that file).

That's why I'm looking for criteria I can use to calculate this ownership index. So far, the only feasible thing that comes to my mind is to sum the number of check ins, but this criterion seems fishy. Another criterion is to sum all the lines of code each developer has checked in, however 1) I am not sure if it is possible with TFS SDK 2010 and 2) Documentation lines should be skipped.

So, my question, I guess, is:

Are the above criteria (number of checkins + lines of code) sufficient to calculate an ownership index or do I need something else?

like image 546
Kiril Stanoev Avatar asked Feb 03 '26 12:02

Kiril Stanoev


2 Answers

I 've participated in numerous software transfer projects, where one team handed over the sources to another. Under such circumstances it is vital to recognise who the true expert for a given source file / software component is.
So, I 've learned the hard way that the developer who is the gatekeeper, is frequently not the one with the highest churn, the commiter of the most changesets, the top bug-solver, the top feature-implementer etc.

You would have to get to know the software module, identify it's hardcore parts and then go look for the one(s) committed them. I believe those steps can't be automated - not in TFS, or any other suite.

A slight opportunity is to find out the one who constructed the module, that is inserted it in the repository. If this initial commit has flesh & bones (it's not a stub) you definitely have a candidate that knows a lot about it. This can be retrieved via TFS API.
It also helps to talk to the team about the matter.

like image 99
pantelif Avatar answered Feb 06 '26 04:02

pantelif


You need something else. Imagine a library class that does something to a given type of object. If someone were to do an automated rename on a method of that object they could claim a large portion of ownership in the library without ever intentionally changing it.

like image 43
Sign Avatar answered Feb 06 '26 04:02

Sign