Friday, October 12, 2012

No One at Apple Understands Software

There's a great little book that I recommend to anyone who's ever found themselves at odds with traditional learning methods or formal education. The title is Surely You're Joking, Mr. Feynman! (Adventures of a Curious Character) by Richard P. Feynman. It's a fun and easy read and it provides a perspective on learning and understanding that could completely change how you think about, well, everything.

About the book, the New York Times reviewer wrote:
"In this phenomenal national bestseller, the Nobel Prize­-winning physicist Richard P. Feynman recounts in his inimitable voice his adventures trading ideas on atomic physics with Einstein and Bohr and ideas on gambling with Nick the Greek, painting a naked female toreador, accompanying a ballet on his bongo drums and much else of an eyebrow-raising and hilarious nature."

If you haven't read it, do.

I've been thinking about Feynman lately as I've been developing software for the iPhone and iPad. Learning the programming environment and working through all examples I've come to the conclusion that no one at Apple actually understands the nature of software design.

This seems a bizarre statement. Apple is a huge, successful company that depends on its software. Their systems are admired and emulated the world-over. Yet looking through the examples they provide on how to develop programs and working through the complexity and redundancy in their systems, I'm pretty sure that no one there fully understands software.

Again, this probably sounds bizarre or presumptuous. OK, forget the probably. It's a ridiculous statement, one that I would dismiss except for my having read Surely You're Joking Mr. Feynman.

Feynman came to love Salsa and wanted to learn to play. He decided that there was no better place to learn than Rio De Janeiro. So he took part in a state-department-sponsored exchange program where he would teach physics in Brazil. Brazil would get a nobel-prize winning physicist to teach their top graduate students and Feynman would get to play bongos with a Salsa band.

When fine arrived in Brazil, his students were bright, energetic and engaged, hanging on his every word. They were the cream of the crop in Brazilian physics. He taught them according to the course syllabus he'd been provided. However, when it came time for the first exam, he decided to throw in some questions of his own. Ones that related to the material, but were not taken directly from the examples.

The entire class failed the exam.

Reviewing the test results, Feynman wondered what he'd done wrong. Perhaps his questions hadn't been clear. Perhaps he'd made leaps in logic that were flawed. He engaged his class in discussion, asking them questions about topics they'd covered, using the examples from the book. Hands went up. Students responded with correct answers.

He asked the questions again, but this time using a different context and different examples. No hands. No answers.

Feynman realized that the students had learned physics by rote as one might learn spelling or history or even mathematical formuli; none of them actually understood physics. Concerned, he approached the chair of the university's physics department. As he explained his concern, he realized that the chair of the department didn't understand physics either.

Eventually Feynman came to the conclusion that no one teaching physics in Brazil actually understood it. It wasn't that they were bad or not smart. It's just that they didn't understand some very basic principles of learning and understanding. The effect was systemic and therefore, pervasive. It's one of those things about systems that can be so hard to grasp. From computers to economics to education to governments, when systems fail, they fail completely. It's just their nature.

At the end of the academic year, Feynman was asked by his students to give a talk about his time in Brazil. Given his prestige, the audience would include not only students, but professors, administrators and government officials. Feynman asked if he could say whatever he wanted and was told, 'yes'. Feynman explained what he'd discovered; his words were received and considered.

Any way, working on iPhone apps over the past weeks got me to thinking about Feynman. I don't have  anything like a Nobel Prize in software, but I think I could explain why I believe that no one at Apple understands software to someone who wanted to hear about it. I'm just not sure of to whom I'd explain it, and of course, no one there has asked me to give a talk.

Happy Friday,


  1. So explain it in detail her, I'm fascinated.

  2. OK Mark, I'm gonna give it shot. Look for it tomorrow or Thursday.


Read, smile, think and post a message to let us know how this article inspired you...