"Who needs an architect?" - Comment

Software Architecture seems to be a concept that is difficult to describe as there are many definitions about it. For me it is simply designing the highest level of interpretation of a software system with the communication between the components. As there are categories on the level of a programmer (junior and senior) there must be the same when someone has the title of "architect" in a project.

Being an architect might look as a easy to do job but it can make its team succeed or fail on finishing a project on time, cost and scope. Getting to be a architect should be defined by having experience on creating modules of a system and understanding the complete solution at a high level.

Getting rid of software architecture? Nonsense. No matter what you or another person designs, it can be seen as an architecture, a component has its own architecture, a part of that component has its own architecture, everything that is designed combines two or more elements that together can be defined as an architecture.

Martin Fowler says that software is not limited by physics and that is true, maths have the same characteristic, but when they have to be implemented the become limited, limited by the power of our brains or the computer. 

In the article it is also said that if a component can be changed, it wasn't part of the architecture. And here is where I say that we need to define an abstraction of the component that will be used. If we say that we are going to use a nosql database, but after creating it we change it to a sql or graph database, well, we can say that a "database" was part of he architecture. Defining that the software will use Oracle as its database is a another level of architecture design. An architect has different views of a house and so must the software architect.  

References

Fowler, M. 2003. "Who needs an architect?". IEEE Computer Society. Retrieved August 28th 2017 from: https://martinfowler.com/ieeeSoftware/whoNeedsArchitect.pdf

Comentarios

Entradas populares de este blog

Metaprogramming (Comment)

Microservices (Comment)

Is Design Dead? - Comment