Architecture astronaut

Last updated

In software development, an architecture astronaut is a term for an individual who is focused on abstract ideas underpinning software design. [1] It is often used pejoratively. [2] [3] The concept was popularized by developer Joel Spolsky in his 2001 essay, "Don't let architecture astronauts scare you", [3] [4] in which he criticized their tendency to see patterns in everything as "absurd". [5] Programmer John Carmack has defined architecture astronauts as "a class of programmers or designers who only want to talk about things from the highest level." [2]

An abstract approach to software architecture can help build an understanding of the bigger picture, and the ability to communicate ideas to a broad group of stakeholders can be valuable. [1] However, the architecture astronaut can take this approach to an extreme, [1] and become disconnected from the systems they are designing. [6] While they may impress others initially with their ability to speak confidently and at extremely high levels of abstraction, [3] their actual designs often lack technical depth and practicality. [6] Demonstrating little regard for logistical details about how their ideas should be executed, they may ultimately lose the respect of their development teams. [6] [2] According to Spolsky:

When you go too far up, abstraction-wise, you run out of oxygen. Sometimes, smart thinkers just don't know when to stop, and they create these absurd, all-encompassing, high-level pictures of the universe that are all good and fine, but don't actually mean anything at all. [5]

In 2021, John Carmack, then CTO of Oculus consulting, described the metaverse as "a honeypot trap for architecture astronauts". [7] [2] He lamented that Mark Zuckerberg's focus on building the metaverse could result in thousands of people spending years building things that would not end up being useful. [2]

Other projects that have been characterized as the work of architecture astronauts include XHTML 2.0, which HTML5 evangelist Bruce Lawson described in 2010 as "a beautiful specification of philosophical purity that had absolutely no resemblance to the real world." [4]

Related Research Articles

<span class="mw-page-title-main">Programmer</span> Person who writes computer software

A programmer, computer programmer or coder is an author of computer source code – someone with skill in computer programming.

In computer programming and software design, code refactoring is the process of restructuring existing computer code—changing the factoring—without changing its external behavior. Refactoring is intended to improve the design, structure, and/or implementation of the software, while preserving its functionality. Potential advantages of refactoring may include improved code readability and reduced complexity; these can improve the source code's maintainability and create a simpler, cleaner, or more expressive internal architecture or object model to improve extensibility. Another potential goal for refactoring is improved performance; software engineers face an ongoing challenge to write programs that perform faster or use less memory.

<span class="mw-page-title-main">Software architecture</span> High level structures of a software system

Software architecture is the set of structures needed to reason about a software system and the discipline of creating such structures and systems. Each structure comprises software elements, relations among them, and properties of both elements and relations.

In software engineering and computer science, abstraction is the process of generalizing concrete details, such as attributes, away from the study of objects and systems to focus attention on details of greater importance. Abstraction is a fundamental concept in computer science and software engineering, especially within the object-oriented programming paradigm. Examples of this include:

The Law of Demeter (LoD) or principle of least knowledge is a design guideline for developing software, particularly object-oriented programs. In its general form, the LoD is a specific case of loose coupling. The guideline was proposed by Ian Holland at Northeastern University towards the end of 1987, and the following three recommendations serve as a succinct summary:

<span class="mw-page-title-main">Joel Spolsky</span> American software engineer and writer

Avram Joel Spolsky is a software engineer and writer. He is the author of Joel on Software, a blog on software development, and the creator of the project management software Trello. He was a Program Manager on the Microsoft Excel team between 1991 and 1994. He later founded Fog Creek Software in 2000 and launched the Joel on Software blog. In 2008, he launched the Stack Overflow programmer Q&A site in collaboration with Jeff Atwood. Using the Stack Exchange software product which powers Stack Overflow, the Stack Exchange Network now hosts over 170 Q&A sites.

Oracle APEX is an enterprise low-code application development platform from Oracle Corporation. APEX is used for developing and deploying cloud, mobile and desktop applications. The platform is a web-based integrated development environment (IDE) with a range of features including wizards, drag-and-drop layout and property editors to simplify the process of building applications and pages.

A software requirements specification (SRS) is a description of a software system to be developed. It is modeled after the business requirements specification (CONOPS). The software requirements specification lays out functional and non-functional requirements, and it may include a set of use cases that describe user interactions that the software must provide to the user for perfect interaction.

Architecture description languages (ADLs) are used in several disciplines: system engineering, software engineering, and enterprise modelling and engineering.

<i>Masters of Doom</i> 2003 book about video game companys co-founders

Masters of Doom: How Two Guys Created an Empire and Transformed Pop Culture is a 2003 book by David Kushner about video game company id Software and its influence on popular culture, focusing on co-founders John Carmack and John Romero. The book goes into detail about the company's early years, the success of their franchises such as Doom, and the dynamics between Carmack and Romero and their different personalities. The book also focuses on Romero's firing and the founding and the eventual collapse of his game studio Ion Storm.

<span class="mw-page-title-main">Catalyst (software)</span>

Catalyst is an open source web application framework written in Perl, that closely follows the model–view–controller (MVC) architecture, and supports a number of experimental web patterns. It is written using Moose, a modern object system for Perl. Its design is heavily inspired by frameworks such as Ruby on Rails, Maypole, and Spring.

