Issue No. 05 - September/October (2006 vol. 23)
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/MS.2006.130
CodePlex: Microsoft's Latest Entry into Code Sharing
With the July launch of its CodePlex Web site ( www.codeplex.com), Microsoft has significantly increased its participation in the code-sharing world. CodePlex is an environment for developers to create, host, and manage projects throughout the development cycle. It's written in C# using .NET 2.0 technology with Visual Studio Team Foundation Server on the back end. CodePlex lets developers share and communicate about source code in Microsoft's most open environment yet. "The goal of CodePlex is to make it easier for people to do community projects on the Microsoft platform or on other platforms if they choose to," says Jonathan Rosenberg, Microsoft's director of community source programs.
Evolution at work
One way in which Microsoft has previously delved into the open source space is with its Shared Source programs ( www.microsoft.com/ resources/sharedsource/default.mspx). "The Shared Source initiative was sort of a private club: send in your application, we'll vote on you, and if you are elected, we'll let you peek at the code idea of sharing five years ago," says Michael Gould, a Forrester Research analyst. CodePlex, as the current evolution of Microsoft code-sharing strategy, lets users download code, use it, incorporate it in products, and make derivative works with it.
Microsoft's idea of community is also evolving. "When you talk about community," Gould says, "Microsoft executives describe many of the Microsoft communities that are out there, but they are one-way: Microsoft basically communicating to a collection of individuals that do have a common interest. Communities are not unidirectional like that." While Gould notes that Microsoft has taken a "baby step" in that the projects on CodePlex are not for-revenue products, he says that "sponsoring an open source community where they are actually accepting code contributions from out in the world is absolutely unique for Microsoft."
Choosing CodePlex projects
So far, more than 100 projects have utilized the site, with at least 15 of them coming directly from Microsoft. "At this point we are vetting the projects, but only as a means of throttling the volume of the site as we scale up," Rosenberg says. "We want the experience to be great, so we are managing the scale by not opening it up to everyone all at once."
The approval process has both positive and negative effects, according to Scott Cate, president of myKB.com, a company specializing in commercial ASP.NET applications. "It seems that your project has to already have some large community support before it will get accepted," Cate says. "This makes CodePlex an elite place to house your projects but might close the door for projects with the possibility of gaining ground."
Gould sees the vetting process as part of a project-guiding method. "If you look at the approach that the Apache Software Foundation takes, there's a mentoring process that goes on with new projects to organize, create working hypotheses, and establish rules of engagement amongst all the different members," he says. "Microsoft is trying to be in between the SourceForge model, where it's everyone for themselves, and the Apache model, where there is guidance and support to ensure the success of a given community."
Rosenberg says that when Microsoft is confident that CodePlex is scaling to meet expectations in the next six to 12 months, "we will open up project creation to the general public, and it will no longer have the vetting process."
Comparisons to GotDotNet and SourceForge
Another way in which Microsoft previously entered the code-sharing world is with the GotDotNet workspaces ( www.gotdotnet.com). Michael Ruminer, principal consultant at Magenic Technologies, sees CodePlex as a "natural progression from and a strong improvement to GotDotNet." Gould welcomes the improvement; he thinks GDN "has just grown out of control. It's very hard to find stuff, it's not particularly well organized, and it's not exactly the most user-friendly site."
Rosenberg says the primary difference between CodePlex and GDN is that GDN has fairly limited source control functionality. "Once a file is checked out, then GDN is pretty much blocked and no one else can check it out. With CodePlex we provide modern robust source control functionality based on Visual Studio Team Foundation Server."
Cate says GDN, built as a "file-sharing system with a great community spin and a little bit of source control that was not as stable as it should have been," was good for its time, but GDN users' needs have outgrown its capabilities. On the other hand, Cate says that CodePlex "is built on top of proven technologies that are meant to scale and handle many authors. CodePlex has great source code control with new features like code shelving, coverage, and tests."
Rosenberg says that technically, CodePlex and SourceForge are built on very different platforms, and that on the policy side, "the primary difference is CodePlex allows the owner of a project to use whatever license they choose, whatever they decide suits their customers, their business."
Gould says that comparing CodePlex to SourceForge is "hard because SourceForge is very mature, with over a hundred thousand projects and a tremendous volume of traffic, so it's going to be more subject to potential out-ages and performance issues just because of the sheer size of it. The functionality of SourceForge is obviously much richer because it has been around so much longer." Gould also notes that "CodePlex is more of a mix of open source and commercially friendly styles of licenses."
CodePlex functionality includes source control, issue tracking, wiki-styled discussion forums, and RSS feeds in and out of each project. Cate is using CodePlex to work on the Atlas Control Toolkit ( www.codeplex.com/ Wiki/View.aspx?ProjectName=Atlas-ControlToolkit), a joint project between the community and Microsoft that hopes to build a better, stronger set of control extenders for the Atlas framework. Cate loves CodePlex; he says it's "the best thing that Microsoft has done to enable me to contribute to open and shared source projects. The Visual Studio plug-in for CodePlex is free and very easy to use—my account was set up, Team System installed, and my system was integrated with CodePlex and ready to go in a matter of 15 minutes."
Ruminer is using CodePlex to work on a Visual Version tree browser ( www.codeplex.com/ Wiki/View.aspx?ProjectName=TFSVTreeBrowse) for the source code control system. The browser provides a visual look at the processes and the variation that the file has gone through—where it has branched and merged, what it branched from and merged with, and when.
Ruminer explains that "the Visual Studio Team said they realized they need the browser but it was not slated to be in the next major release of Visual Studio, so I kicked off this project to fill the gap in the meantime." He has been extremely pleased with the CodePlex site, particularly the wikis, which he found to be a fantastic method for collaboration. "It's shifted some of my own development mentality. I'm implementing it in projects that I run with clients now." Ruminer is a big proponent of Team Foundation Server, and its inclusion in CodePlex on the back end is a huge draw for him. "I use it day in and day out—I do a large amount of my consulting around it. Utilizing TFS is just such a tremendous benefit and move forward. It plugs straight into your development environment."
However, as Ruminer notes, "there's always room for improvement. I've placed a number of tasks into the task section in CodePlex. You can simply log your own requests of what you would like to see right into the CodePlex project. The CodePlex development and management team are continually taking those into account and updating them." Ruminer says that as a result of such developer input, project coordinators have more control over their project. "I've gotten elevated security privileges that help me create additional roles and increase the granularity of roles within the project," says Ruminer. He's happy as well to see expanded wiki tag support in response to user input. He says of his CodePlex experience, "I'm very impressed with it and think it's just a great tool for Microsoft to expand collaborative development and embrace that process."
Rosenberg says the developer community will determine what features to add in the future. "CodePlex will be an iterative process where we take ideas in from the people who are using it, iterate on those very quickly and in small increments to see what's working and what's not, and respond accordingly." Cate would like to see the number of projects on CodePlex increase. Ruminer also hopes for growth but is concerned about culling dead projects effectively.
Gould says CodePlex's evolution will bear close watching to determine if Microsoft is serious about participating in the open source world. "If CodePlex stays where it is for a period of time, you'll know that it probably was just a short-term fix to more of a PR problem and not a serious commitment to open source development," he says. "On the other hand, if they crank out new features and functionality and improve performance, then people will take it seriously."
New Funding for Open Source Development
The open source revolution gained ground this spring when one of its leaders announced fellowships for developers willing to tackle those neglected gaps that are keeping open source programs from wider adoption.
Open Source Development Labs, supported by information technology vendors such as IBM, has been providing access to equipment, testing, and analysis for projects deemed worthy of its goal of improving Linux and other open source projects. Now it will also offer cash.
In a position to help
The nonprofit remains mum on details, but projects targeted for funding might include those needing a specific developer's expertise or needing extra equipment to finish a project more quickly.
General Counsel Diane Peters said the money will come partly from OSDL's industry partners. Contributors may suggest projects, but those suggestions aren't binding, she said. "Many of the larger companies are uniquely positioned to see where customers' pain points are and which projects may be most useful," she said.
Ideally, the fellowships will strengthen OSDL's connections in the development community beyond its current sponsorship of open source stars such as Linus Torvalds and Andrew Morton. That's the goal of the group's new nine-member technical advisory board, which suggested the fellowships.
The group's considerable clout in the open source community puts it in a good position to identify the difficult or uninteresting yet important issues that would normally be cleaned up in a corporate setting but that might be neglected in the standard open source development setting. "OSDL has the technical expertise and is in a position to collect the money it needs to get the job done and precisely direct that money to places where it will do a lot of good," said Bart Massey, an associate professor of computer science at Portland State University.
What impact will fellowships have?
Christof Ebert, director R&D at Alcatel, credited OSDL with accelerating open source software evolution and helping shape industry OSS platforms. Ebert, who helped shape Alcatel's OSS usage and processes, feels that without OSDL's assistance, such platforms would otherwise have been developed ad hoc, thereby creating incompatibilities.
"The most recent evolution is to support developers directly," Ebert said. The OSDL fellowships are one example of such direct support. Still, the fellowships' impact will most likely be symbolic, he predicted. "The question is about scaling and impact," he said. "Since OSDL is funded by industry, they will accept only so much expense for such fellowships."
Peters said she expects the fund's size to be meaningful, on the basis of donor inquiries and commitments to date. She also said she expects it will grow over time as projects are completed and the open source community and industry see the value it provides.
Ebert agreed that the market will decide how much money goes to "fuzzy" funding schemes, such as fellowships, versus more precise funding, such as paying an OSS independent software vendor to complete a dedicated component or modify a platform.
The fund also could enable lesser-known developers to rise to the fore, said Massey, who teaches a course in open source development. "A surprisingly small number of developers do a surprisingly large amount of development on the open source code," he said. "It makes the barriers to entry a lot higher." Fellowships and stipends can change that, he said.
"What you want is there to be a natural progression from beginning developer to the highest skill levels," Massey said. "It's hard to do that when you don't get any kind of financial support until you make those highest levels."
Applications and accepted projects will be posted on OSDL's Web site ( www.osdl.org) as they arrive, Peters said. To apply for a fellowship or donate funds, contact email@example.com.