Saturday, July 09, 2011

If Gaudi were a software architect

Last December, I had a chance to visit Barcelona in Spain. This was my first personal overseas trip not related to business, so I was a little bit nervous to wander around the downtown area. Anyway, the most impressive attractions were definitely Gaudi’s architecture; in fact it seems impossible to talk about Barcelona without mentioning his architecture. While looking around his architecture and museum, I was thinking about "what if Gaudi  was a software architect?" and "What could we learn from his practices as a software architect?" I will talk about these questions in this post.

During the time I was there, I visited some more of his famous constructions in Barcelona such as Park Güell, Casa Milà, and Sagrada Família. Among them, Sagrada Família is the most impressive work.  He started working on Sagrada Familia in 1883, but he didn’t see the completion. Even our generation might not see it, because the main twin towers have not started to be built yet.

About Gaudi
Gaudi is considered to be the most creative architect in the world. He created his own trend of architecture. You can’t but agree with my opinion when you see Sagrada Família. When I first saw this architecture,  it looked like aliens could create it because I have never seen a similar style before. His architectural style is still not common now, but I have seen ceramic tiles like Gaudi’s work in a park near my house.
Sagrada Família

How Gaudi created his works
People still are making miniatures in the workroom
Architects usually use blueprints to design a piece of architecture, but it is not enough to construct a large building. In general, they also use a modeling software to see a model of the architecture. It allow them to develop the architecture easily before constructing it.

On the other hand, Gaudi just sketched his ideas so many times and then made a blueprint as others did. In addition, he always made several miniatures in various scales. He realized his idea through miniature models and then developed and fixed his design. These miniatures have allowed successors to continue the construction of Sagrada Família for the almost 100 years since his death.

How software architects design software

Types of diagrams used to design software from wikipedia
Software architects also design software like Gaudi. They draw many diagrams to design a piece of software just as construction architects make blueprints, but it simply abstracts the overall structure and operations because it is impossible to document all of its complexity and details. Instead, they can implement a prototype to test the design and operations of the software. Fortunately, there are some software tools to help to make a prototype, or we can develop a real piece of software as a prototype in a short time. To me, it seems like making a miniature in construction.
I think making a miniature and prototyping are a similar process from the viewpoint of realizing imagination. It just makes it possible for us to check the overall design. However, it is impossible to make sure every detail is correct through the miniature and prototyping. In the case of construction, 3D graphics help to realize more details virtually. On the other hands, designing software is still dependent on an engineer’s experience and sense, because when we look into the details of the software, we just see logic, algorithms, and mathematics.

What if Gaudi was a software architect?

His famous ceramic tiles

Gaudi might have enjoyed prototyping and implementing code. Even he definitely would have been interested in UX (user experience) design. This is because not only did he design his buildings, he was involved in all of the details of his works such as ceramics, stained glass, wrought ironwork forging and carpentry.

The software architect’s role
Some people think that the major role of software architects is just to design software and so they don’t need to write code or even read code, but I have a different opinion. Namely, software architects should implement the core part of software and review the major code: good code can explain how it works by itself. In addition, they should have insight into UX and graphics because they could affect its architecture.

Therefore, what I took away from seeing the wondrous Sagrada Familia and learning about Gaudi’s life and work is that if you want to be a good software architect, you need to work like Gaudi, which means you should have expertise in every detail of software and write code by yourself.