Decades after Hopper’s death, bugs are a part of life for those of us who work with technology. We can all relate to a system crash, a computer freeze, or a life-sucking moment of doom where you lose the last four hours’ worth of work—all thanks to bugs.
For those who develop software, bugs are a part of the process. A program almost never works properly the first time . You write some code, you run it, and it breaks. This is normal. This is part of the job. You track down the errors, or bugs, in your loops of code, then you rewrite the loops, and run it again. You do this again and again, hundreds or thousands of times, until you have a working prototype. Then you hand over your software to a team of beta testers. “Try to break it,” you tell them.
By using the software in different and unexpected ways, your testers find more buggy loops, which you track down and correct. Some bugs are small: a misspelled word or a missing semicolon. Some bugs are huge: a gaping security hole or a navigation system failure.
Let’s say my friend made one error when typing his brilliant program:
10 PRINT “I AM THE WORLD”S GREATEST HACKER”
20 GOTO 10
How long did it take you to spot it?
Yes, accidentally writing a quotation mark instead of an apostrophe would signal the end of our PRINT statement, causing the computer to choke on line 10. My friend would no longer be the world’s greatest hacker; he would be the world’s greatest SYNTAX ERROR.
This kind of bug is easy to track down, but many bugs are far more insidious and complex. Some can only be reproduced under specific circumstances or unusual situations—so unusual that the developers have great difficulty ever finding them. “Show me the steps to reproduce the problem” is a common refrain among programmers. “Well,” says the person reporting the bug, “I was in this spreadsheet, and I clicked this menu item. Wait, maybe it was this other menu item. Hmm. Well, it crashed this morning, so please fix it before lunchtime.”
Bugs Cause Pain
Years ago, my company used a well-known video editing application to produce online videos. For the sake of not being sued, we’ll call this program VideoBug. Being a high-end video editor, VideoBug required an enormous amount of memory and computing power. It would run on a slower computer, just not very well . There was no way to know whether your computer was optimized for VideoBug until you found yourself hitting your head with a hammer out of sheer frustration. Using VideoBug was a great way of really coming to deeply understand and appreciate the pain of bugs.
Sometimes the pain would be subtle, like a split-second audio glitch that sounded correct in the preview video but only showed up in the final video. You’d render the video again and again, trying to get the audio right, missing deadlines, missing sleep, missing your child’s first piano recital. Eventually you’d delete the entire video project, rebuild it from scratch, and twelve hours later it would work.
Sometimes the pain would be acute, like when the computer would hang after working on an all-night video project, taking all your effort with it. “Well, didn’t you save your project?” someone would ask, and you’d silently vow to kill them, right after you slaughtered the entire VideoBug development team.
One day, one of our team members was in the other room, separated by a three-foot reinforced concrete wall, when I suddenly heard him explode with rage. It was terrifying and violent, with a torrent of screaming expletives and the sound of a massive filing cabinet full of CDs being pulled to the ground.
Freaking VideoBug , I thought to myself.
Now multiply our frustration times hundreds, thousands, or millions of users of the VideoBug software, and you see how seemingly small bugs can cause tremendous difficulty and frustration. To this day, a simple web search turns up thousands of user complaints about all the issues not listed on the official VideoBug website.
You may ask, “Why didn’t you just get a video editor that works?” Eventually, we did. But we had so much experience with using VideoBug—we were so trained to save our project every ten seconds and expect frequent crashes—that it was easier in the short term to live with terrible software rather than learn a whole new system.
It’s an appropriate metaphor for our minds. Our mental programming—our loops—can cause us pain, but it’s often easier to just live with the pain than invest in learning a new system.
The rewards of learning the new system, though, are potentially infinite . Not only do our negative loops cause us pain, they hold us back. They limit us. If we switch to a new video editor, we’ll simply make it easier to create videos. In the world of the mind, though, getting rid of our limitations unlocks anything we can imagine, because imagination is at the core of mind hacking .
How to Debug the Mind
To recap: our minds are the product of thousands of repeated lessons, good and bad, true and false, accurate and inaccurate. These have been ingrained as mental “loops” that can be positive ( I like to exercise ) or negative ( I will never find true love ). They can be constructive ( I should spend money responsibly ) or destructive ( I would be happier if I had a drink ).
These habitual thoughts control our emotions, our behaviors, and ultimately our lives. Because they are deeply embedded, the product of years of experience and upbringing, these loops can be hard to track down. The best way of debugging these negative loops is to look at the quality of your life, more specifically for areas of pain . For example:
• Difficulty in relationships
• Difficulty at work
• Difficulty with family members
• Legal trouble
• Money trouble
• Health trouble
• Persistent negative beliefs ( I’ll never succeed. People are untrustworthy .)
• Persistent negative feelings (cynicism, hopelessness, despair)
• Persistent failure
• Anxiety
• Depression
• Addiction
• Living in your parents’ basement and/or your car
For me, being visited by the Secret Service, and the subsequent fallout, was an enormous pain point: a sign that something needed to be changed. But there were plenty of smaller pain points along the way, like getting caught sneaking vodka from the liquor cabinet by my father— in my thirties . And of course the everyday mental pain that was causing me to sneak vodka from the liquor cabinet in the first place.
The problem is that we can get so used to the pain that we become numb to it. Like a person who’s always worn a pair of ill-fitting shoes, we can convince ourselves that it’s not worth the trouble to change. The pain isn’t that bad , we might rationalize, or I can live with it . Meanwhile, the pain gets worse, and we limp through life in size 4 loafers.
Fortunately, there are several methods we can use to uncover the loops that cause us this pain. The first is based on a Japanese management technique known as The Five Whys.
Method #1: The Five Whys
Sakichi Toyoda was, you might say, the king of Japanese geeks.
In the late 1800s, many Japanese textile factories still used wooden hand looms to produce cloth. They were labor-intensive, slow, and expensive. After several years of experimentation, Toyoda invented a steam-fueled power loom that quadrupled textile production, cut costs in half, and produced better quality cloth to boot. 6
The success of the Toyoda power loom made Sakichi Toyoda a rich man, and he funneled that money into developing new inventions to make his looms even faster and more powerful. Automatic shuttle changers. Interchangeable parts. Eventually a fully automatic loom. Today he’s known as “King of Japanese Inventors,” the Asian Thomas Edison, and his story is taught to every Japanese schoolchild.
Читать дальше