Wednesday, November 07, 2007
Sketches of Frank Ghery
Coding is not like building houses. The two are often compared. However, this comparison usually results in all kinds of design recommendation that effectively prohibit producing any usable software.
If you want to see that metaphor reversed make sure to watch Sketches of Frank Ghery movie. It shows the architect who design buildings the way that software should be written. There are of course beautiful buildings to watch: Disney Concert hall, Bilbao Guggenheim.
It's a movie about architecture, but more than that it's a movie about design process: iterative modeling, refactoring, debugging - it is all there. Gehry is definitely into refactoring. And into small iterations. It's fun to watch when Gehry and his team apply programming terminology to the models they create. Sidney Pollack could not possibly make a movie about a coders, but only because bunch of geeks arguing on the list or looking into Eclipse IDE is not as photogenic. But in our day to day job I find myself arguing about the same things as people in this movie.
There is a question of recognizing good and bad design: knowing that you got it right, Admitting that you got it wrong. I do not care what people say but we all go by some sense of internal beauty here. You say that code is elegant or (more often) messy. You say that something feels right. That's exactly how people in the movie talk about their experience.
In some way we - coders - have it easy: we work in a medium that translates directly into the resulting product. Software compilation is handled by computers; your design is expressed in code. You work in a strictly defined - and some say limited - vocabulary, but if you follow syntax rules you do not have to worry that someone misinterprets your vision. Not so much for architects, if they do not find a proper way to express themselves through drawings, models and design documents the resulting building might not be what they imagined. They show one of such buildings in the movie: it still looks great to me (but I did not "code" it).
Architectures - like programmers - are hired help. The interesting thing is that in both cases frequent interactions with customers actually result in a better end product. It's not a one way street, but a learning process were vision shapes the expectations and expectations shape the vision. There is even a similar feeling of an establishment pressure. It's not easy to propose and build something different. Gehry's buildings are like Linux in Windows world. (And yes I have to say it: some of those buildings do not have windows - at least not in a traditional sense)
Similarly to coding, in architecture one can do very little alone. You have to have a team of people. Organizing such team, making sure that people are motivated and happy to work on the same project is an art in itself. And in architecture - as in coding - you need to have proper tools. It's kind of sad that probably architects are better than us at using computers to develop their ideas. The stuff that they do with computers is amazing. We live in the world of primitive editors, outdated version control system and sink under the code that has not been automatically tested.
If you code for living this is a film for you. Even if you do not care for this obvious 'architecture is like coding analogy', even if you will not like the amazing buildings that it shows, you will appreciate the live demo of what computers can be used for. And you will feel proud that you are in this business.