In today's networked enterprise, development managers can easily harness resources from any location. Collaborative development platforms allow developers - scattered around company locations, working from home, or with partner organizations - to contribute to projects the same way they would from a central site.
When it comes to collaborative development Tim Perdue practices what he preaches. Creator of the open source GForge collaboration platform, Perdue and his team are not centrally located and use its collaborative development environment (CDE) to orchestrate the software development process.
"My own team is scattered all over the world and we use GForge ourselves to manage our developers," Perdue says. "Tasks and defects are put into the queue and assigned to team members. They get notifications, wherever they are, and can also see a summary on their personal dashboard."
GForge aims to help manage the entire development lifecycle with tools to assist in collaboration, like message forums and mailing lists, tools to create and control access to source code management (SCM) repositories like CVS and Subversion. The CDE also automatically creates a repository and controls access to it depending on the role settings of the project.
Perdue believes the wider enterprise has already learned from the pioneering efforts of the open source community, which routinely produces software in a distributed, collaborative manner.
"They [enterprises] have engineers scattered in offices around the world, the same as we do," he says. "There just hasn't been any great tool to manage it all."
Furthermore, Perdue sees enterprise collaborative development as "really taking off".
"We keep finding out about more and more of these installations worldwide," he says. "We're finding hundreds of thousands of users just on the public sites that we know about, and we believe the vast majority of these are used behind corporate firewalls."
"Most of these get started when a sysadmin sees one on one of the hundreds of public sites that run GForge, and they install it. Once they do that, it starts to take off and get adopted."
GForge supported, role-based access controls allow for permission setting for members of projects. Entire projects, or portions of projects, may be set to private to control access.
The commercial, enterprise version of GForge includes plug-ins for Eclipse, Visual Studio, and Microsoft Project.
Lee Nackman, VP of product development for IBM's Rational business unit, says collaboration raises broader questions than just managing developers, because projects will have people doing architectural requirements and testing work.
"The whole lifecycle is distributed geographically," Nackman says. "Requirements people have to interact with business stakeholders and they may be in multiple places themselves [and] development teams may have grown as part of acquisitions. We have people in 14 different places." Nackman believes the biggest challenge with collaboration is that all teams need a high level of understanding of the business strategy and how that unfolds to the work they are doing.
Rational is working on a new CDE it recently demonstrated at EclipseCon which integrates instant messaging deeper into the IDE.
"You can share code editing screens and [it's] more useful where you have an awareness of other members of the team to have a 'virtual hall' you can shout down," Nackman says, adding that presence functionality can determine if developers are active and what they are working on. "For example, if one of your teammates is working on a defect and someone working on the project wants to be aware of that, shared RSS feeds can be used to see what the team is doing as if they were physically together."
Nackman says it is interesting to integrate collaborative technologies with IDE technologies, which are emerging.
"For example, a large car buidler has a vendor doing software development, but they don't have visibility of what the vendor is doing until it's delivered," he says. "They want visibility of what [the vendor] is doing [and] creation of virtual teams on the fly."
One of the concerns to be addressed with this inter-organizational collaboration is the security of virtual teams.
"Open source is teaching that a governance model is important in distributed software development," Nackman says. "Who can change the code and who can't has shown to work very effectively. Over time collaboration will happen. This is the direction IBM Rational is working hard on."
Nackman believes organizations need to work to understand the right levels of tradeoff between convenience and security, and there is still work to be done on what types of collaborative support will be productive for developers.