Software architect

from Wikipedia, the free encyclopedia

Software architect is a role on a software development team . A software architect designs the structure of software systems and makes fundamental decisions about the interaction of their various components.

A software architect views the software system from a more abstract level than a programmer who is entrusted with the implementation of the design created by the architect. Depending on the team, the roles of software architect and programmer can be performed by different people or by the same people.

tasks

Despite the lack of a generally accepted definition of the role of a software architect, it can be assumed that they are usually responsible for some of the software engineering processes:

planning

When planning software development projects, architects are usually involved in the creation of functional specifications , in particular in finding, describing and justifying the technical approaches chosen for implementation. In addition, architects are often in charge of estimating the effort and determining the process model .

analysis

In the analysis , software architects are usually only used to create mock-ups that may be necessary . These are used to get to know certain techniques and technologies of the architecture in more detail in order to be able to decide to what extent these are practicable.

draft

Software architects are usually responsible for all design processes . In particular, they are responsible for the creation, description and communication of the software architecture, for example using the Unified Modeling Language and suitable design patterns . Architects usually still have a say in the runtime environment to be used , rarely also with the platform . In very few cases, however, architects deal with the system architecture of the hardware.

programming

When programming , architects are usually responsible for the correct implementation of the defined architecture, as well as the appropriate use of program libraries and frameworks. In addition, they are often responsible for the programming style to be used and specify the tools to be used for development such as IDE , build management tool, version management tool, or have a significant say in their selection. The software architects are responsible for the feasibility and not for the implementation themselves.

test

As part of the test , architects are usually responsible for the module test and, more rarely, the integration test . System and acceptance tests usually only support them through the design and implementation of test drivers and interfaces.

Support processes

In the support processes of software technology, architects are usually only responsible for individual technical tasks and never for entire processes. Architects are usually responsible for the static code analysis , the software and technical documentation and the operating manual .

Types of software architects

Enterprise architects make organization-wide, mostly software-system-wide software decisions. These decisions usually affect several development teams or locations. Examples of such decisions are:

  • Introduction of cross-system architectures such as service-oriented architecture
  • Decision to use cross-system development environments or frameworks

Application architects make architectural decisions for a specific application and thus exactly one development team. Examples of such decisions are:

  • Decision for a specific OR mapper (if this decision is not specified globally by the enterprise architect)
  • Definition of the application architecture

Similar job descriptions are in circulation, for example:

  • Solutions architect , usually describes the role of a person who looks after a specific business solution across multiple software systems.
  • System architect , is mostly used as a synonym for application architect .
  • Systems Architect (plural), is mostly used as a synonym for Enterprise Architect or Solutions Architect.

The following table shows most of the differences between the different types of software architects:

Art Strategic direction System interactions communication design
Enterprise architect cross-project architectures high abstract organization-wide if so, high-level design
Solutions Architect Architectures for a solution detailed across multiple teams rough to detailed design
Application architect Components, reuse, maintainability focused on one application within a project detailed design

In practice, the areas of the different architects are often unclearly separated. Therefore, there are often different views on the goals of architects.

education

Because of the high level of abstraction, the standard requirement for starting a career as a software architect is a computer science degree with a focus on software technology or software architecture at a university or at least a technical college . Studying in an engineering or natural science course also offers good entry opportunities with the corresponding field of study.

Also cooperative education , sometimes even vocational schools , technical schools for data processing and organization or professional colleague , the information technology occupations such. B. offer as IT specialist for application development , appear in advertising to qualify software architects. Such training alone does not, however, enable you to exercise the professional profile, but requires at least years to decades of practical experience before the role of software architect can be perceived in larger development projects.

Restrictions

The work as a software architect usually describes the professional function of employees in projects and companies. In Germany, “software architect” is not a professional title .

According to state architecture laws, the title architect , linguistic modifications or foreign language translations ("Architect") may only be used by those who are entered on the list of architects of an architects' association , the same applies in Austria, where it is reserved for civil engineers (Section 292 of the Austrian Code of Civil Procedure). However, since the software architect cannot be assigned to the construction industry, the applicability of these regulations is not relevant.

In Switzerland, the use of the term "software architect" is not subject to any restrictions and is not protected by any professional code or legislation.

metaphor

The term software architect became known outside of the IT world in the early 2000s when Bill Gates , then President and CEO of Microsoft , retired to the role of Chief Software Architect . This title reflected his new role as a supervisor and consultant for many software development projects at Microsoft, tasks that would otherwise be the responsibility of a chief technical officer .

See also

Web links

Individual evidence

  1. Anecdote about an interaction between Solution and Enterprise Architect
  2. for example Architects Act Baden-Württemberg § 2 job title, Berlin Architects and Building Chamber Act prohibited in § 4, Paragraph 7 and Building Chamber Act North Rhine-Westphalia § 2 job titles
  3. Jurisprudence in Hesse by the Higher Regional Court Frankfurt Senate for fine matters: Higher Regional Court Frankfurt am Main, Az .: 2 Ss-OWi 300/10
  4. Jurisdictions in North Rhine-Westphalia by the LG Duisburg and LG Münster: LG Duisburg - judgment of November 16, 2009 - Az. 23 O 8/09 and LG Münster - judgment of June 26, 2008 - Az. 022 O 61/08
  5. Berlin Architects and Building Chamber Act (ABKG): Link
  6. ^ Jurisdiction in Austria: Link
  7. Case law in Austria with judgment of March 20, 2007: Link