Software architect


A software architect is a software developer expert who makes high-level design choices and tries to enforce technical standards, including software coding standards, tools, and platforms.

History

The software architect concept began to take hold when object-oriented programming or OOP, was coming into more widespread use. OOP allowed ever-larger and more complex applications to be built, which in turn required increased high-level application and system oversight.

Duties

The role of software architect generally has certain common traits:
Architects make high-level design choices based on their programming experience. An architect has thought through all the aspects of a software, just like an architect that builds a house. A construction architect knows where the ducts will be, where the electric connections will be and where the wall outlets will be. A design that a common person sees is just the walls and windows but a detailed design that is abstracted from the outsider are also present with the architect. In addition, the architect may sometimes propose technical standards, including coding standards, tools, or platforms.
Software architects may also be engaged in the design of the architecture of the hardware environment, or may focus entirely on the design methodology of the code.
Architects can use various software architectural models that specialize in communicating architecture.

Other types of IT-related architects

The enterprise architect handles the interaction between the business and IT sides of an organization and is principally involved with determining the AS-IS and TO-BE states from a business and IT process perspective. Many organizations are bundling the software architect duties within the role of enterprise architecture.
An application architect works with a single software application.
Other similar titles in use, but without consensus on their exact meaning, include:
The table below indicates many of the differences between various kinds of software architects:
Architect typeStrategic thinkingSystem interactionsCommunicationDesign
enterprise architectacross projectshighly abstractedacross organizationminimal, high level
solutions architectfocused on solutionvery detailedmultiple teamsdetailed
application architectcomponent re-use, maintainabilitycentered on single applicationsingle projectvery detailed