Developer's Toolkit

Fostering Collaboration

.NET developers need to communicate even more to effectively foster sharing and collaboration.

Most developers today are at least aware of the architecture and features of social-networking applications, even if they've never coded apps that work with them. However, almost all of us deal with social networks in some way, and it's only natural that more of our interactions use these types of Web sites and applications.

Exchanging Code
Some of you have either contributed to or taken code from the likes of Code Project or ASP.NET. While Java is better known as a community that freely exchanges information and code, there are a growing number of sites that focus on .NET code exchange. Some, like ASP.NET, are Microsoft-sponsored, but others have grown up as independent communities.


These are social networks, in that they foster and support connectivity and, to a certain extent, collaboration among the far-flung community members. If you've been using a new technology, such as Language Integrated Query (LINQ) or Model-View-Controller (MVC), for an application, you may publish some or all of your source code for others to see, comment upon and use.

You may be especially inclined to show others your code if you're stuck on a particular part of it, to get suggestions on how to proceed. Or you may be particularly proud of an algorithm or technique, and unconsciously want to elicit compliments from others.

Conversely, you could be on the receiving end of someone else's community spirit. In many cases, developers unfamiliar with a particular technology read up a little about it, write code in a trial-and-error fashion, and if they get stuck, Google for the answer. Google will likely take you to one of the community sites, where the question may already have been answered, or where it appears likely you can ask the specific question to get your answer.

Building a Community
A step beyond participation in such networks and communities is to use coding skills to support and enhance social connectivity. There are various ways to do this, from forming and moderating your own communities to building code samples to demonstrate new technologies.

As I was researching this topic, I stumbled across an item from one of my favorite bloggers, Joel Spolsky of joelonsoftware.com. Joel is founder of Fog Creek Software, which builds a bug tracker using ASP, among other products. Joel is co-founding a new community site called stackoverflow.com. (How many times have we seen that error message?) Stackoverflow.com is a free community for developers to have discussions, post problems and solutions, and in general get information and stay informed about development topics.

There are steps you can take beyond that. One is through Telligent's Community Server, which attempts to bridge the gap by employing technologies that are familiar to IT shops. "We use the Microsoft stack, including ASP.NET, C# and SQL Server," says CEO Rob Howard, himself a former Microsoft manager.

Quote

In a similar vein, Ringside Networks recently announced the Ringside Social Application Server. This product lets organizations build social capabilities directly into Web sites while integrating with external social networks such as Facebook. It provides a way to form communities and to connect and extend existing ones.

Building software to improve collaboration is yet another route. Liquid Planner, for example, is building a project-management platform that may be more in tune with the increasingly collaborative nature of work today. Liquid Planner enables all project participants to use the software as the focal point for the project. In addition to hosting a schedule, the project site acts as a wiki for project-related goals, opinions, ideas and informal history.

.NET Developers Unite
Most of the social-networking Web sites today offer the ability to build applications that leverage features or data on the site. Community Server can be called as a Web service, according to Howard, enabling it to be used as a component in a larger app or workflow. It also has an API that can be called to extend it and take advantage of specific features. Well-visited sites, such as Facebook, also have APIs that can adapt those sites to specific purposes and communities.

It's clear that as .NET developers, we're all members of the same community. Many of us are already participating in one or more of these networks, either lifting code and asking questions, or contributing code and answers. It's time to ramp up these communities still further by bringing in software to more effectively foster sharing and collaboration.

About the Author

Peter Varhol is the executive editor, reviews of Redmond magazine and has more than 20 years of experience as a software developer, software product manager and technology writer. He has graduate degrees in computer science and mathematics, and has taught both subjects at the university level.

Reader Comments:

Add Your Comment:

Your Name:(optional)
Your Email:(optional)
Your Location:(optional)
Comment:
Please type the letters/numbers you see above