Software architect

Last updated

A software architect is a software engineer responsible for high-level design choices related to overall system structure and behavior. [1]

Contents

It's a software architect's responsibility to match architectural characteristics (aka non-functional requirements) with business requirements. For example: [2]

Strategies for Software Architects to Handle Uncertainty

Software architecture and, subsequently, software architects inherently deal with uncertainties. It is the software architect's job to decide the size of architectural components, which can significantly influence a system's outcomes, both positively and negatively. Neal Ford and Mark Richards propose an iterative approach to address the challenge of identifying and right-sizing components. This method emphasizes continuous refinement as teams develop a more nuanced understanding of system behavior and requirements. [2]

The approach typically involves a cycle with several stages: [2]

This cycle serves as a general framework and can be adapted to different domains.

Anti-patterns

The following architectural anti-patterns can arise when architects make decisions. These anti-patterns often follow a progressive sequence, where resolving one may lead to the emergence of another. [2]

See also

References

  1. "Software Architecture". Software Engineering Institute. Carnegie Mellon University. Retrieved 29 June 2022.
  2. 1 2 3 4 5 6 Fundamentals of Software Architecture: An Engineering Approach. O'Reilly Media. 2020. ISBN   978-1492043454.