Peter Turchi: Getting Lost is a Good Thing
Posted by Skrud at Friday, October 26th 2007 at 6:23pm
The opening keynote of ooPSLA was not a geek. In fact, he opened up his speech saying “I don’t do what you do.” Peter Turchi heads an MFA Program for Writers in North Carolina. So what was he doing at a conference on “Object Oriented Programming, Systems, Languages and Applications?”
It turns out that conference chair Dick Gabriel had once decided to take an MFA program. He was not terribly good at it (though he continues to write a poem every day). Peter Turchi was his teacher. What contribution could a Creative Writing professor possibly have at a conference on Software Engineering? I’ll tell you.
The purpose of Turchi’s talk wasn’t to present some radical new paradigm of programming, and it wasn’t to show off some fantastical form of research. The theme of Turchi’s talk, was that getting lost can be a good thing. When you get lost, you have to find your way back. In the process of finding your way back, you learn a new path. And sometimes, that is how you have to learn. In order to succeed and innovate, and create something new, you have to get lost in it.
If you have a map, you might be worse off than if you had no map at all. When using maps, you have to realize that all maps are distortions. No map tells the truth. Think about the typical world map that you’d see almost anywhere:
You’re pretty used to seeing it, so it won’t look particularly strange to you. But what about this “Upside-Down” world map?
It’s the same planet, and there’s no real “up” direction, so it’s just as accurate as any other map … but it’s still a distortion. The point is that no map is accurate, and if we rely too often on a single distortion (or abstraction), we will lose sight of our destination. We will get stuck in a certain paradigm, and be unable to “get lost” and discover a new path or a new perspective.
The parallels to software engineering are profound. A “map” can be some predefined solution to a problem; like a design pattern. There’s nothing wrong with using design patterns, sure they help, sure they show us useful and reliable information, so do maps. But we have to understand that design patterns themselves are an abstraction. Our purpose as software engineers and developers and programmers is to solve a problem, not to blindly trust and apply design patterns. We need to be able to get lost in a problem, and force ourselves to find a way out.





