It doesn’t take a catastrophic event to derail a coding project. Projects can fail when mundane aspects of a project’s life cycle, such as tracking change requests, are not managed properly. Likewise, build and release processes that rely on manual steps or a lot of developer interaction can reduce team productivity, which in turn slows down the overall project cycle.
Telelogic Synergy Suite consists of two major components — Change Synergy (Version 4.3) and CM Synergy (Version 6.3) — that neatly automate change requests and configuration management, respectively.
Change Synergy keeps all project stakeholders abreast of task status and overall progress via a Web browser; CM Synergy maps developer tasks to the underlying files while providing automated check-in and check-out functionality. Because tasks are linked to specific project releases, the build process can be tightly controlled.
Synergy is very easy to set up and use. The suite can easily be the focal point for any number of project team roles (analyst, developer, build manager), and the reporting capabilities provide both high-level views of the project or release while offering individual team members reporting on their specific tasks.
As team members work on tasks, such as bug fixes or the addition of new features within a given project, CM Synergy tracks changes to all files. As tasks are completed, all related files are then automatically checked back into the repository. Having worked on teams where manual check-in activity introduced versioning problems, I found this automation quite helpful.
For Windows users, Telelogic offers easy accessibility to CM Synergy via a component called ActiveCM. I was able to quickly right-click on the ActiveCM icon in the Windows taskbar and access work areas and tasks that were assigned to me.
Underlying the Change Synergy and CM Synergy components is a database-driven repository that houses all data associated with a given project. The tests I performed using the Synergy Suite assumed a single physical location with a large project team, but Synergy can also be helpful in team environments that include multiple physical locations. For example, if part of a development team uses a CM Synergy server in London, while other members of the same team use a CM Synergy server in Houston, the two servers can replicate data down to the task level to keep everyone up to date on task status and can keep files in sync.
To test Telelogic Synergy, I had to execute functions for a variety of different roles. Acting as a build or release manager, I set up projects in CM Synergy for both an existing project and a new project. In addition, I configured users to correspond with the members of the team. Because CM Synergy allows teams to track project phase, I began by setting my new project (an addition to an e-commerce application) to the “requirements definition” phase.
When my projects were set up, I logged into Change Synergy acting as a user, such as a QA engineer or project manager, who might be entering change requests to address bugs or request a new feature.
The browser-based Change Synergy interface is easy to navigate: By using the icons at the top of the GUI, I was able to quickly generate several change requests. After defining the type of request (for example, defect), noting the severity, and describing the issue, I was able to assign the request to a member of the team.
Roles and Reports
For the sake of manageability, user roles can be defined such that any individual can create a change request, but only a manager can assign the task to a team member. This is likely the typical scenario in a large team, and Change Synergy’s roles match this type of team interaction very well.
Before donning my developer hat, I accessed Change Synergy’s querying and reporting functions. Initially, I generated one of the pre-built reports showing a summary of all tasks, and I could view all of the requests I had previously generated. Then, I queried for the tasks that were assigned to a single developer and was quickly able to see the tasks in queue and the status of each.
With my developer hat on, I accessed CM Synergy both directly via its icon and also via right-clicking on the ActiveCM icon in the taskbar. In both cases, I was able to set up a working area and to quickly see the tasks that I needed to complete. After I defined a working area, CM Synergy began managing all existing and newly created files in the work space.
I particularly liked the options in ActiveCM that allowed me to choose how much automation to enable. For example, I selected the option to automatically check out files to save myself time. After completing my tasks and testing the results, I selected the check-in function. CM Synergy then displayed the files that I had created or changed, together with the task to which they were tied.
After completing all of the tasks I had generated, I once again acted as a release manager by going into CM Synergy’s project view for each of my projects. With a simple right-click, I created a build of the particular release I had been completing tasks against.
Synergy’s support for the build process within the context of project releases will help teams avoid “scope creep” by clearly defining the number of changes made within a given release of a project.
Telelogic Synergy offers a good degree of automation to simplify and improve change and configuration management. For sites with limited budgets, the cost of this solution may seem significant initially. However, when the cost is balanced against the savings that are possible by better managing the development project’s life cycle, the Telelogic solution definitely merits further consideration.
To gauge the effectiveness of the Telelogic Synergy Suite, I brought an existing project that calculated late charges on customer payments into the Synergy solution. I found it very easy to set up the project and team members in CM Synergy.
Likewise, I had no trouble generating change requests in ChangeSynergy to correct bugs in the current version of the software and to request enhancements for the upcoming release. As I assigned tasks to team members, Synergy alerted them via email so they could log in and address the items that were assigned to them.
In addition, I set up a new project in Synergy to track demographic information of customers who frequently made late payments. In the case of both projects, Synergy helped me get a handle on changes that were needed, and I was able to generate reports on the project status. Upon task completion and testing, both projects underwent final build and release.