08/11/04

Kidder, Chapter 5

pages 86 - 110

  1. At 35 years of age, Carl Alsing was one of the elders of the Eclipse group. He was graduated in electrical engineering from the University of Massachusetts.

    Earning that degree was not easy for him. For the first two years, he made mostly poor grades, although he did well in a psychology class. In his junior year, however, he took a course in digital logic. The course included a lot of Boolean algebra, which made perfect sense to Alsing. Moreover, he found fascinating the idea that you could represent any number, in binary form, in terms of merely "0's" and "1's" and, because you could represent a "0" by a low voltage and a "1" by a high voltage, you could represent numbers, and even add them, by electricity. He got an A in the course.

    Then he enrolled in a FORTRAN programming course. FORTRAN, short for FORmula TRANslation, was an early language that made it relatively easy for engineers and scientists to enter their equations into a computer for computation. A recent version of this language is still used for many engineering and scientific calculations, although the more modern C language is also used for these purposes.

  2. FORTRAN, C, C++ and Java are all high level languages. That means that they are much more algebra-like and English-like than a computer's instruction set. Indeed, FORTRAN, C, C++ and Java all use special computer programs, called compilers, to translate the programs written in these languages into instructions contained in the particular computer's instruction set. Compilers play a clever trick on the computer: they cause it to do the work of translating a high level language into the computer's own language. Before compilers, people had to learn the language of the machine before they could write programs.

    BASIC, on the other hand, is a programming language that uses a different, but in many ways similar computer program, called an interpreter, to translate BASIC programs into the instruction set for the computer. The fundamental difference between compilers and interpreters is this: interpreters process programs line by line whereas compilers process entire programs all at once. This difference means that compilers tend to produce faster, more compact, translations because they consider the program as a whole and therefore have a more complete perspective for optimization.

    The line-by-line processing by interpreters, on the other hand, offers the advantage of notifying the programmer immediately of any syntax errors discovered. A compiler, since it considers the program all at once, reports all errors at one time - not immediately, but after the entire program has been written. The delay in reporting errors produces a large accumulated list of errors that can be confusing to deal with. For example, an error early in a program can lead to errors later in the program that disappear once the early error is corrected.

    In general, compilers produce fast compact code while interpreters provide convenience at the expense of slower, less compact, code. In an effort to have the best of both approaches, many contemporary software development tools, called integrated development environments (IDEs), provide an interpreter during development of a project, for convenience, but provide a compiler, for efficiency, to build the executable files. IDEs are available for most contemporary programming languages.

  3. But back to Alsing. The FORTRAN course caused him to flunk out of school because he, and a small group of others, found that the computer (IBM, of course) was available (perhaps unintentionally) to them after about midnight, so they would spend all night programming it. The next day, he would be too tired to attend class, so he flunked out. (Programming can be practically addictive to some people. Beware of any symptoms.) Nevertheless, Alsing felt truly interested in something and for the first time in his academic career began to feel that he was not a hopeless failure.

    He stayed out of school for a year, probably on suspension. When he returned, he took electrical engineering courses and became a straight-A student.

    Such a pattern of early academic failure and latter academic success, though not common, is not that unusual. You should not necessarily become discouraged about the possibility of successfully completing the requirements for a BS degree in ECE because you do not achieve unqualified academic success at the start. If you think you might like some things about ECE, hang in there for a while. Something that fascinates you in this extremely broad field might turn up. Alsing did not find what fascinated him until his junior year.

  4. After he finished his EE degree, Alsing first went to work at DEC. He left and went to work at Data General soon after it started up (he was employee 150), partly because, from all the angry talk he heard in the hallways at DEC, Data General sounded like a very interesting place to work. At Data General, Alsing became a microcoder. In fact, he was their first microcoder and wrote essentially all of the microcode for the Eclipse.

    In computers, microcode translates the instructions in the computer's instruction set into more detailed instructions to open or close the various transistor logic gates that make up the computer hardware. In some really fast computers, the instruction set directly opens and closes the logic gates, with no intervening microcode. The increased speed without intervening microcode is achieved at the expense of flexibility. If, for example, some kind of bug becomes evident in a machine with microcode after the machine has gone to market, it may be possible to fix the problem by modifying the microcode.

    In some machines, the microcode was stored in replaceable ROM (Read Only Memory) chips so that it could be easily replaced. In Eagle, the microcode was put onto a floppy disk and was read into the machine each time the machine was booted (started). The microcode in Eagle, therefore, would be exceedingly easy to modify - just mail the users a new floppy disk to use during the booting process.

  5. Although Alsing wrote most of the early microcode at Data General, it did not go smoothly. First of all, he was late in delivering the microcode. He would find himself unable to write any microcode for weeks. Then, when it was almost too late, he would write it all in a burst. West believed, for example, that Alsing wrote all the microcode for the Eclipse in two days and nights. Unfortunately, those two days and nights occurred long after the rest of the team needed the microcode for their own work.

    Probably as a result of the anxiety caused by his procrastination, Alsing did not receive a substantial gift of stock, as many other engineers did, upon completion of the Eclipse, even though he had made a most important contribution.

    A second problem was that Alsing's microcode appeared, to anyone else, quirky and disorganized. It worked and had the advantage of requiring relatively little memory, but it was not written in a modular form that could be easily understood and modified by someone else. Alsing apparently could keep all the organizational details for the Eclipse microcode in his head.

    For the Eagle, however, Alsing's approach simply would not work. There was far too much microcode for one person to write, even if there were plenty of time (which there wasn't). But microcode written by more than one person must be highly organized and modular to permit understanding and cooperation. Alsing, therefore, would write no microcode for the Eagle. Instead, he was placed in charge of the Microkids, the group of fresh graduates who were to write the microcode for Eagle. He had been given management responsibility.

  6. Like most professions, dealing with people - not technical issues - is the most important component of engineering. If there ever was a time when engineering problems were small enough to be solved by a lone engineer, that time is long past. The interesting engineering problems require many people, including non-engineers with various backgrounds, for their solution. That situation means that engineers must learn to work successfully with many people with diverse backgrounds and interests. Note, for example, the wide differences in background and capability even in the very focused Eagle group.

    It is fairly common for engineers who have learned to work successfully with others to become managers at some point in their careers. One advantage engineers have in becoming managers is that they can apply the analytical thinking skills they developed in mathematics and technical courses to management.

    With the Eagle project, Alsing has just begun his transition from mainly technical work to management. He chose the Microkids and provided their initial training. His interest in psychology could prove helpful to him, of course, but is no guarantee of success as a manager. He taught the Microkids many things, including the important lesson about the importance of relying on staff, secretary Rosemarie Seale in particular, for information and support.

    As a manager, Alsing tried to be personally accessible to the Microkids. Indeed, Kidder says he functioned as "social director" of the group. On the other hand, he isolated himself from the technical work of the group. He left technical supervision to a couple of lieutenants.

    His approach led to some problems. Perhaps because of his technical isolation, some of the Microkids felt that the weekly micromeetings were pointless. Possibly, his lack of technical involvement led to a loss of professional credibility with them. West felt that Alsing was too close to the people that worked for him.

    Alsing's lieutenants complained that he sometimes by-passed them and told the Microkids to do something different than what the lieutenants had already agreed to in earlier discussions. Such by-passing is a definite "no-no" in management because it leads to confusion and tension. In Alsings case, it was even more problematic because he was out of touch with the details of what was going on. In fact, the detailed, close-up, knowledge of the situation of the immediate supervisor, as opposed to the supervisor's supervisor, is a major argument against by-passing levels of management.

    Alsing, on the other hand, felt that West was too distant from the people who worked for him. Probably both were right. Both still had important things to learn about management.

  7. According an article entitled O, Engineers! in the December, 2000, issue of Wired, Alsing recently signed on with MagnaWare, an OCR startup in Santa Cruz, California.