How Empathy Drove Grace Hopper's Software Development
Grace Murray Hopper Collection, 1944-1965, Archives Center, National Museum of American History.

How Empathy Drove Grace Hopper's Software Development

In 1949, Grace Hopper had a challenge [1]. Her checkbook had been out of balance for three months and she couldn't figure out why. It’s not that Grace was bad with numbers. Quite the contrary. She was a brilliant mathematician, and had worked for several years on an elite team programming some of the world’s first computers. Balancing her checkbook should have been easy. So what was going on??

Perplexed, Grace called her banker brother. Surely he’d be able to spot the error quickly. Nope. It took the siblings several evenings of investigation to uncover the surprising root cause. Grace had been performing calculations in both octal and decimal numbering systems.?

American commerce uses a Base-10 (decimal) numbering system, which uses ten digits, 0 through 9, for its calculations. While decimal often feels like the most intuitive, there are other types of systems, too. Ever wonder why there are 60 minutes in an hour? Our measurement of time has its roots in the same Base-60 (sexagesimal) that the Ancient Babylonians used. The “hex code” for computer colors gets its name from the Base-16 (hexadecimal) system. Those ones and zeros that a computer uses to determine its operations? Well, that’s Base-2 (binary).?

In the early days of computing, programming was performed using a Base-8, or octal system. In her day-to-day work, she only considered the numbers 0-7 in her calculations. The siblings had found the problem. “...at intervals, I had subtracted in octal,” Grace later recalled. This meant that when she should have entered a 25, she would enter a 31 instead [2]. “I faced the major problem of living in two different worlds. That may have been one of the things that sent me to get rid of octal as far as possible.”

Grace’s challenge balancing her checkbook changed computing history. At the time, the prevailing belief was that computers could only be programmed using octal. However, Grace identified two problems with using a Base-8 system to program computers. First, using octal slowed programmers down and caused inaccuracies. Second, it severely limited the number of people who could use a computer. Was it really necessary for people like her brother to need to learn an esoteric Base-8 numbering system to reap the benefits of these new machines??

One of Grace Hopper’s most enduring qualities was her creative problem solving. Instead of getting frustrated, Grace got curious. She looked beyond math and towards people. She set a goal of “getting correct programs written faster, and getting answers for people faster.”

First, she noticed how her team was already collaborating, recalling how “If I needed a sine subroutine, angle less than π/4, I'd whistle at Dick and say, "Can I have your sine subroutine?" and I'd copy it out of his notebook.”?

However, Grace quickly identified how much human error writing equations notebooks was causing. For example, the letter A would regularly be copied as a 4, a B was mistaken for the number 13, and so on. “It therefore seemed sensible,” Grace surmised, that “instead of having programmers copy the subroutines, to have the computer copy the subroutines. Out of that came the A-0 compiler.”

As Grace worked on her compiler, she knew she’d face skepticism. Anticipating this pushback, she supplemented the code with block charts, flow charts, code comments, and “a line-by-line description of exactly how the compiler works, in English, keyed both to the flow charts and to the coding.” None of Grace’s extensive documentation was needed for the computer —?it was predicting what people would need.

Of course, Grace didn’t work in isolation on her invention. She recognized the social aspect of programming, and gave credit to other people’s contributions, too. John Mauchly’s “Short Order Code,” Betty Holbertson’s “Sort-Merge Generator,” and Milly Cross’ “Editing Generator,” just to name a few.

By 1952, the compiler was working, but Grace’s work wasn’t done. Now, she had to shift into sales mode, convincing a variety of different audiences of the benefits. “The selling was an extremely difficult job,” Grace said, “because it had to involve not only selling the users, the customers, but also selling management, and persuading them that it was necessary for them to invest the time and money in building these program-assisting routines. And that was almost as difficult, if not more so, than selling to the users.”?

For three years, Grace tried to convince her business-minded colleagues that her idea was viable. In report after report, managers and marketers remarked that they just didn’t see the value. Grace was frustrated, reflecting on how “something that's obvious, evident to the researcher, to the programmer--when it's faced by Management, is out of this world.”?

