Who Needs an Architect?
In this post, I will discuss the article: "Who needs an architect?", written by Martin Fowler.
In the last entry we defined the software architecture as a high-level design, the IEEE definition also defines architecture as “the highest level concept of a system in its environment. The architecture of a software system is its organization or structure of significant components interacting through interfaces".
It seems that Martin Fowler and many other people do not agree with his definition, like Ralph Johnson, who tells us there's no highest level concept of a system. The best definition they propose is the following:“In most successful software projects, the expert developers working on that project have a shared understanding of the system design. This shared understanding is called ‘architecture.’ This understanding includes how the system is divided into components and how the components interact through interfaces.” Sounds better to me, because makes clear that a lot of people are involved in the construct, or in simpler words of the author: architecture is about important stuff.
I found very funny the comparison that Fowler makes, between the Architectus Reloadus and the Architectus Oryzus. The first one is the one who makes the important decisions, while the second one must be aware of what is happening in the project, look for important issues and make something with them before they become a serious problem. The Architectus Oryzus has a 100% collaborative work and is the mentor of the work team, his goal is to raise the level of the team so they can handle complex problems. Personally, I also think that he has to be a good leader and have a lot of tolerance for frustration (What a work!). He is a guide who must be careful not to turn into the Architectus Reloadus, for just taking decisions.
I find the last topic that Fowler talks about very interesting: Why do people feel the need to get some things right early in the Project? I agree with the answer: because they perceive those things as hard to change. One of an architect’s most important tasks is to seek how to contain complexity by reducing irreversibility. Of course, this is not a simple task, making something easy to change makes the overall system a little more complex, and making everything easy to change makes the entire system very complex. Complexity is what makes software hard to change. (WHAT!?)
Software is not limited by the chaos of the world, it is only limited by us. (Why do we have to be so rude !?)
Fowler, M. (2003) Who needs an architect?. IEEE Software.
Comentarios
Publicar un comentario