The Pragmatic Architect

A collection of articles from the the IEEE Software's 'Pragmatic Architect' column, edited by Frank Buschmann (2009-2013) and Eoin Woods (2014-present).

This collections includes 46 articles published between 2009 and 2018.

(stats / articles)
(stats / downloads)
(top articles)




2018 (6)

2018
The Pragmatic Architect Evolves
IEEE Software 2018 (6); by E. Woods, G. Fairbanks

The software architects role has changed in response to the changing demands of software engineering practice.

2018
Managing Energy Consumption as an Architectural Quality Attribute
IEEE Software 2018 (5); by R. Kazman, S. Haziyev, A. Yakuba, D. A. Tamburri

A look at the software for an automated weather station shows that energy can be treated like any other architectural quality attribute.

2018
Design with Your Team, Not for Your Team
IEEE Software 2018 (4); by M. Keeling

There are two popular creation myths about software architectures: the Solitary Architect and the Emergent Architecture.

2018
Agility, Risk, and Uncertainty, Part 2: How Risk Impacts Agile Architecture
IEEE Software 2018 (3); by M. Waterman

The amount of technical risk and the underlying uncertainty in a software development project can affect the amount of architecting that developers perform…

2018
Agility, Risk, and Uncertainty, Part 1: Designing an Agile Architecture
IEEE Software 2018 (2); by M. Waterman

Software architects in agile environments face the dilemma of determining how much effort goes into architecting up front, before development starts.

2018
The Software Architect and DevOps
IEEE Software 2018 (1); by L. Bass

DevOps practices deal with such things as the velocity of releases, how fast incidents are handled, and the enforcement of organizationally specified…

2017 (5)

2017
Should Architects Code?
IEEE Software 2017 (5); by E. Woods

Should the people performing a systems architecture work also develop some of the systems production code Involving architects in…

2017
What Type of People Are Software Architects?
IEEE Software 2017 (4); by M. Erder, P. Pureur

Psychometrics measures mental traits, abilities, and processes.

2017
Architectural Principles for Energy-Aware Internet-Scale Applications
IEEE Software 2017 (3); by R. Bashroush, E. Woods

Optimizing the energy consumption of today's Internet-scale systems will require a radical approach that considers the whole system.

2017
Toward Architecture Knowledge Sustainability: Extending System Longevity
IEEE Software 2017 (2); by R. Capilla, E. Y. Nakagawa, U. Zdun, C. Carrillo

Complex software systems often require continuous refactoring to ensure longevity in the face of changing requirements.

2017
Darkitecture: The Reality Skirted by Architecture
IEEE Software 2017 (1); by B. Prasad

Just as physicists infer dark matter's presence on the basis of its gravitational effects on visible matter, we can conceptualize a "darkitecture" that…

2016 (6)

2016
Software Architecture in a Changing World
IEEE Software 2016 (6); by E. Woods

As software systems have evolved, so has software architecture, with practices growing to meet each era's new challenges.

2016
What's the Architect's Role in an Agile, Cloud-Centric World?
IEEE Software 2016 (5); by M. Erder, P. Pureur

The software architecture pendulum is swinging away from traditional practices and toward agile and continuous practices.

2016
Harnessing the Power of Architectural Design Principles
IEEE Software 2016 (4); by E. Woods

Architecture principles epitomize architecture's function: to clearly define the necessary constraints on a system's design without…

2016
Operational: The Forgotten Architectural View
IEEE Software 2016 (3); by E. Woods

Most software architecture books focus on building new systems.

2016
Data Center Energy Demand: What Got Us Here Won't Get Us There
IEEE Software 2016 (2); by R. Bashroush, E. Woods, A. Noureddine

Given environmentalism's rising tide and increasing energy prices and IT workloads, architects must determine whether they can continue…

2016
What Makes an Architect Successful?
IEEE Software 2016 (1); by J. Klein

An architect whose skills and capabilities match a project's needs will more likely be successful.

2015 (5)

2015
Aligning Architecture Work with Agile Teams
IEEE Software 2015 (5); by E. Woods

Difficulties frequently arise when agile development teams and software architects work together.

2015
Architecting in the Gaps: A Metaphor for Architecture Work
IEEE Software 2015 (4); by E. Woods

The metaphor "architecting in the gaps" can help software development teams clearly understand the software architect's role and how…

2015
Architecture Haiku: A Case Study in Lean Documentation [The Pragmatic Architect]
IEEE Software 2015 (3); by M. Keeling

An architecture haiku aims to capture software system architecture's most important details on a single piece of paper.

2015
Architectural Refactoring: A Task-Centric View on Software Evolution
IEEE Software 2015 (2); by O. Zimmermann

A refactoring aims to improve a certain quality while preserving others.

2015
The Five Properties of Successful Architectural Oversight
IEEE Software 2015 (1); by N. Rozanski

Successful architectural oversight is a key determinant of a software development project's success.

2014 (4)

