Ohloh Tracks Open Source Developers
eldavojohn writes "The startup company Ohloh has a database listing 70,000 developers working on 11,000 open source projects. Their aim is to 'rank' open source developers, which raises some interesting questions about exactly how useful this tracking company is. Questions like, 'Is there an accurate way beyond word of mouth to measure the importance and skill of a developer?' I found it slightly alarming that, to this site, the number of commits (with input from the number of kudos) tells how good a developer you are."
I don't know how representative it is, or if it might improve over time, but I looked myself up.
I found mentions in 5 projects - _except_ they're all just versions of 2.6 kernel source with the same contribution for an obscure TV card cx88 variant I did. In practice, I'm sure I'm hardly alone in having contributions (mostly in small ways, but sometimes very considerably) to over 100 projects over the years. I guess I have to go through and add some of those projects.
Naw, CBA. At least I can make sure my resume is accurate.
I tried to think of metrics to relay up the chain (a special thank you to the stat-scm goal in maven) but I come up with some pretty lame ones:
- Code to comment ratio is desired at 1:1 (at least in the commercial world)
- A class/method/function/procedure/module desired size should be defined and rated
- # of Unit tests
As you can see these are the ones that I found could be automatically gathered. And even these have exceptions. Anything else I think of either takes too much time to gather or is subjective. This is tough, I would like to default to peer review but oftentimes I find teammates voicing their personal hatred for an individual or taking into account personal qualities when ranking a developer. Real Life Example: Teammate A is from MIT and teammate B thinks everyone from MIT is a god. Unfortunately Teammate A hasn't done anything but criticize everyone's code without any constructive comments to make it better.I submitted this story hoping it would open dialog on measuring coding abilities in a semi-automated way.
My work here is dung.
This reminds me of how academics are increasingly judged. It is more about how many papers and how many other people link to it rather than the quality of each paper's work or the note of the linking party. Accordingly, many authors inflate their 'impact' scores by splitting up papers and publishing nonadvancing science, no-one can blame them for this as many are trying to justify themselves to their departments or are still doing the postdoc merry-go-round looking for new jobs every 18months.
You can't effectively rank developers. First there are just too many to rank. Even in college football, where thousands of people are paid everyday to monitor it, they don't try to rank all of the ~119 Div 1 teams, just the top 25. Secondly there isn't a simple metric to rank developers. It's about as smart as saying look I did the most work on this project because I wrote the most lines of code.
This could even have a negative effect if developers get concerned about their ranking and try to game the system instead of making quality contributions to projects.
Most of my contributions were on website documentation, wikis, or mailing lists, which aren't included in these metrics. At the moment, a lot of my commits are done on repositories not directly available to the public. While I don't really need Ohloh to tell me if I've contributed to a project or not, it's still a little annoying.
And what about contributors who submitted patches that had to be committed by someone else? Or people who contribute by providing help on IRC channels, blogs, forums, or other mailing lists?
While ohloh metrics can be useful, they also need to be taken with a grain of salt, particularly the contributor metrics. They're a bit more useful on measuring a project as a whole (but they still miss a lot of activity).
Who said Freedom was Fair?
What the heck is their business model, or is this just a hobby site? About the only way I can think of to make some money is to take some under the table in exchange for a higher rating.
Would this discourage contributers to open source projects? Now if I put on my resume that I've contributed to an open source project, somebody is going to want to look me up. I have to deal with all that baggage when I just wanted something to do in my spare time. Also, I really am not sure I feel comfortable being given an absolute rank. People always bring different skill/approaches to different jobs and I don't think you can arguably say one is better than another. I've worked in teams where everyone respects the different capabilities and limitations of each member. Its sort of like arguing there is an absolute thing known as "intelligence". Is there really such a thing or do we just all bring different skills/perspectives/approaches to the problems we solve? I'd prefer to think the latter, that everyone contributes what they can but has their own limitations. Talking about absolute "intelligence" or "value" seems condescending and elitist.
http://en.wikipedia.org/wiki/Wikipedia:Editcountitis
Remember the days when Republicans were the party of fiscal responsibility?
So in other words, I could commit some of my own code to a CVS repository, find some errors that I missed, fix them, commit it again, decide to add more comments, commit it again, find one more thing I probably could have done differently and then rewrite it, commit it again...
And I would be ranked highly as a great developer?
/* No Comment */
Wouldn't such a system assume that everyone uses only one handle - or, their real name - all the time for every project? If so, then a lot of people - who contribute under multiple handles, nicks, whatever you want to call their identities - are going to missed or severely under-rated.
I would rather not have my real name attached to most of what I've contributed. One, because my code is so damn sloppy that it's embarrassing. Two, because I don't want the hassle of my real life - you know, offline - and my, uh, "digital lives" conflicting with each other. Three, if I was easy to find - online - I run the risk of being pestered with silly tech support questions.
UrCreepyNeighbor, while an accurate description of my personality, is one of many identities I have. Same could be said of almost everyone. I'm sure "HotChic17CA" doesn't use that username when she's talking with her grandmother, for example.
"The fight for freedom has only just begun." - Geert Wilders
So in other words, I could commit some of my own code to a CVS repository, find some errors that I missed, fix them, commit it again, decide to add more comments, commit it again, find one more thing I probably could have done differently and then rewrite it, commit it again...
Your willingness to fix errors, add comments, and do code rewrites puts you in the pantheon of programming gods! The next thing you are going to tell me you actually write your own legible "how to" user guides in PDF!
"All great wisdom is contained in .signature files"
It's as good a measure as any.
You might be right, but it still sucks. And in the case when all your solutions are crap, I think it's dishonest to present any of them as actual, workable solutions.
Cretin - a powerful and flexible CD reencoder
# of kernel builds
# of ICQ shouting matches ending in "Nazi!!!"
# of cans of Jolt consumed
# of steps from mom's basement to side door. No! You got it all wrong! Everybody knows that programmer productivity is inversely proportional to the number of Slashdot posts!
My blog
Some people will get a shiny glory and some will feel annoyed bbecause their projects/contributions have not been tracked.
Engineering is the art of compromise.
I am listed as two people with the same pseudonym; my real name is not found. I am listed for two related projects belonging to the same organization. Both of me have the same score albeit for different skills. Ohloh obviously only checks commits to the main branches; my commits and LOCs to an experimental branch of one project would drown my official commits. I won commit status due to my assistance on the mailing lists and a lengthy complicated patch for critical functionality; my name is in the credits, but the commit is credited to someone else. I cured a critical bug in a third project (a component affecting many FOSS projects), but my patch was included as text in the bug tracking system and committed by and credited to someone else. The system measures lines of code, but great programming often reduces LOCs (as happened in the patch to the third project.) I am about to post code in a bug-tracking system that will not be integrated into the project due to management's objections ("This function has been broken for 8 years and we are afraid to fix it"); this will not be credited. Contributions to official documentation are ignored, as is useful information on personal websites.
Another committer has a much higher score. He is involved in more products and has committed tons of code to the official branches. He has kudos from other developers. From researching several developers whose work I know, I agree with the scores (except mine. My fame is in the corporate world for completing critical, urgent IT projects. I am a very minor player in the FOSS world. I am surprised my score is so high based on the limited contributions considered.)
Some suggestions:
1. List one person as one person. The organization requires a unique pseudonym for all projects. Start with the page translating the pseudonyms to real names.
2. Look at mailing list activity and distinguish between questions and answers. The first post in a user thread is a question; additional posts are often requests for information; the final post not from the original poster is usually the solution. The first post in a dev thread is often a new idea; additional posts are clarifications so give credit for length to avoid "+1" posts but avoid crediting lengthy log listings.
3. Look at bug-tracking systems. Many official commits are patches provided by non-committers through the bug-tracking system.
4. Counting LOCs is usually a poor determination of the quality of contributions. One of my official commits added code. My commit was reverted and replaced with half the LOCs of the original code. While I would accept credit for the concept that was implemented, those LOCs should not contribute positively to my score. Did the committer writing the excellent replacement code lose points for reducing LOC?
Ohloh ignores many important types of contributions and poorly assigns credit for much work to the committer rather than the contributor. Ohloh does not distinguish between types of commits; many commits are correcting bugs introduced by the same committer. Assigning importance ratings to commits requires integration with bug-tracking systems; CVS and SVN do not have scoring mechanisms.
Ohloh cannot score personality. Much of my career has been accomplishing the "impossible" (whether functional or due to deadlines) as my focus is on business usefulness rather than technical limitations. One person (scored 9 by Ohloh) is an incredible programmer once someone proves something can and should be done, but is extremely resistant to new ideas. Creativity is not reflected in the scores.
Ohloh has a good idea. I like the kudos system (and hope merit wins over popularity.) The system still needs work to be accepted as a reliable source of useful information.
I spend my life entertaining my brain.