Poor planning and miscommunication can set any software development project adrift, and missteps can be even more costly when programmers are spread throughout the country or across the globe. The success of distributed software development depends on effective Web-based tools for team collaboration and project management.
Two of the top SCM (software configuration management) applications rising to meet this challenge are VA Software's SourceForge Enterprise Fusion 4 and Merant Professional 8. Both solutions provide a shared repository of source code, related documents, and project communications; tools that allow project managers to define workflows, assign tasks, and track progress; and, in these new releases, an enhanced Web-based client designed to improve accessibility and productivity for remote workers.
Merant Professional consists of three superbly integrated applications for issue/defect tracking and task assignment, source code management, and software build processes. It offers a large number of supported platforms, clients, and IDEs, excellent security and LDAP integration, and several performance enhancements, including a new file server that uses HTTP streaming, that make it a highly scalable solution for large-scale enterprise development.
Professional 8 also implements a new file architecture that splits revision data from its descriptive meta data, resulting in faster execution of global operations, such as bulk relabelling across an entire project.
Newly re-architected, SourceForge sheds its PHP past for J2EE and now allows developers to extend its features via a Web services API. Features such as bidirectional support of Microsoft Project files help it to slip into existing routines without much effort.
Both of these SCM tools can help refine your development processes while remaining neutral to your development style. They will reap rewards through improved communication, efficiency, cost control, and software quality, whether your consultants reside in India or Indiana.
Tapping the Web
The easy-to-use Web interfaces of SourceForge and Merant will have your project teams up and running quickly. SourceForge's My Page provides a personal work environment for each user, consisting of current tasks and artifacts drawn from his or her projects. For example, during my test project, I could see the items awaiting my approval and, with a single click, view at-a-glance graphical depictions of recent activity, task status, and hot spots across all of my active projects.
Similarly, SourceForge's project-specific home page delivers current project news with rudimentary graphics of recent project activity. Although users cannot drill through to underlying data, the well-defined interface does help them become productive without extensive training.
Merant's issue tracking and task assignment application, Tracker, lacked some of the graphical niceties of SourceForge, but its Windows Explorer-like interface was welcomingly customizable -- similar to IBM Rational ClearCase Explorer. As in SourceForge, workers can see pending tasks and assignments, report their progress and method of resolution, and escalate issues through reassignment.
For project managers and team leaders, SourceForge provides at-a-glance task progress, percent completed tallies, estimated hours to completion, and colour-coded representations of project health. Tasks can be monitored by group and individually, and changes in status can trigger e-mail alerts -- a useful feature that's available throughout the application.
SourceForge also eases project setup and administrative tasks such as permissions assignment with a helpful user matrix. However, SourceForge does not allow administrators to save project settings for reuse in subsequent projects, forcing them to re-enter user roles and security settings, as well as reconfigure reports, in all future engagements. Merant does not suffer from this limitation, making it much more suitable to large IT organizations.
SourceForge's task tracking capabilities make it easy for managers to identify bottlenecks and balance workloads before projects get bogged down. But here again, Merant offers deeper functionality, with the ability to initiate, assign, and track subtasks.
Good bug and issue tracking is also necessary for project success, and both SourceForge and Merant allowed me to keep close tabs on all change requests and software defects in my project, incorporating them into the task flow with ongoing status, history, and supporting documents. SourceForge supports a very large number of text and binary file types as well.
Further, SourceForge offers nice extras such as the Collaborative Development Process framework, a set of project templates that comply with the Software Engineering Institute's Capability Maturity Model for Software (SW-CMM) -- specifically levels two and three, the design and development phases.
Source and release
Merant, which built a legacy on its PVCS product, offers stellar source control in Professional's Version Manager app. From command line and desktop, to Web and IDE clients, Version Manager will satisfy local and remote developers regardless of programming discipline.
Version Manager's clear access to revision histories and version labels, good code conflict resolution and rollback, and tight integration with Tracker for issue correlation, makes Merant a good choice in concurrent and parallel development. Security can be tightly controlled intra-code, and passed off with new permissions, for example, when moving code from development to production. I found file control and auditing seamless.
SourceForge offers CVS (Concurrent Versions System), an open source repository, as well as support for IBM Rational ClearCase VOB (Versioned Object Bases) databases. From within SourceForge, I could browse or search the code repository, review change histories, and perform colour-coded file differentiation. But while Merant provides browser-based access to source code and control features, SourceForge only covers the basics; code can only be accessed via IDE, and associating a code change to a specific task, for example, remains a manual process.
Merant's solution goes another step further by including the Build application, a completely automated application build-management system based on Catalyst Systems' Openmake. Without requiring scripting, Build uses code dependencies and rules to generate your releases with improved speed and accuracy. Although the included version only supports Windows applications, an upgrade to the Enterprise version of Build will allow you to manage releases across a greater number of platforms.
Good reporting features helped round out both of these solutions. SourceForge allowed me to easily generate data on tasks or tracker issues with stacked bar charts for easy visual consumption. I could tab over to view underlying data and drill down to see details, such as the history on an overdue task. I was also able to build queries using most any combination of data points, save the reports for reuse within the project, and share them with team mates.
However, time-based reports, such as a list of hot issues from the last ten days, required that I manually update date ranges each week before I generated the report. This is where Merant kicks reporting up to the next level by offering a wider variety of options including relational time-based reports and charts. Merant also includes a good selection of predefined queries that can be used to model trend data, build distribution reports, and reflect interdependencies among software modules and issues.
And using the included Merant Metrics application, I could automatically generate reports at regular intervals, posting them to an Intranet where project and business managers could monitor status and view performance metrics.
Room for growth
Whereas Merant Professional proved to be a smoothly integrated and polished solution, my experience with SourceForge was hampered by minor inconsistencies in the interface and limited fail-safes and alerts. For example, exiting a page before saving my work sometimes elicited an alert and sometimes produced no warning, forcing me to re-enter all of my data.
VA Software should also pay more attention to improving usability and reducing latency in SourceForge. Although some pages made good use of DHTML and scripting, other pages required multiple round trips to the server to accomplish a task that could have been performed in a single pass. I also encountered a number of buggy and missing pages, an incomplete online help facility, and an e-mail notification system that failed to send alerts. To its credit, SourceForge resolved the e-mail issue as we went to press.
Interestingly, a number of SourceForge's shortcomings -- the inability to create and save project templates, absence of mailing lists, limited permissions control, lack of support for gated project communities, and the absence of project timelines -- are features found in previous versions of SourceForge Enterprise. VA Software indicated that future releases of Enterprise Fusion would fill in these gaps and offer a clearer migration path for existing Enterprise Edition customers.
Nevertheless, SourceForge Enterprise Fusion is an effective means for smaller IT organizations to manage distributed development projects. Merant Professional, with its more extensive feature set, more granular controls, and, surprisingly, lower price, seems the clear choice for large deployments. In the end, the tool you choose to unify development in a distributed setting must be evaluated against your current processes, and both of these solutions are worth considering.