I’m an engineer and I have always worked on things that were challenging to me. As such, I often got stuck on problems. Over time, I’ve developed a process that helps me solve them, but it is entirely non-linear. There are very few challenges that I’ve solved where I can say, “Yes, I looked at the problem, analyzed it, and brought it through to a solution.” If I do that, then the problem is not challenging. It is, in fact, the exact definition of straight-forward.
Mind you, something that is straight forward to me might not be the same to you (and vice versa).
My process involves doing things that are orthogonal to the problem. For example, when I was stuck on a problem on a printer I was working on at Adobe, I found that modelling my cube in a ray tracer helped me get past my sticking point.
Other times, I would just walk around the buildings for a while and see what other people were working on. I highly recommend doing this. You need a modicum of tact to know when to interrupt and when to leave well enough alone, but there’s benefits for multiple sides. First, you get to see what the other creative people in your company are doing. This is great because it removes barriers and you get a wide appreciation of what’s going on. Second, someone else’s cool work can be an inspiration to you. Third, chances are you’ll see someone who is stuck in their own problem domain and you can help them out. Fourth, sometimes it’s fun to play the “wouldn’t it be cool if” game with other creative people.
On my walks, I got to see an expansion card that was being built for an existing printer to add Fax send/receive. This card had a Z-80 on it separate from the printer CPU. Wouldn’t it be cool if it ran CP/M? Then you could run WordStar on your printer!
I got to see type designers working on new fonts.
I got to see pre-release versions of PhotoShop and Illustrator. At one point, Joe Holt had gone to a hackathon at Apple and rebuilt Illustrator to use a new renderer based on a pre-release technology from Apple called “Serrano”. Joe also created some built-in tools to show the relative performance which was dubbed the Serranodometer.
One of the things I also liked was seeing how other engineers built their spaces. Some were austere, some decorative, some sloppy (like mine). Dick Sweet was a senior printer engineer who decided to create a candy store in his office: Dick’s Sweet Shop. He had shelves of containers of candy and an honor jar for paying for what you wanted. Other engineers added to the environment. At one point, Dick had gotten some Flintstones candy and Joel made a new label for the jar that had the music to the Flintstones theme song with modified lyrics, “Flintstones, eat the Flintstones”. I’m pretty sure he hand-coded the PostScript to generate the label with the font Sonata for the music.
I asked Dick what the raison d’être was for his office and his answer was simple and consistent with a software engineer: “To make me look thinner by making other people fatter.”