Mission Statement

Our mission is to be the leading provider of cross-platform tools for configuration and project management, with a focus on enhancing productivity and quality in software development process. We offer products covering fundamental and necessary capabilities for configuration and project management. Our vision is to provide a one-stop solution for all configuration and project management needs.

What is SpectrumSCM ?

SpectrumSCM™ is a FIRST-OF-A-KIND, full-featured, platform independent Source Configuration and Management (SCM) product, which can be used to manage all of your "E-ASSETS". This tool is the most economical, full featured SCM tool around. It includes version control, process management, release management, advanced branching, issue tracking and much more, all integrated into one tool. The software products group at Spectrum develops cross-platform tools for configuration and project management, with a focus on enhancing productivity and quality in software development process.

SpectrumSCM Frequently Asked Questions
(Click here if you are looking for the Technical FAQ)

Which OS platforms does SpectrumSCM support ?

SpectrumSCM runs on any OS platform that supports the Java Runtime Environment version 1.4.2 or better, which includes all versions of Windows, Solaris, Linux and a host of others. Here's a list of most of the other Java ports.

OS  CPU  Company/Organization  Description 
AIX  IBM  Java for AIX
DG/UX 4.2  Intel  Data General Corporation  JDK for DG/UX
DIGITAL OpenVMS  Alpha  Digital Equipment Corportation  JDK for DIGITAL OpenVMS
DIGITAL Unix  Alpha  Digital Equipment Corportation  JDK for DIGITAL Unix
HP-UX  Hewlett-Packard  JDK for HP-UX
IRIX  Silicon Graphics  Java for Silicon Graphics
MacOS  Apple  MacOS Runtime for Java
NetWare  Novell  JNDI, NSI, JITand Java VM for IntranetWare.
OS/2  i386  IBM  Java for OS/2
OS/390, OS/400  IBM  Java for OS/390, OS/400
SCO  i386  SCO  JDK for SCO
UnixWare  i386  SCO  JDK for SCO
VxWorks  Wind River Systems  Java VM on VxWorks (an embedded RTOS)  
Java is slow isn't it ? What kind of performance can I expect from SpectrumSCM ?

SpectrumSCM was designed from the ground up with performance in mind. Thousands of man hours have been spent tuning every aspect of both our server and our client for both memory usage and flat out performance. Many first time users of our product are surprised at just how fast the product actually is.

Here are some of the reasons why SpectrumSCM is as fast, if not faster, than most peer CM tools written in native languages

  • Smart client/server architecture. The SpectrumSCM client uses a network "pull" model (much like a browser) instead of relying on the server to "push" information out.
  • The SpectrumSCM repository is built on top of an industrial strength ODBMS from Progress Software that also happens to be 100% Java, which guarantees our portability.
  • SpectrumSCM operates as a federation of independent databases. Each project in SpectrumSCM resides in its own independent database. This reduces database contention when multiple projects are hosted through the same server.
  • Transmission of resources between the client and server are compressed in order to reduce SpectrumSCM's network footprint.
  • SpectrumSCM uses raw sockets for communications between clients and servers.

Is SpectrumSCM a fully Integrated tool ?

Yes, SpectrumSCM is a truely integrated CM tool. Many other tool vendors claim that their tools are integrated when in reality their tools are interfaced. This means that you have to do the actual integration between their products using clunky APIs written in non-portable programming languages.

SpectrumSCM was built from the ground up with issue tracking built in. In fact, SpectrumSCM is issue tracking first and version control second, which is the complete opposite of how the vast majority of our competitors operate. Which comes first, the requirements for a new system or the source code?

All work in SpectrumSCM is done against a Change Request. Change requests represent issues that are maintained and tracked by the system. All change requests follow a user defined process life-cycle. As change requests transition from phase to phase within the life-cycle, e-mail notifications are automatically sent to the appropriate users to advise them of the progression. Releases in SpectrumSCM are created by grouping together sets of Approved change requests. By using change requests to drive the release process, there is no need to coordinate a team work stoppage in order to apply a label across the source repository. Change requests can be easily assigned to or removed from a release at any time. SpectrumSCM also knows which change requests depend on other change requests. For example, if change requests (01, 02 and 03) are used to edit the same file, then change request 03 would depend on change request (02 and 01). And change request 02 would depend on 01. SpectrumSCM guarantees that change request 03 cannot be included in a release unless change requests 02 and 01 are both completed and can also be included in the release. In the end, configuration management is all about process and communication, and that's what SpectrumSCM was designed to do. Support the process and enable better communication between developers.

Can the project life-cycle be customized for each project ?

Yes, each project in a SpectrumSCM repository can have a unique project life-cycle. Life-cycles can be custom built by an end user organization and can be applied to any number of projects. Not only that, but the change request attributes associated with each project can also be customized. Change requests support any number of attributes with either a fixed set of values, or any number of attributes that support free-form text input. On the reporting side, change request report generation, as presented to the user, is completely dynamic. Report generation screens are built on the fly using all available change request attributes.

How does SpectrumSCM support parallel stream development ?

