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.

What's New In SpectrumSCM 2.1 ?

  • Local Proxy - The SpectrumSCM Proxy provides enhanced performance for distributed development teams in bandwidth constrained network topologies. The proxy acts as a bridge between the SpectrumSCM client and server, it builds a cache for frequently checked out revisions of the e-Assets that are under source control. Files checked out by a client are used to serve similar requests from other clients, thus improving overall response time for check-outs and extracts. The proxy not only provides a better user experience for remote teams but also reduces the network traffic across the WAN and the load on the remote SpectrumSCM server. Load sharing can be achieved by using multiple proxies for different projects in SpectrumSCM. As opposed to multi-repository solutions for distributed development, the proxy uses a single repository model and thus removes the administrative overheads involved with maintenance and synchronization of multiple repositories. Also, the single repository architecture provides for a more reliable mechanism for version control activities while allowing the user to take full advantage of the integrated change management, process management and other advanced features in SpectrumSCM. The proxy updates its cache transparently as and when users check-out and check-in files and thus does not depend on the server to "push" updated information into its cache. In keeping with the platform independent paradigm in SpectrumSCM, the SpectrumSCM Proxy is truly platform portable and can be installed and run on any OS with a Java Virtual Machine. This is a significant differentiator when you consider heterogeneous development environments, compared to competing solutions that may be platform specific or much more expensive.
  • Keyword Expansion - By adding keyword text into your source files, those keywords will be auto-expanded to show information about that version of the file. Attribute keywords include: file version number, latest author, change request information, among others.
  • File Relocator - In support of agile development methodologies, a file’s association with a change request can now be dynamically relocated within the SpectrumSCM repository. This means that accidentally incorrect associations can quickly and easily be corrected.
  • Extended support for multi-file operations - As a further enhancement to productivity, users can now in one SpectrumSCM command-line operation, check-in or out any number of files, from a few to hundreds. Previously, multi-file operations were only available through the GUI or scripting.
  • Predetermine file dependencies - So that a user does not inadvertently become dependant on file changes intended for a later release.
  • Additional Enhancements include:
    -Addition of new reports to assist developers, project leads and managers.
    -Enhanced Merge capabilities
    -Improved assignment management
    -Show file status in the repository view
    -Bill-Of-Materials extract
  • And more ...
 Need a quick introduction ? Visit our tutorial. To learn more about SpectrumSCM, click here