Ever wondered how much your contribution was worth to a project? If you are a Java developer helping out one of the hundreds of open source Java projects, head over to SourceKibitzer. It's a social network of Java developers that provides various metrics for open source Java projects.
Mark Kofman, founder of SourceKibitzer and a Java developer himself, compares the project with market-monitoring portals like Yahoo! Finance. "Open source attracts a lot of attention from IT specialists," Kofman says, "and lately also from non-IT users. Information about open source projects today is mostly based on 'marketing' stories and often incomplete documentation. If you take as analogy the finance field, public companies have a great number of sources to track their financial performance." SourceKibitzer is attempting to build a similar service where anybody can find objective real-time information about any of the 600 open source projects it currently tracks.
Dawid Weiss, founder of the Carrot2 project, says his project has been keeping an eye on SourceKibitzer almost since its inception because its developers were interested in what it had to offer -- statistical insight into open source repositories. "Analysis of open source repositories is a fascinating subject," says Weiss, "and quite a few attempts are out there that do it. SourceKibitzer's visualization is quite good, and I like it."
Some of the other sites offering statistical insight into the quality of open source projects include Coverity's Scan, Agitar's OpenQuality project, Fortify's Java Open Review project for identifying bugs and security vulnerabilities, and Ohloh.net. Kofman says that while these are similar to SourceKibitzer, many either try to analyze multiple languages or focus only on a particular aspect of development. "Our focus on Java enables us to provide very detailed analysis specific to this language. It is our competitive advantage," Kofman says.
Getting more personal
From its launch almost a year ago the project has steadily moved from information about open source software projects to analytics about individual contributors. Kofman says, "There are a huge number of developers who are unhappy about the time spent on open source projects. Today only top celebrities like Mark Fleury, Linus Torvalds, and Rod Johnson are able to monetize their reputations. Those celebrities are great attractions for the open source community, but still the open source mass is left behind without earning value or recognition."
SourceKibitzer hopes to give even part-time developers their share of the limelight. "We provide developers with a SourceKibitzer Bio [report that shows] a set of achievement metrics based on recent contributions to OSS projects and the size and quality of those contributions," says Kofman. "With the Bio tool, we are like a novel social network for Java developers to earn recognition and value for their participation in open source projects. It is a place to share professional information and highlight a developer's achievements. Backed up with a metrics data warehouse providing each programmer and the rest of the community analytical information on [programmers'] individual performance, SourceKibitzer enables participants to earn recognition for their contributions." Kofman believes that with the tool an experienced developer who contributes actively has a stronger chance to position himself on the open source market.
If a Java developer would like to create a bio, the project he contributes to must be listed on SourceKibitzer. If your project isn't listed, you can fill out a request form. Kofman says it usually takes a day to profile and add a new project.
Is the project really useful to open source developers? Talking from the point of view of profiled projects, Weiss says SourceKibitzer isn't directly useful to his project. But indirectly, he says, "it gives you some publicity, and publicity, in the long run, translates into people calling your number and asking for consulting contracts. That's what we have observed in the Carrot2 project at least."
On the other hand, Alex Alishevskikh, a developer involved with projects such as SOFA, Memoranda, and Jacinth, believes that not only are the SourceKibitzer analyses interesting to look at, they're also useful. "It can help in code refactoring and improving quality of code. It makes it possible to see your own code from an unusual point of view and find some hidden problems."
Thanks to SourceKibitzer's Size and Complexity reports, Alishevskikh was able to simplify the code for his project. "I was surprised to see that some units of code I considered to be simple had been estimated as very complex. I inspected them and noticed that design of those parts was really ugly. Maybe I left that code with the intention to return to it later, but as it is, such things are usually forgotten." Alishevskikh says he also likes the Progress report, "because it displays activity on separate compilation units, instead of a single total number like on SourceForge.net." He says this report would be useful for administrating and monitoring the development of large projects.
Vincent Massol, another open source Java developer involved with projects such as XWiki, Cactus, Maven, Mock Objects, and Cargo, is less impressed. He wants more deliberation on the part of SourceKibitzer to properly register users to their respective projects. "It would be even more useful if it [SourceKibitzer] could automatically build my profile with projects I've participated to. For example, my profile shows three OSS projects, but in practice I have participated in at least 15. So my SourceKibitzer bio is reducing my participation rather than enhancing it," Massol says.
Massol also wants more transparency in how the data is collected. "I'd like for SourceKibitzer to show more how they gather the data, and the algorithm used. For example, imagine I do a SVN restructuring and I move lots of files around. Does that register as knowledge about the project?" asks Massol. "I would need SourceKibitzer to be more transparent and show more for me to trust its data."
While there's no word on how SourceKibitzer will address the algorithm transparency issue, the project has opened the code for its Web site. "By opening the source code of the portal we allow our community to be more active and to work together to build a better community," says Kofman.
Since the site is the basis of the social networking platform, Alishevskikh is looking forward to some improvements in design and enhancements in service. "Author Bio tool would be great if it is evolved to a real social network for OSS developers. I imagine something like LinkedIn or Facebook but purposely for OSS developers, where people would be connected via their projects and areas of expertise. The main goal is to help find the right people for the projects, and to find the right projects to get involved in." He also hopes "the project description is improved to provide better project annotation and classification, maybe using DOAP metadata or something similar."
According to Kofman, another benefit of the open source SourceKibitzer site is for Java developers who haven't yet contributed to any project. "For those who don't have open source experience, we offer [the opportunity] to participate in the development of open source SourceKibitzer." Then again, this application isn't something for newbie Java developers, since it requires some knowledge of frameworks and tools like the Spring Framework, Hibernate, and Tapestry.
More services in the near future
Kofman says SourceKibitzer has no immediate plans to open-source the algorithms behind the reports, but he asserts the reports on the site will stay free. "In the near future we will also introduce additional services with a subscription fee. Those services would include human written analyst reports and access to historical data for projects."
Neither are there any plans to move on to non-Java programs. Kofman says the project is focused on Java because the founders are Java developers who know this community and understand its needs and problems. "Our technology potentially allows us to measure non-Java contributors also. However, we would like to keep SourceKibitzer targeted to Java developers. It makes the community more cohesive [when you] share more common interests."
But Kofman is willing to work with developers of other programming languages to help build similar communities. "If we find interested PHP, C++, Python, or Ruby developers to support similar community for their languages, we would be glad to work with them."