SpectrumSCM has extensive support for multiple concurrent streams of development. SpectrumSCM's unique form of branching allows for the instantaneous creation of new code streams, known as Generics. The most notable feature of a new Generic is that it shares all of its files in common with the Generic that it was derived from. Users working on parallel generics can either choose to edit a repository resource in place (leaving the file shared between Generics), or they can choose to uncommon the resource directly into the working generic. Version history on uncommoned files remains intact and can be used to trace the file's origins all the way back to the initial load. Later, repository resources can be recommoned back into the original generic, effectively restoring the file as a shared resource. SpectrumSCM also supports classic branching scenarios and true concurrent development at the file level on the same branch. Resources can be checked out concurrently by multiple users. The tool knows when the concurrently checked out resource must be merged back into the stream or when it can simply be checked back in. Merging of resources is done through SpectrumSCM's own color-enabled diff-merge tool. For more information on the extensive branching patterns supported by SpectrumSCM, read our white paper on Advanced Branching Techniques.

Can generics be created from previous releases ?

Yes, this is another one of SpectrumSCMs strengths. Any previous release can be extended directly into a new generic and worked from that point. New releases of the old release can now be created and shipped to the customer without fear of having new work accidently show up in the patch release. Because the patch generic is created in parallel to the other development branches, any fixes that go into the patch release can automatically be applied to all shared, parallel branches.

How does SpectrumSCM support multiple development sites ?

SpectrumSCM uses very efficient network communication protocols that allow the system to maintain good performance, even over slow network links. Because of this, SpectrumSCM does not need to use multiple independent repositories, that need to be periodically synchronized, to support multiple geographically diverse development teams. SpectrumSCM also eliminates the need for network file systems, virtual file systems or any other kind of facility for exporting server resources to network clients.

In addition, with the release of version 2.1, SpectrumSCM now has a local proxy feature which further facilitates remote development teams. By caching file accesses locally, communications with a remote server can be significantly reduced.


Can SpectrumSCM repositories be accessed over the web ?

Yes, the SpectrumSCM client is a Java Applet as well as a Java Application. This allows the SpectrumSCM client to be downloaded and run from anywhere in the world without having to install the client locally. The installation disk supports the installation of the SpectrumSCM client on any web server. SpectrumSCM also comes with a very light weight HTML client that allows for change request creation and report viewing directly over the web.

What user interfaces are available for SpectrumSCM ?

Because SpectrumSCM is 100% Java, it looks and operates the same on every single platform. There is absolutely no difference in the client regardless of whether it is running on a Unix machine or a Windows machine.

How does SpectrumSCM distinguish between ASCII and binary files ?

During initial source load, SpectrumSCM can detect whether a file is ASCII or whether it has binary content. The end user has the ability to override the decision made by the tool and can add an ASCII file as binary or a binary file as ASCII, although this practice is not recommended.

Does SpectrumSCM have an external API ?

Yes, SpectrumSCM has a collection of Java interfaces and an extensive API that can be easily implemented by the end user. The purpose of the external API is to allow an organization to create a fully automated process work-flow engine. For more information on the SpectrumSCM API see our our API Concepts and Usage document.

What reports does SpectrumSCM support out-of-the-box ?

SpectrumSCM supports the following reports right out of the box.
  • Change Request report: This report displays all information about any change request, including the change request's complete life-cycle history.
  • CR Dependency Report: Given a change request, report all the other change requests that this change request depends on.
  • File History Summary Report: A summary report that displays a file's version history, including the change requests that were used to make the change and who made the change.
  • File History Detail Report: Same as the summary report except that this report display line level changes too.
  • CR By State Severity Or Date: Displays change requests based on their severity, state or date of creation.
  • User Edited Files: Display all files out for edit by a particular user.
  • Outstanding CR Report: Display all CRs that have not been completed.
  • CR User Report: Display change requests by assignee.
  • CRs By Release: Display all change requests associated with a release.
  • Files By CR By Release: Same as the CRs By Release report except that file version number information for each change request is also reported.
  • CR Assign History: Display a change requests assignment history.
  • CR Attribute Report: Display change requests by their attributes.
  • User Roles and permissions: Display users roles on particular projects.
Also, the entire SpectrumSCM meta information database for any project can be exported as XML and imported into external reporting tools.

What merge capabilites are supported ?

SpectrumSCM comes box-stock with a very powerful visual diff-merge tool. One of the most powerful features of the SpectrumSCM merge editor is that it can be used to explore and visually difference previous versions of files in the repository.

Can I use my favorite editor with SpectrumSCM ?

Absolutely, SpectrumSCM is completely configurable in this area and allows each user to set a custom editor preference. SpectrumSCM also integrates well with productivity tools like Microsoft Office and other suites. SpectrumSCM comes box-stock with a registry launcher program that is sensitive to the type of file being edited. Click on a Microsoft Word doc and the registry launcher will start Microsoft Word. The same goes for PowerPoint, Excel, Outlook, CAD systems, paint tools, etc...

Do you have a technical FAQ ?

Yes, click here for the technical FAQ.