2014
Harnessing UML for Architectural Description--the Context View
IEEE Software 2014 (6); by E. Woods

This column discusses architectural descriptions and the process of representing and communicating designs and how UML is useful when creating…

2014
Driving Agile Architecting with Cost and Risk
IEEE Software 2014 (5); by E. R. Poort

Five pieces of advice can help architects become more effective in an agile world without having to implement new methods or frameworks.

2014
Architectural Hoisting
IEEE Software 2014 (4); by G. Fairbanks

Architectural hoisting is a design technique where the responsibility for enforcing an intentional design constraint is implemented in the code…

2014
Return of the Pragmatic Architect
IEEE Software 2014 (3); by E. Woods

Many types of architects work in the software industry, but when we consider the breadth of their work and their primary expertise, we find that they…

2013 (2)

2013
Architecture and Agility: Married, Divorced, or Just Good Friends?
IEEE Software 2013 (2); by F. Buschmann, K. Henney

Does agile development need architecture Does architecture need agile development These two questions are debated time and again, frequently…

2013
Innovation Reconsidered
IEEE Software 2013 (1); by F. Buschmann

"Innovation" and "innovative architecture" are topics of broad popularity in software engineering.

2012 (4)

2012
Architecture Quality Revisited
IEEE Software 2012 (4); by F. Buschmann, D. Ameller, C. P. Ayala, J. Cabot, X. Franch

There is a common belief in the software community that nonfunctional quality is fundamentally important for architecture sustainability and…

2012
A Week in the Life of an Architect
IEEE Software 2012 (3); by F. Buschmann

Leadership is the key for architects to balance all their activities and duties with the interests of different stakeholders without losing control of…

2012
Code Matters!
IEEE Software 2012 (2); by F. Buschmann, J. Bartholdt

There is broad consensus that architects should code.

2012
To Boldly Go Where No One Has Gone Before
IEEE Software 2012 (1); by F. Buschmann

Architecture mastery is more than professional expertise in modern software engineering methods and techniques.

2011 (6)

2011
To Pay or Not to Pay Technical Debt
IEEE Software 2011 (6); by F. Buschmann

Ward Cunningham coined the term technical debt as a metaphor for the trade-off between writing clean code at higher cost and delayed de livery,…

2011
Gardening Your Architecture, Part 2: Reengineering and Rewriting
IEEE Software 2011 (5); by F. Buschmann

Reengineering and rewriting are two common approaches for improving system quality-in addition to refactoring, which the last installment of…

2011
Gardening Your Architecture, Part 1: Refactoring
IEEE Software 2011 (4); by F. Buschmann

Refactoring has a more precise definition than common practice might suggest: it's a change that improves the developmental quality of some part…

2011
Tests: The Architect's Best Friend
IEEE Software 2011 (3); by F. Buschmann

When explicitly considering the testability of software-centric systems, architects tend to be more conscious and thoughtful about their design…

2011
Unusable Software Is Useless, Part 2
IEEE Software 2011 (2); by F. Buschmann

In this installment, I turn my attention to the internals of software-centric systems, since usability is also of prime importance for the…

2011
Unusable Software Is Useless, Part 1
IEEE Software 2011 (1); by F. Buschmann

Usability has a significant impact on the success of software-centric systems and products.

2010 (6)

2010
Value-Focused System Quality
IEEE Software 2010 (6); by F. Buschmann

To assure the expected operational and developmental system quality is actually delivered, a test-driven approach to architecture elaboration is…

2010
On Architecture Styles and Paradigms
IEEE Software 2010 (5); by F. Buschmann

Sustainable software architectures portray the fundamental properties of their application domains explicitly, to ensure the virtual world can "mimic"…

2010
Five Considerations for Software Architecture, Part 2
IEEE Software 2010 (4); by F. Buschmann, K. Henney

What are the top five properties that make a software design elegant In this column we follow on from the previous column, exploring the…

2010
Five Considerations for Software Architecture, Part 1
IEEE Software 2010 (3); by F. Buschmann, K. Henney

Many software architectures suffer from unnecessary, accidental complexity: arbitrary flexibility for its own sake, unnecessary features, design…

2010
Learning from Failure, Part III: On Hammers and Nails, and Falling in Love with Technology and Design
IEEE Software 2010 (2); by F. Buschmann

Architects are directly affected when software architecture failure and mistakes occur.

2010
Learning from Failure, Part 2: Featuritis, Performitis, and Other Diseases
IEEE Software 2010 (1); by F. Buschmann

In the first part of this article, the author analyzed some common software architecture mistakes.

2009 (2)

2009
Learning from Failure, Part 1: Scoping and Requirements Woes
IEEE Software 2009 (6); by F. Buschmann

The paper is an editorial on software architecture.

2009
Introducing the Pragmatic Architect
IEEE Software 2009 (5); by F. Buschmann

This paper present the software architecture, design, and development-but through the eyes of a practicing software architect.