Instead of conceding defeat, Grace got creative. The compiler was designed to substitute patterns of bits, which on her team were mathematical equations. Maybe using English words to represent the subroutines would resonate better? The coding to make the change was trivial, but maybe it would work. So in 1955 she tweaked her program to show how a human could type a command in English, such as PRINT, and the computer would execute it as instructed. No math involved. This change ended up making the difference and her company decided to incorporate Grace’s compiler in its next computer model.?

The engineering and empathy that went into the development of the compiler made it possible for anyone to write data processing programs using English statements. Grace had achieved her goal. Octal was now on its way to being obsolete. Thanks to the compiler, programs could be written faster, with more accuracy, and by non-mathematicians.

It’s hard to overstate the impact of Grace Hopper’s contributions. Her empathy-driven software development process opened the floodgates for modern programming languages. Nearly every programming language in use today has a compiler or interpreter, both of which take human-friendly source code and convert it into machine code. In 2024, Stack Overflow surveyed over 45,000 professional developers to determine which programming languages they use. Out of the top 50 reported, all of them, with the exception of HTML/CSS, are compiled or interpreted [3].

When we look back on technological innovations, such as the compiler, we often emphasize the engineering and overlook the empathy. Grace Hopper’s story reminds us that we can’t have one without the other. Writing the algorithms to reuse subroutine patterns was just one aspect of the compiler’s success. But when we look harder, we can see how empathy drove Grace Hopper’s development decisions.?

Grace identified a problem to solve because she wanted to make it easier for herself, her colleagues, and her brother to write software. She collaborated with and credited others, recognizing that innovation doesn’t happen in isolation. She proactively considered the objections others might have and adapted her communication to different audiences. She created detailed documentation for the programmers she worked with and changed her demo to align to the perspectives of her colleagues in finance, marketing, and sales.?

None of these empathy-related activities detracted from her software development activities. Empathy made her work stronger —?and it can make your work stronger, too.

References:

[1] Hopper, Grace. “Keynote Address.” Conference presented at the History of Programming Languages, June 1, 1978. https://dl.acm.org/doi/10.1145/800025.1198341 .

[2] Once I learned that 31 in octal is 25 in decimal, this joke finally made sense to me. "Why do developers mix up Halloween and Christmas? Because Oct(31) == Dec(25)."

[3] Stack Overflow. “2024 Developer Survey,” May 2024. https://survey.stackoverflow.co/2024/technology#most-popular-technologies-language-prof .

Moss Drake

Senior Software Engineer at Independent Consultant

3 个月

Q: Why do programmers confuse Christmas and Halloween? A: Because DEC 25 = OCT 31

Suzie Beaudoin, Coaching affaires exécutif

Coach de dirigeants d’entreprise | Présidente groupes de PDG & CEO | Auteure | Conférencière ? Mindset de croissance | Leadership | Stratégies | Finances | Innovation | Gestion et gouvernance

3 个月

Curiosity as well as communication and listening skills to truly try to understand the root of the problem , why it matters so much, and the impact are key. Having been a Product Marketing Manager and Program Manager for years myself at Microsoft, I know that it can be easy to jump to a solution... but at the end of the day, it needs to be done for the end customer, not just for us.

Michael Tardiff

Facilitator, coach, believer in people and their immense power

3 个月

I enjoyed this so much. Thank you for sharing it!

回复
Ken Lowther, Jr.

Principal Software Engineer @ First National Bank of Omaha | AWS/PCF | Core Java | Spring Boot

3 个月

Well done, Andrea!

回复
Joe Blaty

Principal AI Innovator: Empowering Organizations with Holistic, Ethical, Human-Centric Tech Solutions

3 个月

It's ironic. I've been recently thinking about the "human friendliness" of programming languages. In the age of AI, I'm wondering if we will develop a new AI-specific language that will guide the operation of AI, much like a programming language guides the execution of logical computer operations. In fact, I'm wondering when AI will actually create that language. I mean, does a human really need to understand AI operations for AI to operate efficiently and accurately? Definitely a head scratcher.

回复

要查看或添加评论,请登录

社区洞察

其他会员也浏览了