Who needs an Architect?

What is architecture?

The author defines architecture as "a word we use when we want to talk about design but want to puff it up to make it sound important".

The RUP, working off the IEEE definition, defines architecture as “the highest level concept of a system in its environment. The architecture of a software system (at a given point in time) is its organization or structure of significant components interacting through interfaces, those components being composed of successively smaller components and interfaces.”

What makes a component significant?

"It is significant because the expert developers say so".

“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. These components are usually composed of smaller components, but the architecture only includes the components and interfaces that are understood by all the developers.”

Some would say that “architecture is the set of design decisions that must be made early in a project.”

Who is the Architect?

So if architecture is the important stuff, then the architect is the person (or people) who worries about the important stuff.

The most important activity of Architectus Oryzus is to mentor the development team
to raise their level so that they can take on more complex issues.

According to Mike an Architect is a guide. "A guide is a more experienced and skillful team member who teaches other team members to better fend for themselves yet is always there for the really tricky stuff."

I agree that one of an architect’s most important tasks is to remove architecture by finding ways to eliminate irreversibility in software designs.

"One of the differences between building architecture and software architecture is that a lot of decisions about a building are hard to change. It is hard to go back and change your basement, though it is possible. There is no theoretical reason that anything is hard to change about software. If you pick any one aspect of software then you can make it easy to change, but we don’t know how to make everything easy to change."

"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. That, and duplication."

Software Architecture is a little more complex than we previously imagined, the scope is wide but the possibilities too.

Software is not limited by physics, like buildings are. It is limited by imagination, by design, by organization. In short, it is limited by properties of people, not by properties of the world. “We have met the enemy, and he is us.


References:
https://martinfowler.com/ieeeSoftware/whoNeedsArchitect.pdf

Comentarios

Entradas más populares de este blog

Hidden Figures

The 4+1 View Model

Is Design Dead?