views:

45

answers:

4

One of my clients is using an out-of-state programmer for a project. He can't really figure out how much work the programmer is actually doing, so he's afraid that money is potentially going down the drain.

What I'm wondering, is it possible to use a SVN or GIT repository to calculate or estimate how much real work is actually being done? Something like finding the differences between two revisions or a given time-period and giving a summary/overview of the work accomplished?

Obviously you can simply add or remove whitespace to some code and SVN will see it as a change when committed, but it doesn't mean any work was actually done. Perhaps there are some methods or scripts that can take all these things into account and perhaps analyze the difference in file sizes etc and determine what work was accomplished.

And of course you can manually check out revisions by hand and run diff's on them, but being able to get more of a summary of everything would be more helpful.

Anyways, is there anything like this out there?

+3  A: 

The only thing analyzing the repository will tell you is how much code was changed. You need another programmer to look at it to really tell you how much work went into those changes. A small commit might have needed a huge amount of thought while a large commit was really easy to do since it was a simple part of the program.

There are little graphing things built into some repository managers though. For example, Redmine can give you a graph that tells you how many changes a person made and how much code was changed.

signine
A: 

You may look at StatSVN.

Combine with some random diffing of the check ins and svn blame and you might get a feeling.

Albin Sunnanbo
+2  A: 

This looks like a typical case where people want to use tools to avoid dealing personal relations.

I firmly believe that nothing good can come from this. People will behave as they are measured. When simple metrics as lines of code added are used you will get a lot of code. However you will dissuade refactoring efforts which typically reduce code!

If changed lines are counted, the a reformat of the code base will throw a spanner in the monitoring works and will be ticking of the rest of the development team.

If lines changed irrespective of spaces you have just set the first step on the slippery slope which will end with more effort being spent on monitoring productivity than on producing products.

What I would recommend is monitoring features delivered and QA-d, code reviews, weekly one-on-ones, measuring presences and input during meetings, and asking peer input.

That being said, I think Sonar is a pretty nice tools to monitor progress and quality metrics. But it will be difficult to use to target individuals.

Peter Tillemans
+2  A: 

There isn't any software to do what you're asking. You can find things to analyze the size of commits and how often those commits occur, but there is no software which can take those numbers and turn them into how much work the developer did.

The client should instead insist upon an agile development process where the programmer regularly demos progress or discusses with the client any concerns they have about development and business logic.

Zachary