Adjust or Go Extinct: 50 Years of Conventional Wisdom and Eye-raising Anecdotes from Programming Veterans

Adjust or Go Extinct: 50 Years of Conventional Wisdom and Eye-raising Anecdotes from Programming Veterans

hen Gerald Weinberg began working in the information technology industry, he wasn’t hired as a software developer or a programmer?not because he wasn’t qualified for these positions, but because they didn’t exist yet. His first job title was “Computer” in the physics department of his college 50 years ago, an age when Weinberg explained, “the title software developer did not exist; the word software did not exist.”

When he entered the workforce in 1956, IBM bestowed its new employee the more formal-sounding title of applied science representative. In the decade to follow, Weinberg witnessed the creations of the disk drive, the operating system, and the profession that today is known as programmer. During his keynote address titled Fifty Years of Software Development?Lessons from the Ancients at the SD West 2005 conference last week in Santa Clara, Calif., he recounted all the technology transitions he endured in those years. The experience taught him a valuable lesson that he stressed to the packed auditorium: “If you don’t keep up, you’re gone.”

When Hardware and Software Weren’t Separate
Soon after starting with IBM in San Francisco, Weinberg began work on IBM’s secret project: a machine called RAMAC, the first disk drive in existence. A closet-sized contraption that “was about as tall as a person,” RAMAC used a stack of 50 disks, each 24 inches wide and coated on both sides. An automated arm retrieved the requested disk. “When it moved,” Weinberg recalled, “the whole drive would shake.”

Gerald Weinberg

The storage capacity of all this hardware? A whole 4.4MB. The cost? Only $35,000?per year. IBM didn’t sell the RAMAC, Weinberg explained, they only rented them. The business machines IBM sold then were the likes of time clocks and butcher scales. “You had to be very specially privileged to even get near a computer.”

The few companies that purchased computers in those days had their machines built by hand in IBM factories. The larger machines took months to complete as workers installed all the vacuum tubes and relays, and IBM offered executives from the purchasing companies tours of the facilities, where they could see their computers being assembled.

Because half the computer errors that occurred then were a result of faulty hardware, Weinberg had to work very closely with the hardware engineers during production to isolate the errors. “If you were a programmer, you had to know how to read the machine diagrams,” he said.

There were times when “you’d run a program and, after a couple of days of debugging, you’d find out someone borrowed the tube,” he recalled. “That was a very common thing.”

Weinberg learned a lasting principle from those experiences: be sure that you never have more than one bug at a time. When a program has more than one, it starts getting interactions. “That’s one of the general principles in computing and testing that hasn’t changed in 50 years,” he said, before griping, “People don’t seem to know that. They seem to think ‘we’ll throw a lot of crap in there and debug it.'”

Reading from the original product description, Weinberg cited IBM’s boast that the 607 was “capable of processing 14,000 computing operations per minute.”
Programming: The Early Years
The first machine Weinberg programmed on was the IBM 607, which was called the electronic calculating punch. It read data from a card and punched results in subsequent cards according to the programmer’s instructions at a rate of 100 cards a minute. It weighed just over two tons and gave off 26,000 BTUs. But it had memory?a significant evolutionary step for IBM computers. The first basic memory size was 14 decimal digits. Reading from the original product description, Weinberg cited IBM’s boast that the 607 was “capable of processing 14,000 computing operations per minute.”

Programs were stored in file cabinets as bound punch cards that were color-coded and labeled with markers. Weinberg joked that you could tell the real professional programmer’s card decks because they were wrapped with two rubber bands. “Card decks were our configuration management system.”

“We had networks in those days,” declared Weinberg, as he revealed a slide of a 50s-era airplane. The IBM system of program processing was to fly programs?big boxes of card desks?to New York (from Los Angeles, where he was then based), where they would be processed on the high-end IBM 704 and flown back. IBM had no 704s on the West coast at that time.

