A reader discovered my article from 2018, “It’s a Wonderful Career,” where I said this about software testing jobs: “Get out!” and “Don’t transition to doing test automation.” He asked if I still feel that way now, and the answer is “yes.” Here’s an update on my thoughts.
I’ve been a programmer for most of my life, but a majority of my career has been clustered around software testing. That shifted in 2017 when I took a job as a developer. Since then I’ve flirted with software quality in a 6-month role coaching some test automation folks who were building their programming skills, but otherwise I’ve stayed on the developer track. In my developer roles, I have worked with production code as well as a wide variety of automated tests, plus documentation and release pipeline automation. There have been no testing specialists involved at all.
In my post “Reflections on Boris Beizer” I briefly mentioned how testing as a specialty role has waxed and waned. It was perhaps the 1980s when software the testing specialist became a common role that was distinct from software developers. Fast forward to 2011 when Alberto Savoia gave his famous “Test is Dead” keynote.
I first wrote about the possible decline of the testing role in 2016 in “The black box tester role may be fading away.” I suggested that testing might be turning into low-pay manual piecework (think, Amazon Mechanical Turk), but I don’t see any evidence now that that’s coming true. I mentioned the outsourcing company Rainforest QA. A company by the same name now offers no-code AI-driven test automation instead.
I followed up in “What, us a good example?” where I wrote about companies that aren’t evolving their roles, and yet they’re surviving, but they’re going to have to survive without me. My expectations have evolved.
I know that many people are still gainfully employed as testing and test automation specialists. I can’t fault them for doing what works for them. And I’ll admit that it’s still tempting to go to my comfort zone again and go back to focusing on testing. Maybe I can shed some light on why I’m resisting that temptation. It’s pretty simple, really.
As a developer, my salary has grown tremendously. There are multiple factors involved here, including moving to a different company a few years ago. But the organization I’m working in has no testing specialists, so this opportunity wouldn’t have been available to me if I were applying for a job as a tester. I have a sense there are many more jobs open for developers than for testers out there, especially with a salary that I would accept now, and I’m curious if anyone has any numbers to back that up.
I don’t have any issues with people not respecting my contribution to the product. I don’t have to justify myself as overhead – I have a direct impact on a product that’s making money. And I still do all aspects of testing in addition to developing, maintaining, and releasing products.
In “The Resurrection of Software Testing,” James Whittaker recently described the decline of the testing role as being even more precipitous than I thought. And he also says that it needs to make a comeback now because AI needs testing specialists. He’s organizing meet-ups near Seattle to plot a way forward. I don’t have an opinion on whether AI is going to lead to a resurgence in testing jobs. Instead I’m focusing on an upcoming conference where I’m going to hone my development skills.
And that’s really where I stand on a lot of discussions about testing jobs – no opinion, really. I don’t benefit by convincing testing specialists to change their career path, but I’m happy to share my story if it helps anyone navigate their own career.
One thing I do ponder–there are still so many organizations out there that employ testing specialists, and I might end up working as a developer for one of them some day. How strange that would be if it comes to pass.
[credit for feature image: screen shot from the video of Alberto Savoia’s “Test is Dead” presentation at the 2011 Google Test Automation Conference]
In this installment of “Jerry’s Story,” we’ll get some background on the first IBM machine that Jerry Weinberg learned how to operate, even if it still wasn’t the first computer he programmed. See the home page for Jerry’s Story for the other installments.
In Jerry Weinberg’s first week working at IBM in June 1956, he learned how to use a data processing machine, the IBM Type 607 Electronic Calculating Punch. This type of machine is also called a tabulator, unit record equipment, or an electric accounting machine. But what you’re not likely to hear it called is a computer. Permit me, if you will, to explore the roots of this machine.
In the 1880s, Herman Hollerith built the first punch card tabulator. He established a company that would evolve into the International Business Machines Corporation, along with a few other companies that manufactured business machines like time clocks and computing scales. As we follow the evolution of tabulators, we’ll focus on IBM’s innovations, though IBM did have competitors producing tabulators of their own.
The core feature of the first tabulator was essentially one thing: counting. Like a hand-held tally counter, it could add 1 to a count repeatedly. It had forty counters that could each count up to 9,999. The machine could be wired to recognize a certain spot in a punched card and increment one of the counters when a card was presented that had a hole in that spot. When a batch of cards was done, the operator would read the values from the relevant counters and write them down by hand.
Many of the basic components of the first tabulator weren’t new – punch cards had been used for automated looms, and in a similar way, paper tape was used for automated musical instruments like player pianos. Mechanical counters had been used in many different forms, though it’s possible that Hollerith’s design was unique. Cash registers already had printers. We already had mechanical calculators. The innovation was being able to handle a large number of tabulations (and later, more complex calculations) much more quickly than ever before.
In 1886, the first tabulator was put to use in the Baltimore Department of Health. The components were electro-mechanical. A manually operated card reader was built-in. The cards were prepared using a keyboard-based punch. Next to the tabulator was a sorter, where a lid over one of the bins would automatically pop open so the operator could manually place a card in the correct bin.
Customer needs called for improved capabilities, and in 1889, The Hollerith Integrating Tabulator was able to add two numbers as well as tabulate. Subtraction didn’t become a feature until 1928. Multiplication followed quickly in 1931, first on the IBM 601 Multiplying Punch. It took six seconds to multiply two eight-digit whole numbers. Then in 1946, the IBM 602 Calculating Punch could do division.
Among other innovations worth noting was the automatic card feed in 1900, followed the next year by the Hollerith Automatic Horizontal Sorter, allowing a machine to process a batch of cards without needing anyone to move the cards through the machine.
In 1906, control panels (also called “plugboards”) were added that allowed operators to change the way a tabulator works by moving plugs to different sockets on the panel. Before then, changing the way the punch card data was tabulated required re-soldering the wires connected to the counters. Then perhaps as early as 1928, IBM introduced removable control panels, allowing control panels to be prepared while not connected to the machine, which greatly reduced the downtime when changing the function of the machine. Operators could maintain a library of prepared control panels.
By 1920, printers were developed, at first only able to print numbers. This freed operators from having to manually write down the values shown on the many dials. Somewhere around 1933 we had the first alphabetic tabulator, able to print out words in addition to numbers.
In 1946, the evolution of IBM’s 600 series continued with the 603 Electronic Multiplier, which used 300 large vacuum tubes. It’s called the world’s first mass-produced electronic calculator, though only about 20 units were built. Two years later, the IBM 604 Electronic Calculating Punch was a much improved model, with more than 1000 miniature vacuum tubes. It would sell more than 5000 units. Later that year, the IBM 605 Electronic Calculator, a slightly modified 604, was released. There didn’t seem to be a model “606” from IBM.
That brings us up to 1953 and the release of the IBM 607 Electronic Calculating Punch that Jerry would get his hands on a few years later. It was similar to the 604, and it included a memory unit. It was able to read data, but not program instructions, from punch cards. According to the Columbia University Computing History web site, the 607 weighed a little more than 2 tons, occupied 36 square feet of floor space, and had a heat load of 26,000 BTU.
The printer Jerry used with the 607 was an IBM 402 Accounting Machine. The 402 could print 43 letters and numbers on a line, followed by up to 45 numbers on the right side of the line. It was introduced in 1948. This can get a bit confusing, as the function of the 402 overlapped a bit with the 607. Later he used the IBM 407 as a printer.
Jerry described the machines he used with the 607 and how he configured them:
The 402 was a ‘tabulating’ machine. The wiring boards allowed formatting of the input and the output. I could add up numbers from successive cards and print totals, but no other calculations except by tricks. Like, you could multiply by 2 by adding, or take 1 percent of a number by displacing wires by two places.
The keypunch was ‘programmed’ with a code punch card.
The verifier was a fixed function machine that compared a punched card with the supposedly duplicate key strokes.
The sorter had no programming except by what the operator chose to do, which was basically by choosing a card column to sort on and the handling of the card for successive sort runs. You could only sort on one column at a time, and for alpha sorting you had to sort twice on the same column, if I remember correctly. We didn’t do a lot of alpha sorting because it was a PIA, so wherever possible, we used numeric codes.
The others [607 and reproducing punch] were wired program machines.
Following the 607 in 1957 was the IBM 608 Transistor Calculator, fully transistorized with no vacuum tubes. In 1960, the IBM 609 Calculator improved on this by adding core memory. This was the end of the line for the 600 series at IBM. But the IBM 407 wasn’t withdrawn from marketing until 1976.
Coming up next, a look at the history of the machine Jerry ran his first program on, the IBM 650, and programming in general.
References
I’ve chased many squirrels in the last few years trying to produce this installment. I finally realized that this installment was trying to be an entire book of its own. I’m satisfying that itch in a small way by cutting out a great deal of scope, and covering tabulators here, and computers in the next installment, then going back to focusing on Jerry.
Below are some of the resources I’ve used in producing this installment. I apologize for not having good enough notes at this point to be able to footnote all of the facts with the relevant reference.
Herman Hollerith: Forgotten Giant of Information Processing, Geoffrey Austrian, 2016