9th design: Sum of all parts


Programming, being such an abstract and general concept, is not tied to a single practice, technique or hardware system. It can be implemented in a multitude of ways and new ones are being invented every day, some with more success than others. The truth is, there can be a multitude of implementations because everyone has a different approach or set of factors that matter to them the most. Some are very picky with types, others with portability, while some others still might for concurrency, readability and constant code optimization. As the story of the elephant goes, not everyone can see the whole picture at a time and while it may be beneficial to take everything into account, I don’t think it is necessary or worth it from an individual’s perspective.

Which is why I found the 4+1 view of software architecture so intriguing. You don’t need everything inside, as long as everything can pass from thought to paper at some point. You can first think of all the hardware constraints or how the system should behave for different inputs. Then, you can think about how it all connects to the business model or how it needs to be developed. I haven’t had the privilege of making and managing such complex systems using all those different perspectives and considerations. However, I think that it can divide complexity and, in general, give views of only what people need to see at a certain point in time. If, for example, a regional supervisor had to check a certain program, he or she could just look at the process view for a general idea into how everything adds up.

In the end, every single problem is a world apart from each other. You need to consider all the possible viewpoints if we want to use and take advantage of programming and computers in general.

Comentarios

Entradas más populares de este blog

10th module: Going Micro(soft)

7th Design: WarGames

11th module: Metaprogramming