Nov 2018
The Pragmatic Architect Evolves
My final Pragmatic Architect column for IEEE Software, co-authored with George Fairbanks, the new editor of the column, looking at the topics covered and how the field is evolving.
Sep 2017
A Model for Prioritization of Software Architecture Effort
This paper was presented at ECSA 2017 and is the result of an observation that a common difficulty for new architects is knowing where to focus their effort to maximise their effectiveness. This led us to wonder whether successful experienced architects have reusable heuristics or guidelines that they follow to help them prioritise their work. This paper describes a study we performed to investigate this question.
Sep 2017
Should Architects Code?
In this IEEE Software Pragmatic Architect column I explore the idea that a software architect should continue to code and explores the benefits and problems of encouraging this practice.
May 2017
Architectural Principles for Energy-Aware Internet-Scale Applications
An IEEE Software Pragmatic Architect column that discusses the role of architecture in optimising energy efficiency of large scale applications and suggests some relevant architecture principles based on a case study at a large Internet firm.
Nov 2016
Software Architecture in a Changing World
An IEEE Software Pragmatic Architect column that discusses how the software industry has changed in five quite distinct generations and how software architecture has changed in response to the challenges of each era and will continue to change in future eras.
Jul 2016
Harnessing the Power of Architectural Design Principles
An IEEE Software Pragmatic Architect column explaining why architecture principles are such a powerful and effective way of communicating architectural ideas and constraints.
May 2016
Operational: The forgotten architectural view
An IEEE Software Pragmatic Architect column describing an "Operational" architectural view, an aspect of architecture which often gets forgotten.
Mar 2016
ICT Energy Demand: what got us here won’t get us there!
An IEEE Software Pragmatic Architect column written with Rabih Bashroush and Adel Noureddine explaining how software engineering practice is going to have to develop if we are to control the amount of energy used by our industry.
Sep 2015
Aligning Architecture Work with Agile Teams
An IEEE Software Pragmatic Architect column that explains how architects can work in harmony with agile teams, strengthening agile delivery while making architecture work more responsive to the evolving needs of the development team.
Jul 2015
Architecting in the Gaps: A Metaphor for Architecture Work
An IEEE Software Pragmatic Architect column discussing my idea that architects can often find where to focus their attention by considering the "gaps" between the elements of the system's architecture.
Nov 2014
Harnessing UML for Architectural Description – the Context View
This article, for IEEE Software's Pragmatic Architect column, discusses architectural descriptions how UML is a useful tool when creating them, using the context view of the system as an example.
Sep 2014
Modelling large-scale information systems using ADLs – an industrial experience report
This paper, published in the Journal of Systems and Software, explains how an organisation decided to create a comprehensive architectural description to capture and understand the design of a large information system. The approach taken included the definition of a simple, very specific, architecture description language. This paper describes the project and a simple ADL that created as part of it.
May 2014
Return of the Pragmatic Architect
This article was the first during my tenure as editor of the Pragmatic Architect column in IEEE Software magazine.  It discusses the fact that there are many types of architect working in the software industry, but when we consider the breadth of their work and their primary expertise, we find that they can be organised into three major groups, the enterprise architects, the application architects and the infrastructure architects. Knowing which group an architect falls into helps us understand their expertise and what to expect of them.
Apr 2014
WICSA 2014 – Architecture description leveraging model driven engineering and semantic wikis
An academic paper I contributed to, with researchers from the University of L’Aquila in Italy, where we explored how it was possible to use a combination of model-driven engineering techniques and wikis to create an accessible, yet powerful, architectural description.
Oct 2012
Relating Enterprise, Application, and Infrastructure Architects
I jointly authored this book chapter with Nick Rozanski.  We explain how the different types of IT architect relate to each other and the important characteristics of each.  It formed part of the research monograph Aligning Enterprise, System, and Software Architectures, published by IGI Global.
Sep 2012
Industrial architectural assessment using TARA
A paper published in the Journal of Systems and Software, describing a lightweight architectural review technique that I had described in shorter form at WICSA 2011. This architectural review method is particularly aimed at situations where there is an existing implementation and a rapid assessment of the suitability of the system for its stakeholders is required.
Aug 2012
WICSA 2012 – Using an Architecture Description Language to Model a Large-Scale Information System – An Industrial Experience Report
WICSA, the research/practice crossover software architecture conference was held in Helsinki in 2012, which was a great location.  I presented a short paper in a working session outlining an approach I designed for using a custom graphical language to represent the architecture of a large system.  Paper and slides here.
Jun 2011
WICSA 2011 – Industrial Software Architecture Assessment using TARA
I had a research paper accepted at WICSA 2011 (in glorious Boulder, Colorado) entitled "Industrial Software Architecture Assessment using TARA" explaining a simple method that I designed while at BGI for assessing the architecture of proposed or existing systems.  I also gave an updated version of the "Software Architecture with Stakeholders, Viewpoints and Perspectives" tutorial, bringing it up to date for the 2nd edition of the book.
Apr 2011
How Software Architecture can Frame, Constrain and Inspire System Requirements
Nick Rozanski and I wrote this paper for inclusion in the Springer Verlag book Relating Software Requirements and Architectures. The paper discusses how a rich and dynamic relationship can be achieved between requirements and architecture, that allows the architecture to constrain the requirements to an achievable set of possibilities, frame the requirements making their implications clearer, and inspire new requirements from the capabilities of the system’s architecture.
Aug 2010
Unifying Software Architecture with its Implementation
A research challenge paper that I presented at ECSA2010 suggesting that something that software architecture researchers should be focusing on is how software architecture concepts could be represented in a system's implementation. Slides for the talk are on the Events page.
Sep 2009
The System Context Architectural Viewpoint
A working group paper that Nick Rozanski and I presented at a working group at WICSA 2009 outlining a new "context" viewpoint to add to our existing set of architecture viewpoints.
Aug 2009
The Generation, Management and Handling of Errors
An article that Andy Longshaw and I wrote for ACCU as a follow on from our original Euro PLoP 2004 paper on the same topic (see below).
Aug 2009
Virtual Panel on Software Architecture
I was asked to take part in a virtual discussion panel on software architecture by InfoQ, along with Len Bass, Grady Booch and Paulo Merson, which was an interesting experience and resulted in the online article linked here.
Nov 2005
Architecture Description Languages in Practice
A workshop report that Rich Hilliard and I wrote to report the work performed during the ADLs in Practice workshop at the WICSA5 conference. Presents an interesting perspective on ADLs, steming primarily from the ADL research community. To be honest, this certainly wasn't the outcome I was expecting from this event. The honesty, enthusiasm to work with practitioners and fantastic sense of humour exhibited by all of the ADL researchers really did cause me to re-evaluate my views on this research community.
Nov 2005
Using Architectural Perspectives
A paper Nick Rozanski and I wrote for the WICSA5 conference describing how I applied our perspectives idea to an EAI system.
Oct 2005
Streamlining Your EJB Tests with Mock EJB
An online article I wrote with Alexander Ananiev (author of Mock EJB) explaining how all types of EJBs can be unit tested using the Mock EJB library. Published on BEA's dev2dev site.
Jul 2005
OCL 1.5 Quick Reference
One of the ways you can sharpen up a UML model and make it more precise is to define Object Constraint Language (OCL) constraints on it. My problem with OCL is remembering the syntax, so I've created a quick reference card to help me look it up when I need it. The card is here in PDF format. Note that the syntax is as of UML 1.5 as that was the syntax I used last time I did some serious work in OCL.
Feb 2005
Architecture Description Languages and Information Systems Architects: Never the Twain Shall Meet?
A position paper written for the February 2005 meeting of the IFIP International Software Architecture Working Group (in Vancouver, BC, Canada) discussing why information systems architects don't use architectural description languages (ADLs).
Jul 2004
Patterns for the Generation, Handling and Management of Errors
A paper, written with Andy Longshaw from the EuroPLOP 2004 conference describing a set of patterns for error handling in information systems