Siemens PBX Software Development
The software development group I moved into was named Dependability. The scope of Dependability software was hardware diagnostics, hardware control, system alarm handling, resource management, multi-processor data consistency and data recovery. I came into the Dependability group during a lull in development and began debugging code in several of the modules that had previously been disabled. In fact, I was debugging code in modules that I as a member of the startup team had recently disabled. After several months of this, I was assigned responsibility for the software module that performed hardware diagnostics.
Frank Overstreet (left) and development colleagues at one of countless get togethers after work in Boca Raton.
Click image to enlarge.
The hardware diagnostics software had two modes of operation; automatic and manual. In automatic mode, it ran as a scheduled background task monitoring system hardware, memory, bus, CPU, controllers and terminal devices. In manual mode, it would test hardware componets in response to command line inputs. My responsibility would be the development of automatic and manual loopback tests for a new ISDN-U basic rate telephone and ISDN-U line card in the upcoming release. The ISDN devices were part of the CorNet ISDN specification. As was typically the case, all existing comments, and documentation when available were written in German.
After enabling the software and getting it stable, I began designing the code to test the new ISDN BRI card, ISDN BRI terminal and loopback tests between the card and terminal. The main challenge was becoming familiar enough with the existing recursive software to be able to develop an overall design philosophy. When going through the recursion, I would suddenly find myself looking at a goto statement indicating a prior developer got lost in the woods. After many late nights, I became sufficiently familiar with the code that I could put together a design. This was the first "smart" terminal the company developed for Hicom which meant part of my design included a brand new interface to the call processing software. Additionally, a brand new state-event table was needed. The command handler also needed updating to support the new tests.
Design reviews were typically held in Germany so, off to Munich I went. I arrived in Munich code ready not realizing everyone else was just preparing for high level design reviews. As it turned out, my being so far ahead was a good thing because T1 alarm handling software needed attention so, another engineer and I were tasked with handling T1 blue alarm handling software (definitely blue but we may also have touched red and yellow alarm code). We finished that and after a month in Munich, I returned to Florida ready to test my code on a real system but the call processing group had a major delay so, we waited. While waiting, I debugged the code responsible for maintaining data consistency across multiple processors.
In the meantime, an announcement was made that Siemens had purchased IBM's stake in an American PBX maker named Rolm. This announcement caused quite a bit of consternation in Boca Raton because we were in an extended holding period waiting for the call processing group to get organized and back on schedule.
Along with the purchase of Rolm, a new management team came in from Germany and made a major reorganization. The focus of the reorganization was to stabilize the code base. The Dependability group in Boca Raton was moved to Munich and California. Owing to local commitments, relocation was not something I could easily do. At that point in the company, testers were of greater value than developers so, my focus shifted to testing.