A San Francisco oil company, which couldn’t accept the coast-to-coast turnaround time, requested an IBM machine of its own (at a cost of roughly $20 million) to run an application that blended oil from its distillation towers everyday. According to Weinberg, performing the blending optimally based on that day’s oil prices was worth about $1 million a day to the company. Weinberg wrote the program for them, because?like nearly all large companies at that time?it didn’t have a programming staff. “When you bought a machine from IBM,” he explained, “you got me with it?free.”

Buying a machine wasn’t a simple proposition, however. “You had to justify to IBM that you were a worthy user,” said Weinberg. “Sure enough, they turned down this order because the [blending] calculation only took less than an hour a day. I found a problem with the program, and by the time I fixed it, it was taking eight hours a day.”

Author’s Note: For more anecdotes from programming veterans about the early days of development, see our sidebar, “Looking Back on ‘Old School’ Programming.”

Writing Code for Money: The Rise of the Programmer
The oil company experience confirmed the value of programming to Weinberg and his colleagues, and they convinced IBM to form a service bureau corporation to offer software services, even though IBM didn’t want to. “We got a group of professional programmers together in Los Angeles, and we were going to write code for money.”

These were the beginnings of IBM Global Services, which today accounts for the majority of IBM’s revenues and employs some 180,000 professionals (as of 2003). Back then, Weinberg was one of only 12 in the group. “We sold our first big job to Motorola. We did a little pilot for them, a prototype program, and then [they agreed to pay us] $600,000 to write this simulation program.”

But once again, IBM rejected the offer. Weinberg recalled their objection: ‘we don’t want to be in that business. We sell business machines.’ IBM broke up the group, retained only Weinberg and one other programmer, and asked the duo whether they could place the others. Weinberg’s colleague asked the time, to which an IBM executive answered 11 o’clock. ‘I’m not sure I can place them all before lunch,’ replied the programmer. “The demand for programmers was building up, but IBM did not appreciate this,” recalled Weinberg. “They just wanted to get rid of us.”

By 1961 the network of IBM programmers had grown to the point where IBM hosted a conference for them in New England. The theme, according to Weinberg, was how to get programming under control. The conference drew 500 people.

“…I’m still hanging in there, trying to outlast Fortran.”
Operating Systems and Fortran
IBM’s facility in New York City was the hub of software development for the company because it held the (at the time) powerful IBM 704 machine. Because the facility could accommodate only one development team at a time, they were forced to share. Each team was allotted 15 minutes to load their tapes in the tape drives and get the machine started, while the next team waited their turn. As most of a team’s time was spent setting up, Weinberg’s West coast team was building the first operating system, which would optimize this process. At the same time, the East coast team was building Fortran.

“We would wait for the Fortran team to finish and then try to find places in their compiled code that weren’t optimized,” Weinberg recalled. “‘This will not last,’ was my prediction 50 years ago. I’m still hanging in there, trying to outlast Fortran.”

If You Don’t Keep Up, You’re Gone
The developers who listened to Weinberg’s presentation will never have to program with punch cards or send a program to a remote location via airplane, but they all will face transitions in the industry?transitions that Weinberg believes they must adjust to if they plan to survive in their field.

He has witnessed more than most in his 50 years in IT. None of the four programmers with whom he was hired in 1956 was still in the software business a decade later. They all were victims of change. “Some people dropped out when online programming came in, some dropped out when operating systems came in, when configuration management came in, when some other languages came in, when new tools came in, when we started reviewing code, when machines got so fast we didn’t need to optimize every single program, and eventually what we had was me.”

“I hope that you understand in your career that this is going to happen to you,” he warned. “If you don’t keep up, you’re gone.”

Author’s Note: For more anecdotes from programming veterans about the early days of development, see our sidebar, “Looking Back on ‘Old School’ Programming.”
See also  5 Ways to Improve Customer Experience

About Our Editorial Process

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.

About Our Journalist