"Don't repeat yourself" (DRY) is a principle of software development aimed at reducing repetition of information which is likely to change, replacing it with abstractions that are less likely to change, or using data normalization which avoids redundancy in the first place.

In computer science and engineering, transactional memory attempts to simplify concurrent programming by allowing a group of load and store instructions to execute in an atomic way. It is a concurrency control mechanism analogous to database transactions for controlling access to shared memory in concurrent computing. Transactional memory systems provide high-level abstraction as an alternative to low-level thread synchronization. This abstraction allows for coordination between concurrent reads and writes of shared data in parallel systems.

The Java programming language and Java software platform have been criticized for design choices including the implementation of generics, forced object-oriented programming, the handling of unsigned numbers, the implementation of floating-point arithmetic, and a history of security vulnerabilities in the primary Java VM implementation, HotSpot. Software written in Java, especially its early versions, has been criticized for its performance compared to software written in other programming languages. Developers have also remarked that differences in various Java implementations must be taken into account when writing complex Java programs that must work with all of them.

In software development, a leaky abstraction is an abstraction that leaks details that it is supposed to abstract away.

Software architecture recovery is a set of methods for the extraction of architectural information from lower level representations of a software system, such as source code. The abstraction process to generate architectural elements frequently involves clustering source code entities into subsystems according to a set of criteria that can be application dependent or not. Architecture recovery from legacy systems is motivated by the fact that these systems do not often have an architectural documentation, and when they do, this documentation is many times out of synchronization with the implemented system.

Apache Cordova is a mobile application development framework created by Nitobi. Adobe Systems purchased Nitobi in 2011, rebranded it as PhoneGap, and later released an open-source version of the software called Apache Cordova. Apache Cordova enables software programmers to build hybrid web applications for mobile devices using CSS3, HTML5, and JavaScript, instead of relying on platform-specific APIs like those in Android, iOS, or Windows Phone. It enables the wrapping up of CSS, HTML, and JavaScript code depending on the platform of the device. It extends the features of HTML and JavaScript to work with the device. The resulting applications are hybrid, meaning that they are neither truly native mobile application nor purely Web-based. They are not native because all layout rendering is done via Web views instead of the platform's native UI framework. They are not Web apps because they are packaged as apps for distribution and have access to native device APIs. Mixing native and hybrid code snippets has been possible since version 1.9.

<span class="mw-page-title-main">Reality Labs</span> Virtual and augmented reality products company

Reality Labs, originally Oculus VR, is a business and research unit of Meta Platforms that produces virtual reality (VR) and augmented reality (AR) hardware and software, including virtual reality headsets such as Quest, and online platforms such as Horizon Worlds. In June 2022, several artificial intelligence (AI) initiatives that were previously a part of Meta AI were transitioned to Reality Labs. This also includes Meta's fundamental AI Research laboratory FAIR which is now part of the Reality Labs - Research (RLR) division.

In software engineering, a microservice architecture is a variant of the service-oriented architecture structural style. It is an architectural pattern that arranges an application as a collection of loosely coupled, fine-grained services, communicating through lightweight protocols. One of its goals is that teams can develop and deploy their services independently of others. This is achieved by the reduction of several dependencies in the code base, allowing developers to evolve their services with limited restrictions from users, and for additional complexity to be hidden from users. As a consequence, organizations are able to develop software with fast growth and size, as well as use off-the-shelf services more easily. Communication requirements are reduced. These benefits come at a cost to maintaining the decoupling. Interfaces need to be designed carefully and treated as a public API. One technique that is used is having multiple interfaces on the same service, or multiple versions of the same service, so as to not disrupt existing users of the code.

Privacy engineering is an emerging field of engineering which aims to provide methodologies, tools, and techniques to ensure systems provide acceptable levels of privacy. Its focus lies in organizing and assessing methods to identify and tackle privacy concerns within the engineering of information systems.

References

  1. 1 2 3 Woods, Eoin (2014). "Return of the Pragmatic Architect". IEEE Software. 31 (3): 10–13. doi:10.1109/MS.2014.69 via EBSCOHost.
  2. 1 2 3 4 5 Sinclair, Brendan (October 29, 2021). "Oculus' John Carmack skeptical about efforts to build the metaverse". GamesIndustry.biz. Retrieved March 5, 2024.
  3. 1 2 3 Bell, Alex E. (January 2009). "From the Front Lines: Ground Control to Architect Tom". Communications of the ACM. 52 (1): 21–22. doi:10.1145/1435417.1435428 via EBSCOHost.
  4. 1 2 Stevens, Luke (2014). "A Somewhat Sensationalized History of HTML5". The Truth About HTML5. Berkeley: Apress. pp. 1–12. doi:10.1007/978-1-4302-6416-3_1. ISBN   978-1-4302-6416-3.
  5. 1 2 Spolsky, Joel (2004). "Don't Let Architecture Astronauts Scare You". Joel on Software. Berkeley: Apress. pp. 111–114. doi:10.1007/978-1-4302-0753-5_14. ISBN   978-1-4302-0753-5.
  6. 1 2 3 Buschmann, Frank (September–October 2009). "Introducing the Pragmatic Architect". IEEE Software. 25 (5): 10–11. doi:10.1109/MS.2009.130.
  7. Orland, Kyle (October 29, 2021). "John Carmack issues some words of warning for Meta and its metaverse plans". Ars Technica. Retrieved March 9, 2024.