It is spring 1969. My dream learning experience just got offered to me. Universities still did not offer a software education that prepared you to work and learn in a quickly changing computer software industry. They could have if they at least taught you how to learn. I had to do it on my own from day 1. Computer Scienses Corpoation (CSC) offered me a nice raise and the dream job combined with the best "graduate school" to prepare me, better than any university could, for a successful career. I recently graduated from The University of Houston with a Bachelor of Science degree in Theoretical Math and Management Theory. I am going on 4 years learning how to make money doing what i am passionate about, making a capital investment in rare state of the art Software development for profit. Why did this happen to me, how did I get so lucky?
Sub Skill #9 - Best Learning & Productivity is When Pushed to Limits
One more fact made this learning experience so special. For a large company, 10,000 employees, CSC was placing itself back into a startup's position of survival mode. I only learned this late in the project, less than 6 months before first commercial release. Only top management knew this, but I became aware working with third party vendors who had not been paid in over 90 days. Persistent questions by me led to a reveal that CSC Operating capital had been hovering well under $100,000 for several months. We need to deliver new product! I had been willing to go 100% in on CSC based on their quality of software documentation. Was I about to become a victim of the dreaded "inside -> outside - outside -> inside syndrome, see sub skill #6. I did not consider failure an option.
Sub Skill #10 - Taking Things Outside Your Control that Makes a Huge Difference in Your Succeeding to Learn
Over the years I have realized there was a back story to my opportunity to get the dream education, better than could be offered at any university at any time in history. Sam Wiley, founder of UCC and Fletcher Jones, founder of CSC were salesmen at IBM before founding and building their own companies. Today I am deep focusing on my life and career and asking why and how? I believe that the 2 of them talked and Sam offered me up to fill some need, described below, Sam told Fletcher I had the aptitude. To Sam I was expendable as he would still have his more senior 4 fabulous amigos from Boeing. I am not 100% sure this happened but it probably did happen.
Sub Skill #11 - See a Learning Opportunity for What It Is and Use It; Do Not Try to Make It a Career Path
CSC was by far the largest and best software company in the world. It was overtaken years later by Microsoft in terms of size, but CSC retained a lead in my opinion. It was the CSC organizational structure was like a constitutional government with its freedom within laws a free market with the proper checks and balances. All 10,000 employees were divided into 3 branches - Computer Science, Management and QA. Each branch having very different career procedures and career paths. The management structure looked like any other American business. The science structure was unique. Like a University designed to teach and build state of the art software for profit. At the top were the Computer Scientists. Leadership and organization was determined something like a flock of birds flying in formation north for the summer. Leadership on a design-development project was decided by the flock. Only a few science/technology employees ever made it to the computer scientist level and once you proved yourself you held tenure until you retired, kinda like the US Congress you think.
With the hiring of me into the science side of the business, my salary was set by CSC's computer scientist promotion ladder, an opinion of my level of technology achievement on the career path to becoming a Computer Scientist/leader, by the flock of birds, and, maybe more so, on a wildcard, a special hire for a specific management purpose. Was I a spy?
The way CSC human resources looked at the normal process, computer scientists were hired by their university graduation rank plus an interview. Future promotions were based on achievements and performance on a your career path to become a computer scientist/leader, a goal few ever reached.
So I was one of the few exceptions made in the science side. I never was comfortable in this structure as I was a passionate learner of both computer software science and software development business management, both sides. My ultimate goal was to master Computer Science, Management and Quality Assurance; I wanted to be a Founder of a software company someday.
Sub Skill #12 - There is a Process and an Art to Extraordinary Powerful and Valuable Documentation
I had been a huge fan of CSC's software system documentation since I began using it when my job required it at UCC moving all of Shell Oil's software applications from IBM to Univac. I learned that the documentation was like a company within a company managed by a middle aged "Free Love 1960s Hippie". They occupied the 5th Floor of the CSC executive office building. When you got off the elevator you could smell the pot. Many used no desk and chair just preferring to sit on the floor and spread their work out in front of them. It was the era of the Beatle's John Lennon look, bell bottom jeans, big leather belt, tee-shirts, Long hair over the shoulders and sandals or barefoot. In my opinion CSC's documentation was so award winning was the documentation team was involved early as the software architecture and design started to gel and they were respected by the other 3 sides of the business for their industry recognition for supreme execution of their craft.
Such a radical corporate staff must be enabled by some one in a high position of power. Turns out Fletcher Jones, CEO, had a rather radical 1960s side. He lived in Santa Barbra and commuted in his Lear Jet to LAX less than a mile from CSC El Segundo, CA Headquarters. His office when he visited headquarters was the penthouse at the top of our building. Between meetings he would sit on a table in a lotus position, in his garb from India, barefooted and meditating in deep thought, waiting for staff to arrive for his next meeting. Once a newly hired manager walked in for a meeting, looked at Fletcher and said "Why are we allowing such radical hippies to sit in our conference room". You can imagine his embarrassment when he was told it is Fletcher Jones our Founder, Chairman and CEO, the man we came to meet with.
Sub Skill #13 - Experiment, Try New Things, Learn, Use and Pass On the Things That Work and Are Good
I never met with Fletcher. I would have loved to speak to him. He was a very complicated man who built a really great company. One morning he took off in his Lear Jet and did a nose dive into the California desert. Still working for CSC a few years after his death I happened to be driving back to LA after a vacation in Houston, Texas. In a Tucson, Arizona, I just happened to be seated for breakfast at a table next to 8 accountants and lawyers discussing Fletcher Jones's estate that included CSC. They were just doing a full post mortem, wrapping up Fletcher's Estate everything about CSC, Fletcher's life, family, ... . I hung around refilling my coffee until they left, late getting on the road to LA, 15 15th Street in Hermosa Beach (Home) and CSC El Segundo.
Like a flock of birds most CSC employees went with the flow. Fletcher would only hire a receptionist in the main lobby only if she had appeared on the centerfold of Playboy Magazine. "You need to put a good image out there", Fletcher would say. Thus I lived with the flow by wearing bell bottom jeans, leather belt, tee-shirt, shoulder length hair, sandals, beard and John Lennon round sun glasses. Oh, I also shunned the automobile and road my bike along the Beach from Hermosa to El Segundo every day. I did not get into a car for a year at one point; my car, a Fiat 124 Sport Spider, needed serious cleaning and maintenance after a year in an underground garage underneath out apartment. After trying everything, I continued to live my life according to the positive take aways from the west coast free love hippie days of the 1960s.
A number of Managers are arranged in a hierarchy reporting to the top CSTS Development Manager, Werner Schaer. The total CSTS Development Team numbered about 200+ people, of the 10,000 total CSC employees worldwide. Of the 200 there were over 80 focused software developers, programers, that were assigned to a typical 3-6 person teams to develop components of CSTS. Each team had a leader who had senior status, a mentor, to the other members of his/her team. Beyond the development teams there were quality assurance teams that tested the next release of CSTS.
The special job I was hired to do was to be part of a small 3 person team that worked for Owen Mock, CSC's first computer scientist who founded CSC with Fletcher Jones and Roy Nut. Owen's Integration team was tasked with understanding the entire architecture, design and coding rules for CSTS. Our task was to know everything and help prepare-attend all the weekly design review meetings. As development teams felt their module was finish according to design, the integration team would work with the team to integrate with the build of the next release of CSTS and perform the first test of the integrated next build, version, of CSTS before it went to QA for independent formal testing. If issues were discovered during code review or testing it was up to the integration team to isolate to problem(s) with development team(s) and schedule resolution meetings so integration could be repeated. Integration is a pre-mortem. If QA finds something wrong with a release, a post mortem must be done to reduce similar mistakes in the future.
The weekly design meeting was a tremendous opportunity to learn everything about computer software science, architecture, design, challenges, concepts, definitions, new technology and self-study resources. Each software development project must go through a design phase and coding phase that is scheduled for a series of fixed time frame reviews scheduled for a weekly meeting.
Sub Skill #14 - Keep Design Meetings Efficient and Productive for Everyone
The agenda for the weekly design meeting is an agenda of designs and development topics. A team of 3-5 Managers and scientists prepared every week the design review agenda for the following week. The agenda assigns a time and length of time for discussion of teams design/code so that every employee - scientist, manager, developer, integrator, quality assurance or documenter could schedule their attendance for the items they had a need to know about or had question(s) about and/or a point to make. Often designs were tabled and reworked and rescheduled for a future review meeting due to changes and/or consideration time expired; therefore, topics were scheduled into a rolling agenda until passed on as approved. The agenda and design materials were distributed on Monday, any corrections and additions needed were distributed on Tuesday, the frozen time for everyone to complete analysis and research occurred on Wednesday, the design meeting occurred on Thursday and post-mortem occurred on Friday. This was a brilliant process. I attended almost all design meetings. I learned a lot about software design and people.
Sub Skill #15 - Micro Skills are Necessary Even When You are Perfectly Positioned for Learning
To quickly digest the design of the most complex, millions of lines of software code, system ever built to a deep level takes a basket of micro skills. Your mind has to be capable of zooming in and out like you can with Google Earth to understand the onion layers of detail components of the system and how they interact. You need a mental map of CSTS. You must have an eye and ear for detail. It is imposable to remember all this detail so you need documentation and a note taking system with some way of finding what you want to remember. The CSC internal documentation of CSTS architecture, design, data structures and interfaces was extremely useful; i referred to it many times a day. In 1969 I used a little black composition notebook like we all used in school. notes are in chronological order; I discovered early on that somehow my mind can use date (time) as a way of finding the note I want to find. Since I have met many highly productive people who use the same chron file method. During my career I have accumulated a large stack of used black composition notebooks. Today I still occasionally use them but I use a note taking app called Mem. I am writing this post with it now. Many people use the Notion App for the same thing.
If you understand how the system should work remember "Always inspect what you expect". I often use methods of inspecting system status at telling points during operation.
The greatest learning experience of this job is the treasure trove of software architecture, design and algorithms that would serve me even today a a software computer scientist. The micro-skill is "the ability to recognize and isolate these architectures, algorithms and designs that have great reuse value". In the following subtitles I will give examples that created value for me during my career and still are not fully recognized and reused today.
Preprocess for lower level language #1
A high level system programming language like C that Unix was later written in did not exist in 1969 so CSC scientists designed and developed a "macro language" in which to simulate a high level systems programming language so software developers did not have to write all there code in 1108 machine assembler language. Thus reducing the time to code and greatly reduce errors that occur when lower level code is used. Today this higher level model/language is not used enough to simplify human interfaces on MACs and iPhones.
Parallel Processing - Multithread #2
As I said in the UCC story, the Univac 1108 has multiple CPUs and capable of a lot of multiprocess and parallel processing. If we had CSTS at UCC we could have considered doing the job of queuing the customer batch data processing in parallel on the Univac 1108. In fact the higher level meta language discussed above highly resembles Google's new GoLang that supports parallel processing. CSC had state of the art system programming support in 1969.
The B-tree Algorithm #3
The B-tree algorithm was designed at CSC well before 1969. It was used to manage disk space in the CSTS operating system which was one of the first implemented components integrated into CSTS. Rudolf Bayer is given credit for publishing in 1970 at a German University. It is possible that CSC was given the design by Bayer. The important thing is the software model/method has been reused in many valuable software solutions from storage management to relational database indices. I have found many use cases over the years.
Multiprocess Message Handling #4
Wether your application spans into the cloud, scales over multiple systems or runs on one multiprocessing system as cooperating special purpose functions, request message passing is powerful. This allows you to architecturally design your application
The Gateway Model #5
Once we have a Multiprocess Message Handling Protocol Manager we can think about a gateway. A gateway is a design model used in a situation where you need to get and give information from a growing list of devices that only support a proprietary protocol. Gateways could have been implemented as modules in CSTS, but CSC decided to implement the gateway for time sharing different user devices in a multiprocess front-end computer, the ComTen Communications Processor.