The article is about how software architecture can be seen as two different things, one is that the architect understands the general scope of the system, so that he makes the correct big decisions, the other one is that the architect tries to solve all the issues possible.
To me, the first one fits what I think of an architect, I think a software architect should be someone that builds the general idea of the project, divides it into small chunks of important stuff the system has to do. The technology that needs to be used doesn’t matter to the architect at the early stages, the team first needs the requirements of each of the components of the project to decide, based on the requirements what kind of tech or programming language they are going to use. As we can see, that is pretty similar to the first definition the article gives.
Also, the article talks about how the architect could make thing easy to change, so we don’t need to know all the specifics of the project at the very beginning, so we can avoid complexity in the system when we need to make a significant change, but making some things easy to change, the system gets more complex, and if we make everything easy to change, the system gets very complex, so we defeat the purpose of trying to make the system less complex in the first place.
Many authors make the comparison to building architecture, which in many cases makes sense because there are a lot of similarities, but the article makes an excellent point, software architecture is not limited by physics, so, in many cases, software architects have a lot of freedom, but that could be a double edge sword, because it is easier to make a mess.
Fowler, M. (2003) Who needs an architect?. IEEE Software.
To me, the first one fits what I think of an architect, I think a software architect should be someone that builds the general idea of the project, divides it into small chunks of important stuff the system has to do. The technology that needs to be used doesn’t matter to the architect at the early stages, the team first needs the requirements of each of the components of the project to decide, based on the requirements what kind of tech or programming language they are going to use. As we can see, that is pretty similar to the first definition the article gives.
Also, the article talks about how the architect could make thing easy to change, so we don’t need to know all the specifics of the project at the very beginning, so we can avoid complexity in the system when we need to make a significant change, but making some things easy to change, the system gets more complex, and if we make everything easy to change, the system gets very complex, so we defeat the purpose of trying to make the system less complex in the first place.
Many authors make the comparison to building architecture, which in many cases makes sense because there are a lot of similarities, but the article makes an excellent point, software architecture is not limited by physics, so, in many cases, software architects have a lot of freedom, but that could be a double edge sword, because it is easier to make a mess.
Fowler, M. (2003) Who needs an architect?. IEEE Software.
This entry should be in the blog for another course.
ReplyDelete