In 1986, the San Diego center of the company for which I worked was in very deep trouble with the Naval Surface Warfare Center (NSWC) at Dahlgren, VA.

It appeared that the San Diego center had contracted with NSWC to prepare it for the forthcoming installation of a system called the Standard Automated Financial System (STAFS) . STAFS was originally conceived as a financial management system to support the budget and supply processes at fourteen US Navy laboratories. NSWC was one of the laboratories that was scheduled to receive STAFS' hardware and software.

STAFS had become an extraordinarily complex system. Feature creep was rampant. The NSWC IT Manager recognized the problems inherent in installing STAFS. The NSWC Budget Director recognized the same problems. In about 1983, they contracted with the San Diego center to prepare NSWC for STAFS. (San Diego center was the contractor responsible for the development of STAFS. Unfortunately, the center had assigned Univac systems types to develop STAFS that executed in the VAX/VMS environment. I think that this was the primary reason for the failure of STAFS.)

By 1986, NSWC was seeing no progress on the project. Reams of paper specifications had been produced by a major accounting firm (I will call "MMP"). None of MMP's employees knew anything about computer systems. The project was beginning to disappoint the NSWC IT Manager. So much so that he told San Diego center that he was about to find it "technically incompetent." (For a defense contractor to be labeled technically incompetent is the kiss of death. Once so labeled, the firm will no longer be awarded contracts. The firm might as well shut down. No contracts, no money. No money, no salaries. No salaries, no employees. No employees, no company.)

Needless to say, the San Diego center management was horrified and decided to invite the NSWC IT Manager to a meeting at which they would try to get another chance to perform. I was known as a "fire fighter" and management wanted me to present a solution to the NSWC IT Manager. They also wanted me to wear a suit.

The day of the meeting arrived. I brought my one suit into the office. Ten minutes before the meeting I changed out of my usual jeans, flannel shirt, and moccasins into the suit. I joined the meeting that, from the expressions on the faces of the participants, was not going well. I introduced myself and asked the IT Manager what he had expected, what he perceived he got, and what he would accept as a reasonable solution. He and I became embroiled in a sometimes-heated technical discussion, excluding the rest of those present. He aired his problems (none of which should have happened) and his frustrations. I commiserated with him. By the end of our discussion, I had convinced him to give the center another chance. He agreed on the condition that I lead the project. Needless to say, San Diego center management agreed.

I left the meeting to change back into jeans, flannel shirt, and moccasins. I was in the men's room changing when the NSWC IT Manager walked in. When he saw me changing, he asked if I had rented the suit. At that moment, we bonded. I moved from San Diego to McLean, VA.

Upon arrival in Silver Springs, MD, where the project offices were located, I found that IT personnel had been shunted to the side and that MMP's personnel were ineffectively directing the project. The project manager and I agreed that a meeting was called for. At the meeting, after being introduced, I asked each participant to explain his job. After the questions were answered, I asked if there were any questions for the project manager or me. One of the MMP's employees asked the project manager for whom would I be working? Was it he? The project manager could hardly contain her mirth when she suggested that it was more likely that he would be working for me than vice versa.

I reorganized the team into what I believed was a more effective development team. I called the MMP manager and discussed my concerns. Two and one-half linear feet of single spaced requirements had been produced. I told the MMP manager that the documents had an uncanny resemblance to the STAFS documentation. When he started to defend the similarity, I reminded him that something once sold to the Government could not be resold to the Government. From that date onward, MMP had less and less impact on the project.

It was becoming apparent to me that STAFS was not going to become a reality. I set about convincing the IT Manager and Budget Director that was the case. The major problem, as explained by the Budget Director, was that all of the hype and push towards STAFS had made NSWC employees excited. That excitement could not be allowed to dissipate. I think at this point all the players agreed that a new system was required, one that provided a limited amount of STAFS functionality. The new system was called the Comptroller and Supply Support System (CASSS).

CASSS was to be hosted on the same Digital Equipment Corporation (DEC) platform on which STAFS would be hosted. One advantage was that all of the data that was to be transferred to STAFS was already on the STAFS host. This meant that CASSS could use DEC's Terminal Data Management System (TDMS) for forms and DEC's Database Management System (DBMS) for data storage and retrieval. The implementation language was DEC's COBOL that was also the STAFS implementation language.

Although the CASSS environment was the same as STAFS, the two systems were wholly different. Most importantly, the CASSS developers were expert VAX/VMS platform developers. Upon my request, San Diego center sent an expert DBMS architect and developer to join the team on a temporary basis.

NSWC is a research and development laboratory for surface weapons. Each project is funded by a sponsor who pays for the work through a funding document called a "sponsor order (SO)." Once an SO is received at NSWC, one or more Master Job Orders (MJOs) must be assigned to the SO. Each MJO assigns funds from one or more SOs to a specific component of NSWC. Many MJOs may exist under an SO, forming a one-to-many relationship. Additionally, an MJO may be funded by multiple SOs. Each MJO recipient must assign one or more Auxiliary Job Orders (AJO) to the MJO. Further layers of funding documents exist below the AJO but are not germane. The main point is that the data is a one to many (and sometimes a many to many) structure.

The approach that CASSS took for navigating the structure was novel and elegant. The user first enters an SO, MJO, or AJO.

CASSS Main Menu

If the user entered an SO that existed, the next form that appeared would be populated with data from that SO in edit mode. If the SO did not exist, and if the role of the user allowed, a blank SO form would be presented in creation mode. If the user entered an existing MJO, the SO field is filled in and the next form that appeared would be populated with the MJO data in edit mode. For a non-existent MJO, the parent SO would be required, and then a blank MJO form would be presented in creation mode for entry of the new MJO data. The same process applies to AJOs.

Once a valid SO, MJO, or AJO was entered, the user could navigate the data structure as depicted in the following diagram.

CASSS Navigation

The dark arrows represent the arrow keys on the keyboard. The user could move up or down, left or right by simply pressing the appropriate arrow key. The down-arrow key was limited in that it would only move the user to the "left-most" subordinate document.

CASSS taught me an important lesson. If forms are being automated, the monitor display must look like the form it replaces. Although the CASSS design was a significant improvement over that of STAFS, we implemented a form that the users did not recognize. At the first users' group meeting, the automated form was met with significant dissatisfaction. Licking our wounds, the team reimplemented the form exactly as the users were used to. At the next users' meeting, the form was unanimously approved. The users also indicated an immediate willingness to use the new system.

Upon completion of the project, NSWC offered CASSS (at a cost) to the other thirteen laboratories to replace the now cancelled STAFS.