J. R. (Roger) Tessier
Retired Software Project Manager, Consultant and Developer
Act I: IBM Canada
In 1967 (Canada's Centennial year) I finished school, got married, and joined IBM as a very green "Systems Engineer"
in a medium sized sales branch in Kitchener-Waterloo, Ontario. I spent a wild 5 years "in the field", as IBM
underwent phenomenal growth and computer technology was establishing its place in the corporate world.
All my experience with computers in university had been bad, but IBM overcame my reluctance to ever touch a
keypunch again by offering me a huge bag of money--$585 a month. To start! Done deal.
I got off to a good start in Kitchener, but in the last couple of years I got in way over my head and was ready to quit.
But then I got moved to Toronto, as an Instructor in an IBM Education Centre, where I spent 5 very productive and enjoyable years, learned a ton of stuff, and built a bit of a reputation as a hotshot. After that, I spent a couple of years in the Toronto Field Support Centre, where all the hotshots lived, and eventually got myself invited to join the IBM Software Lab in Toronto. At first the work there was more of the same, but in a couple of years I got swept up in my first serious software development project, as team leader. The work we did over the next couple of years may have been the best stuff I've ever done.
I walked into the IBM Kitchener office early one July morning, and it seemed pretty clear that no
one was expecting me, or the other couple of guys who arrived around the same time. But they found
places for us to sit, passed out stacks of IBM reference manuals, and we all spent a rather odd day
flipping through them. I expect the others understood little more than I did.
All I remember about the days that followed was that one salesman, whose sales territory included the local bank branches, told me he was trying to sell some kind of cheque-handling unit record devices, but did not have a good understanding of what machines the banks were currently using, or what they liked / disliked about them. I don't know what he expected me to do, but I walked up and down King St, went into every bank, and asked a bunch of questions about their cheque-proofing [?] machines. At least one of the people I talked to called the IBM branch to verify my credentials, which made me feel very grown-up and business-like. I took detailed notes and presented them to the salesman a couple of days later. He seemed quite stunned. I wonder if that was helpful at all. Unlikely, but I tried.
After a couple of weeks, I went off to Toronto for a 6-week employee orientation: "BST"--Basic Systems Training. There were about 20 people in my "class", and IBM put us up at the Muir Park hotel at Bayview and Eglinton. A few of the people had cars, and we'd drive downtown to the Royal Trust Tower (I think) where the IBM Education Centre was.
BST topics were taught by a team of instructors, but the lead guy was Bob Delaney, and I remember being very impressed by how easily he seemed to do what looked to me to be a damn difficult job.
They taught us computer concepts (e.g., binary notation, EBCDIC coding) how to program (in Assembler, RPG and PL/I), how to draw flowcharts (I still have flowcharting templates kicking around, but I haven't seen any of the huge flowchart paper we used, with regularly spaced rectangles arranged for a neat diagram), some stuff about the IBM product line (unit record equipment, the second generation workhorses like the 1401, and the relatively new /360 line).
There was also a fair amount of indoctrination in the IBM way of doing things, but it was pretty easy to take (at 22) because it made us all out to be an elite group who would generally know a lot more about our customers' business than they would. I looked forward for a long to the day that would happen for me, but it never did.
They also drilled into us a code of behaviour that was rooted in the consent decree IBM had signed in 1956, prohibiting us from disparaging the competition or "unhooking" their orders. But there was no need to fear the competition: Their products were clearly inferior to ours. As I recall, I had no trouble buying that. The consent decree was on the books till 1996.
As I recall, there were only two groups held in lower regard than competitors like Honeywell and Univac--leasors and 3rd party consultants. One intent and result of the consent decree was to allow someone to purchase any piece of IBM equipment and then lease it to a company that would otherwise have leased it from IBM. This was bad for a couple of reasons: (1) The customer was paying the leasor instead of IBM and (2) IBM had to treat the "customer" just as well as someone who was actually paying us. It was dirty pool. And consultants! Don't get me started. They were like Systems Engineers, but they didn't work for IBM! Customers would actually pay them to do programming and for their advice, both of which should always come from IBM, in the natural order of things. But that's how it was, and they told us all about it.
When BST ended, I spent about a week in the Kitchener office, before getting married and taking a week off. Then Rosemary went to work in the library at the University of Waterloo, and I started carrying a briefcase. 1967 was a big year for us.
1967-1968: A complete life insurance package in 16KB--programmed in Assembler
My first real assignment at IBM was as a programmer and junior IBM SE at
Canadian Order of Foresters (COF),
a small fraternal insurance company in Brantford. Richard (Dick) Haeberlin was the senior SE on the account,
and he became my first technical mentor. I could have done a lot worse--Dick seemed to know
everything there was to know about programming, and especially /360 Assembler language. COF was small
potatoes to him; he was also the main SE at Dominion Life, a much larger customer.
The first day I was there, Dick introduced me to Shirley Lawrence, the COF person to whom the whole project reported. Looking back, it must have been unusual for a woman to fill that role, but I don't think that occurred to me at the rime, and Shirley was well respected by everyone on the project.
Anyway, Shirley immediately sent me to speak to John Gribben, SDL's lead developer. She said he would bring me up to speed, and, oh, he had a few technical questions for me (the IBM expert).
John was from Scotland, and he had quite a strong accent. He started talking, I listened intently, and understood maybe every third word. I knew I was green, and had never dealt with a real customer before, and I knew better than anyone how little of an expert I was, but, even so, I was dismayed at how bad I was at this!
Then I glanced back at Shirley and the rest of the team and saw that they were all laughing uncontrollably, while trying to stay quiet. Apparently this was a standard initiation rite, sending the new guy to talk to JG. Once I caught on, John's speech became much easier to follow, and in time we got to be good friends. But (obviously) I never forgot that.
COF had a Model 20, the smallest of the 360s. The Model 20 was quite common in the Kitchener area, but this particular machine was unusual, in that it had 4 tape drives in addition to the standard card reader, card punch and printer. At that time, no Model 20 customers in the Kitchener area had disks in their configuration. Guelph Hydro was the first to get them, and, actually, they weren't called "disks", but Direct Access Storage Devices--DASD--at least within IBM.
The operating system (such as it was) was named TPS (Tape Programming System). I am probably one of the last people to remember it. I know I was one of a very few to use it.
The COF account was also unusual because it had been infiltrated by a dreaded consultant--a company called SDL (I forget what that stood for). The consultants were being paid to design and program a "Policy Master System" for COF. The idea was that COF would keep all of its policy files on a "master" tape, and every day all of the new application, premium payments, claims, changes of address, and other standard insurance policy events would be keypunched as they arrived in the mail, and loaded onto a "transaction" tape. Every night, a large batch process would be run to sort the transaction tape into sequence by policy number and transaction type. A hugely complicated program would then apply the transactions to the records on the latest policy master tape, and create a new master tape, reflecting all the events of the day.
At the time we figured this was quite reasonable on a machine that allowed no multiprogramming, had 16K bytes of memory. and generally limited the programmers to overnight compile/test cycles. Programs were hand-written onto coding sheets and passed to a team of keypunchers. We submitted our decks at the end of the day, and came in the next morning to see the results. Way too frequently the only result was a one or two page listing that pointed out an error in our Job Control cards, or a syntax error in the code. If the program DID compile and execute, the most likely result was a 3-inch-thick core dump listing produced when the program crashed.
The core dump was just about the only debugging tool available, unless you could convince management that your test was so important you should be allowed dedicated, hands-on access to the complete machine. In that case, you could stand at the console, set a break point, or step the program through the code, one instruction at a time. I should point out that the console wasn't a keyboard and typewriter--it was 6 hex-valued rotary knobs on the front of the machine, a couple of hex-valued switches, and 4 small light displays that each showed a single hexadecimal digit. There was enough room on the top of the machine to put your program listing, so you could follow it along.
To set a breakpoint, you used the knobs and switches to replace the instruction of interest with a "STOP" instruction. Of course, you had to know the exact memory location of each instruction. When the stop happened, you restored the original instruction into core and took the next step. Whenever the machine stopped, you could also use the control panel to check the contents of any memory location (1 byte at a time).
I worked at COF for about a year, and got quite good at /360 Assembler (at least the half-assed Model 20 subset), debugging other people's programs, and figuring out the idiosyncrasies of the Model 20 hardware, the O/S and utilities.
I also learned how to work as part of a team, how to deal with customers, a little about system software, and a bit about the insurance industry. Not a bad start.
I don't remember what state the application was in when I left COF, but I remember 2 things: (1) it wasn't finished, by a long shot and (2) I had to leave because IBM started charging for the services of its Systems Engineers, and COF didn't want to pay for my time. Actually, I think it was more that IBM couldn't see sticking a good potential sales-support guy into a services engagement at an hourly rate. Selling hardware was much more profitable, and that's what I should be focused on, along with everyone else.
Like so much else going on at that time, the decision to charge for services was driven by the consent decree; it seems consultant organizations felt it was unfair for IBM to provide services for free in order to subsidize hardware sales. So back to the office I went, looking for another assignment.
1968-1970: Model 20 RPG Guru
As a Systems Engineer, I provided technical (mostly program debugging) support to a couple of dozen IBM
customers in southwestern Ontario, all of whom were using RPG on /360 Model 20 card-based systems. I
also set up a weekly evening event where these customers would meet with me over a Model 20, I'd help
them do some testing, and I'd give a bit of a tutorial on some technical subject or other.
I learned everything there was to learn about RPG and the Model 20, and a lot about customer support. This was also my first experience with anything like teaching, and I seemed to have a knack for it.
Kitchener was the largest IBM city in the Southwestern Ontario (SWO) territory, which included several other locales like Cambridge, Preston, Brantford and Stratford. The main commerce was manufacturing, but there were also quite a few small and mid-size life insurance companies headquartered there. I got involved in 2 big initiatives of the time. One was to get the smallest accounts, of which there were dozens, to move away from unit record technology (keypunches, card sorters, and plug-board calculators the name of which I seem to have forgotten) to real computers. The second imperative was to push those who had already made this move to adopt the latest IBM line--the System /360. There were a lot of accounts in SWO who were using IBM 1401's, 1410's an 1440's, and the fact was they were mostly happy with what they had. So all of us "technical types" made a lot of customer calls with salesmen, lending the authority of our deep knowledge of technology to the marketing spiel.
The most common programming language in the area was RPG (Report Program Generator), and the favoured platform was the /360 Model 20. In 1968, the only peripherals on these machines (except for the freak at COF) were a card reader, a card punch, and a printer. All applications had to be designed around these devices, with all data stored in boxes (and boxes and boxes and bins) of 80-column punched cards. Most of the applications had to do with bookkeeping, and most of the programmers working in the customer companies were accountants by training. Everyone figured that if you could figure out double-entry bookkeeping, you could probably learn a programming language, and we still didn't realize there was anything more to building systems than that.
Most of these ex-accountants had to teach themselves how to program, and all they had to work with was IBM reference manuals, which were pretty much impenetrable. So IBM tried to provide some training; some of it was available in Toronto, at the Education Centre where I attended Basic Training, and there was also a "Customer Support Centre" where you could bring your troublesome programs and get some advice from IBM experts. But this was pretty inconvenient for our SWO customers, and someone (maybe it was me) got the idea that we could set up a facility and provide some local support. So the salesmen all sent out letters to their customers saying that if they had any programming problems, they should call the expert, Roger Tessier, and he'd take care of it. I can't remember how we reconciled the price for this service ($0) with the consent decree, but somehow we convinced ourselves it was sales support rather than programming services, and away we went.
Shortly after that, I started to get calls from customers who couldn't figure out why their programs wouldn't compile, or wouldn't behave correctly when they did. The first call I got was from the Samsonite company, in Stratford. Out I went, and they showed me the RPG program listing, the partial (incorrect) report it printed, the (incorrect) card data it had spit out, and a very large core dump listing. "What's wrong?" they asked. And they looked at me, all expectant and trusting of the big IBM guru.
The only trouble was, I hadn't seen or thought of RPG since the 1-week introduction we got at BST, and I hadn't paid that much attention even then. I couldn't even ask an intelligent question. So I turned a few pages over and scowled, looked at my watch and said "Tell you what, let me take this back to the office and I'll call you tomorrow morning." Fine with them I grabbed all the materials, drove back to the office, picked up every RPG manual I could find, and went home to work it out. It took me almost all night, but I learned RPG from the manuals, pored over every line of the program listing like it was written in a foreign language, consulted my IBM dictionaries, and eventually found what looked to me like the bug. They had misunderstood some feature of the language, and coded it wrongly. I called them the next morning from the office and said casually, "Just took a look at your program--I think you used the wrong indicator on the third line of the Calc sheet. Just change that and it should be fine." Summbitch if it didn't work! I spent a lot of time at Samsonite over the next year, and driving around from customer to customer working what looked to them like magic. The fact was, I saw the same patterns so often I could generally fix in 5 minutes what the poor programmer had been struggling with for days. The customers loved me, and I got a huge ego boost.
Those were heady days--I learned how great it is to be skilled, useful, and recognized as such by a whole bunch of people.
1968: 1401 Emulation on a /360One customer, Savage Shoe, had acquired a /360 (model 30 I think), but they were still doing all their programming in 1401 Autocoder, and using an unsupported and heavily modified 1401 emulator to execute them on the 360. From the time they installed the 360, they had several times got IBM to modify the emulator program to allow things that no 1401 had ever done, and their Autocoder programs were dependent on these features.
The big move to diskI helped Guelph Hydro upgrade their 360 Model 20 by adding 2 IBM 2311 disk drives, so they could take advantage of "job streaming" using a disk-based operating system (DPS: Disk Processing System). The 2311 used removable "disk packs", each of which held 7.5 MB of data spread over several platters.
I move up to DOSAt Dominion Life (Dick Haeberlin's main account), I modified ALIS, a large IBM insurance software package, to use the newest disk technology (the 2314, a bank of 11 disks in a single cabinet, each disk holding a whopping 30MB of data). The standard ALIS package used an incredible Rube Goldberg tape/drum device, the IBM 2321 "Data Cell", because they could hold much more data that 2311 devices, but the Data Cell was pretty slow. The 2314's were much faster, and had enough data capacity to make it all work.
1970-1971: Hard knocksTo this point in my career, I had succeeded at everything I tried. In fact, I was one of 3 SE's in the office selected to attend the 1970 "SE Symposium" in Mexico City. Every year, IBM held a "100% Club" at some resort location for all salesmen who achieved their quota the year before. The SE Symposium was a smaller, less lavish, event for the top SE's in each office, as selected by management. By 1970, these events were commonly combined, and the SE's got to share in the big festivities. It was quite an event, with big production numbers and celebrity performers (although I forget who was there in 1970).
I spent 5 years in the Toronto Education Centre, which largely restored my self-confidence.
In Kitchener I had become somewhat of an expert in IBM's operating system for small and intermediate /360 mainframes, so that's primarily what I taught. IBM Canada had 2 regional Ed. Centres (Ottawa and Toronto), but Toronto was the big one, and I quickly got to be "the" expert (except for one guy in Ottawa, Howard Smith, who gave me a run for my money). The Education Centres provided training for both IBM and customer personnel, and we would receive advance documentation and training on the latest technology as it was being developed, which I enjoyed immensely, and which allowed me to stay out on the edge of things.
I wound up defining and largely developing huge chunks of the IBM Canada curriculum for DOS, and then DOS/VS, which introduced "virtual memory" to IBM's smaller systems. And one memorable year I was sent to Mexico to help IBM in that country work out their own training strategies. Great fun.
At one point I was the lead instructor for a 6-week Basic System Training class, which I quite enjoyed. That year, IBM had decided they had more Customer Engineers (field guys--always guys--who serviced mainframe hardware and system software) than they needed, and they re-trained a bunch of them to be System Engineers. So, for an interesting few days, I gave lectures on the intricacies of /360 microcode to an audience that included several people who had actually written the stuff, which I certainly had not. They were quite kind to me.
Although I focused mainly on DOS/VS and DOS/VSE, I also wound up teaching in some other things, like a 5-day System Design and Project Management, for which I was stunningly unqualified. Fortunately, I had some good horror stories to tell (see Hard Knocks above); that and a sense of humour carried me through.
In addition to teaching, I did quite a bit of training development. I even developed a self-study course for IBM US, "Operator Control of DOS/VS", which was delivered on audio tapes. This was funded by IBM US Education, and the recordings were made in Poughkeepsie New York. I spent a week there making the tapes for a pilot, which we ran in Toronto. It went very well, but the students all complained about sibilance in the reader's voice. None of them believed it was actually voice on the tape, but it was decided that for the real product release we'd need a professional voice. So I went back down for another week while the tapes were re-recorded by a real "talent".
I think it was in this period that I learned to program in APL, and even taught a course in it. But I may have that wrong . . . maybe I picked it up in Kitchener?
For about a year I moved from the classroom to a manager's office, which was a bit unusual in those days for someone who had never been a sales rep. That's when I got to be good friends with Bill Hardacre. He ran several management-oriented courses, and he taught me a LOT about managing time and people, especially how to avoid taking an employee's problem as my own. "Don't let the monkey jump from his back to yours", he'd tell me.
But I found I missed the technical stuff, and, despite Bill's advice, I made a mistake or two that suggested to me I didn't really have a future in management, so I moved back into the technical stream. Even so, Bill's lessons stuck with me and helped me many times in the rest of my career. I miss him.
The IPO Succeeds and Moves SouthIn 1979, the IBM Toronto Lab was not very big, and it was buried in a basement corner of the Canadian headquarters building, at 1150 Eglinton Ave. The Lab had yet to find its "mission"--that is, none of the stuff developed in the Lab was considered very "strategic" to IBM. There was some optimism that the IPO concept might help with that problem, but it didn't. In a couple of years it got stolen by the Poughkeepsie or Endicott Lab (I forget which, who cares). The fact that the US labs absconded with any good ideas was just a fact of life.
Don Myles Issues a ChallengeSometime in 1978, Don Myles, a major force in IBM Canada, who headed a group called Product Line Marketing, approached the Lab with a challenge. He said that IBM was about to announce a new line of mid-range /360 machines (the 4300's) that would be much cheaper than current models of similar power and capacity. The problem for IBM was in that "cheaper" attribute.
Gary and I Search for an AnswerGary Helander and I had worked together on the DOS/VS IPO, and Lab management (Jack Dawson and Clancy Marchak) passed the challenge to us. We brainstormed for some time, but the only real insight we came up with was that, if relatively unsophisticated customers were going to be our prime target, the operating environment had to be VM/370 and CMS, rather than DOS/VS and CICS, or MVS and TSO. (Sidebar needed to clarify and expound.)
Product DevelopmentWe established a core team of about 5 people, with me as Team Leader, Gary as Chief Programmer ("Chief Programmer" was big at the time), Rob Dunn, Sue Williams and Marty Marchyshyn as developers. It was a great team.
Losing the Battle to ISPFThe original name we had for our product was Dialogs, but the lawyers told us we couldn't use that, and the best substitute we could come up with was Information Dialogues for End-User Applications (although they also told us we could not make an acronym from it). Later, the package got renamed to IXF: Interactive Extension Facilities. I think we were better at product development than product naming. We certainly weren't unique in IBM in this regard.
IBM and I part waysDespite the DPMG disappointment, I was very proud of the work we had done, and was pumped when Clancy recommended me for a promotion to Senior Development Analyst. I was bummed, however, when the Lab Director, John Leppik, said no.