Thursday, July 10, 2008

Pixar Lunch at ADC 2008


As I've posted here before, I attended the Apple Developer Conference 2008 in San Francisco. One of the most interesting speakers I heard was someone from Pixar Development. Aside from being entertaining, there were some awesome quotes that really had me going "Amen, brother!" Here they are, paraphrased:

"If your application and its architecture are not going to get you where you need to be, it's okay to let it go." Sometimes when a lot of development time has been investing in one's code, it is hard to admit that it is obsolete. Using yesterday's code to add on today's new development challenges can mean compromises that prevent you from creating the best software you are capable of. The more this is repeated, the more limited you become. This doesn't mean leaving a path of destruction. However, nothing lasts forever, and the lifespan of software is incredibly short. Modern development challenges require modern software architectures. Software should be clean and concise, without the workarounds of the past. In the long run, it costs more money to keep tweaking than it does to rewrite it and do it correctly.

"If you are not going to make industry-leading, best-of-breed software -- don't do it. You are wasting everyone's time. Go do something else." This is a bold statement, but it goes to the heart of the aspirations of a developer. If you are developing something that is second rate, you might as well pack it in. The example he used was for the movie Toy Story 2. Disney wanted a cheap, straight-to-video movie. Unfortunately, the people at Pixar working on the project got incredibly depressed, and hated their work. They were taking shortcuts and compromising the integrity of their work, and not fulfilling the promise of what they knew they could produce. So, they went back to Disney and said, no, we will not produce a low quality product. The final result was a high quality movie instead, and happy people, not just at Pixar, but for the audience.

"Build sharp scalpels, not dull Swiss Army knives." This one can get some people a bit defensive. There are those who think that feature-rich means quality. It does not. It is better to make separate products, or even plugins, that are extremely high quality. They serve a specific purpose concisely, and with power. Would you want a doctor to operate on you with a Swiss Army knife? I hope not. This is true for making modern software. It is also true for careers. Technology changes, evolves, and gets better. As new tools and technologies emerge, you should use the best you can to complete your task.

My Thoughts.
I think that many developers become so skilled at certain languages and technologies, that they refuse to use better, more efficient tools to complete their tasks. Some view my career as a Jack-of-all-trades-master-of-none, because I have not become an extreme expert on a particular language or skill set. That requires a complete investment and some blinders, where you have to ignore new technologies to a large extent. I believe that is fairly stupid, and a recipe for career obsolescence.

I think some developers personalize their software. It becomes their baby, and their work represents who they are. Actually, if someone does this, I agree. As their software becomes obsolete, and stops moving forward, so do they. I think this is crazy. I think you always modernize your code, and yourself. I believe you keep your eyes open for the best, most modern tools and technologies you can find to produce industry-leading results.

Technology is not built on bedrock, it is built on sand. The higher you build, the more unstable, and the greater the fall. Adaptation and speed allow you the ability to acquire excellence. Excellence is a constantly moving target. You can place your foot down on the technology treadmill if you want. But if you do not know when and why to lift your foot and move forward, you are not as good as you think you are. Pixar is the perfect example of moving forward and not compromising excellence. I say, be like Pixar!

No comments: