Software architect: Difference between revisions

From Cibernética Americana
Jump to navigationJump to search
 
(19 intermediate revisions by the same user not shown)
Line 1: Line 1:
[[:en:Software architect]]
<div style="background-color: black;">
<div style="background-color: black;">
==Lede==
A '''software architect''' is someone who performs high-level design work on computer software, typically at a whole system or large application level. In an organization where multiple such individuals operate, the lead individal is referred to as the ''chief architect''.
A '''software architect''' is someone who performs high-level design work on computer software, typically at a whole system or large application level. In an organization where multiple such individuals operate, the lead individal is referred to as the ''chief architect''.
{{TOCright}}
{{TOCright}}
==History==
==History==
The software architect concept goes back at least to Harlan Brooks, author of ''''The Mythical Man Month'''' who was designer of the highly successful System 360/370 software architecture in the mid 1960s. Subsequently the commercial job title began to appear in wage labor markets but this was a generation later and contrary to what is stated in the English wiki, had relatively little to do with the dominance of OOP which wasn't substantial until the mid 1990s. OOP does join threads of computer history such as structured programming in calling for improved design based on its paradigm but this is distinct from the activity of architecting systems and it's false that the two have actually been joined as the article there states.
The software architect concept goes back at least to Fred Brooks, author of ''''The Mythical Man Month''''<ref>[[:en:Mythical Man Month|ibid]]</ref> who was designer of the highly successful System 360/370 software architecture in the mid 1960s. Subsequently the commercial job title began to appear in wage labor markets but this was a generation later and contrary to what is stated in the English wiki, had relatively little to do with the dominance of OOP which wasn't substantial until the mid 1990s. OOP does join threads of computer history such as structured programming in calling for improved design based on its paradigm but this is distinct from the activity of architecting systems and it's false that the two have actually been joined as the article there stated when this one was drafted.


==Duties==
==Duties==


Architects make high-level design choices based on their experience on making low-level coding 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 water 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 dictate technical standards, including coding standards, tools, or platforms.
Architects make high-level design choices based on their judgment and experience. An architect should have thought through all the important aspects of the target, a duty of an kind of architect. In addition, the architect may sometimes dictate 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.
Software architects may also be engaged in the design of the architecture of the hardware environment, may focus entirely on the [[:en:design methodology|design methodology]] of the software, or have some other specific charter.


Architects can use various software architectural models that specialize in communicating architecture.
Architects may use various [[:en:design patterns|patterns]] and indeed design patterns originated in (traditional) architecture.


==Other types of IT-related architects==
==Related Job Titles==
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{{Explain|date=June 2018}} from a business and IT process perspective.  Unfortunately<sup>Dubious - discuss.</sup> many organizations are bundling the software architect duties within the role of [[enterprise architecture]].  This is primarily done as an effort to "up-sell" the role of a software architect and/or to merge two disparate business-related disciplines to avoid overhead.{{POV statement|date=June 2018}}


An [[application architect]] works with a single software application.{{Citation needed|date=June 2018}}
Other similar titles in use, but without consensus on their exact meaning, include:
* [[:en:Solution architect]], which may refer to a person directly involved in advancing a particular business solution needing interactions between multiple applications. May also refer to an [[:en:application architect]].
* System architect (singular), which is often used as a synonym for [[:en:application architect]]. However, if one subscribes to Systems theory and the idea that an enterprise can be a system, then System Architect could also mean enterprise architect.
* [[:en:Systems architect]] (plural), which is often used as a synonym for enterprise architect or solution architect.


Other similar titles in use, but without consensus on their exact meaning, include:{{Citation needed|date=June 2018}}
* [[Solution architect]], which may refer to a person directly involved in advancing a particular business solution needing interactions between multiple applications. May also refer to an [[application architect]].
* System architect (singular), which is often used as a synonym for [[application architect]]. However, if one subscribes to Systems theory and the idea that an enterprise can be a system, then System Architect could also mean [[enterprise architect]].
* [[Systems architect]] (plural), which is often used as a synonym for enterprise architect or solution architect.
The table below indicates many of the differences between various kinds of software architects:{{Citation needed|date=June 2018}}
{| class="wikitable"
{| class="wikitable"
|-
|-
Line 32: Line 30:
! Design
! Design
|-
|-
| [[enterprise architect]]
| [[:en:enterprise architect]]
| across projects
| across projects
| highly abstracted
| highly abstracted
Line 38: Line 36:
| minimal, high level
| minimal, high level
|-
|-
| [[solutions architect]]
| solutions architect
| focused on solution
| focused on solution
| very detailed
| very detailed
Line 44: Line 42:
| detailed
| detailed
|-
|-
| [[application architect]]
| [[:en:application architect]]
| component re-use, maintainability
| component re-use, maintainability
| centered on single application
| centered on single application
Line 51: Line 49:
|}
|}


In the software industry, as the table above suggests, the various versions of architect do not always have the same goals.<ref>[http://blogs.tedneward.com/post/hard-questions-about-architects/ Anecdote about an interaction between Solution and Enterprise Architect]</ref>{{Self published inline|date=June 2018}}
The table above is a characterisation of some job titles vs job description from the original article.


==See also==
==See also==
* [[Electrical engineering]]
* [[:en:Electrical engineering]]
* [[Electronics engineering]]
* [[:en:Electronics engineering]]
* [[Electronics engineering]]
* [[:en:Electronics engineering]]
* [[Hardware architecture]] / [[hardware architect]]
* [[:en:Hardware architecture]] / [[:en:hardware architect]]
* [[Requirements analysis]] / [[requirements engineer]]
* [[:en:Requirements analysis]] / [[:en:requirements engineer]]
* [[Software architectural model]]
* [[:en:Software architectural model]]
* [[Software architecture]]
* [[:en:Software architecture]]
* [[Software engineering]] / [[software engineer]]
* [[:en:Software engineering]] / [[:en:software engineer]]
* [[Systems architecture]] / [[systems architect]]
* [[:en:Systems architecture]] / [[:en:systems architect]]
* [[Systems design]]
* [[:en:Systems design]]
* [[Systems engineering]] / [[systems engineer]]
* [[:en:Systems engineering]] / [[:en:systems engineer]]


== References ==
== References ==

Latest revision as of 16:20, 22 July 2018

en:Software architect

Lede

A software architect is someone who performs high-level design work on computer software, typically at a whole system or large application level. In an organization where multiple such individuals operate, the lead individal is referred to as the chief architect.

History

The software architect concept goes back at least to Fred Brooks, author of 'The Mythical Man Month'[1] who was designer of the highly successful System 360/370 software architecture in the mid 1960s. Subsequently the commercial job title began to appear in wage labor markets but this was a generation later and contrary to what is stated in the English wiki, had relatively little to do with the dominance of OOP which wasn't substantial until the mid 1990s. OOP does join threads of computer history such as structured programming in calling for improved design based on its paradigm but this is distinct from the activity of architecting systems and it's false that the two have actually been joined as the article there stated when this one was drafted.

Duties

Architects make high-level design choices based on their judgment and experience. An architect should have thought through all the important aspects of the target, a duty of an kind of architect. In addition, the architect may sometimes dictate technical standards, including coding standards, tools, or platforms.

Software architects may also be engaged in the design of the architecture of the hardware environment, may focus entirely on the design methodology of the software, or have some other specific charter.

Architects may use various patterns and indeed design patterns originated in (traditional) architecture.

Related Job Titles

Other similar titles in use, but without consensus on their exact meaning, include:

  • en:Solution architect, which may refer to a person directly involved in advancing a particular business solution needing interactions between multiple applications. May also refer to an en:application architect.
  • System architect (singular), which is often used as a synonym for en:application architect. However, if one subscribes to Systems theory and the idea that an enterprise can be a system, then System Architect could also mean enterprise architect.
  • en:Systems architect (plural), which is often used as a synonym for enterprise architect or solution architect.
Architect type Strategic thinking System interactions Communication Design
en:enterprise architect across projects highly abstracted across organization minimal, high level
solutions architect focused on solution very detailed multiple teams detailed
en:application architect component re-use, maintainability centered on single application single project very detailed

The table above is a characterisation of some job titles vs job description from the original article.

See also

References

External links