git today? Data Driven conclusions only

Have you thought sometimes that you are doing too much debugging and bug fixing or spending too much time in meetings while other developers are having fun writing code? Or maybe you’ve heard that someone said “writing less or more code”?

In both cases conclusion must be wrong! I have a story that made me think that in most cases Software Developers and their managers don’t know their and others numbers.

I was working in CQG Inc, company with a very interesting development processes. People were obsessed with high quality code and metrics. There were Personal Software Process (PSP) and Team Software Process (TSP). Company wanted developers to know their and others numbers. I loved it.

I’ve started to ask candidates during interview about their numbers. Most just replied “I don’t know”, “hard to tell”,  “it depends” and the rest came up with ridiculous numbers. This is how and why I believe that Software Developers don’t know their numbers and they don’t know others numbers to make conclusions. Later, working in other companies and projects I’m convinced about it.

Do you use git? Don’t trust opinions and make Data Driven conclusions. It’s quick, fun and surprising, believe me.

If you have OS X or Linux machine with git repository, I recommend to start with http://gitstats.sourceforge.net. Note that for OS X, currently there is no gitstats package. But it’s not a problem: clone gitstats repo and then brew install gnuplot because this is required dependency. Run script gitstats from cloned repo.

I will use my numbers of one of the project as example.


mkdir ~/gstatistics
cd ~/gstatistics
$ gitstats ~/gitrepo ./

It will generate set of reports. Open report


firefox ~/gstatistics/index.html

Personally I like Author Of Year report. Don’t treat it too seriously though

AuthorOfYear_masked

At the end I want to share some interesting observation. When new project is released and you see final numbers with ratio like

Added Deleted Modified
20K 10K 10K

It tells me that the project had one or all set of problems: bad design, poor implementation, wrong requirements. Possible that there is another explanation but it’s something that may worth to think why it happened and what you can do better next time.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s