Pragmatic Approach to Describing Solution Architectures
- Friday, May 8, 2009, 10:00
- News Archive, eNews
- Add a comment
By Mike Walker, Microsoft
The return on investment of technical documentation is often not realized and documentation is frequently looked upon as a necessary evil. Creating the right architecture descriptions can help guide decision making at the various stages of the IT life cycle, however, there are limitations on formalized structures, information models, and intelligent tooling that takes the current architecture documentation to the next level of usefulness. In this article, we look at how we view, approach, and maintain architecture descriptions, and consider how this process can be improved. Since the dawn of information technology (IT), engineers and architects have created reams of documents to describe their solutions. These have been published in three-ring binders and placed in obscure places on bookshelves, eventually to collect dust and be forgotten – something with which engineers and architects have had to deal as a fact of life. As time has passed, documentation has evolved from a listing of detailed methods and procedures to the separation of multiple aspects of the solution from the detailed APIs and user-interface (UI) design to the architectural aspects. Integration with developmental and architectural processes furthered this activity and, eventually, became a required and common practice. By doing so, governance processes in many ways restricted forward progress. In many ways, governance has created both justified and unjustified restrictions to forward-moving progress on designs and coding, if a set of documentation had not been completed. This has led to frustration and productivity blockers. Current architecture documentation does not live up to the promise of providing return on investment in the design process. Often, the design that is articulated in architecture documentation is not realized in the final implemented design that is hosted in a production environment. This pervasive growth of documents shows how critical the information is to the support of the software-development life cycle (SDLC). We now see the same with the support of architecture efforts, too. There are a number of challenges that occur with this paradigm.
Summary
Figure 1: Documentation, increasing at an accelerated rate
As Figure 1 shows, we are adding more and more documents to an already large portfolio of documents that must be completed. In the past, this was manageable; now, however, documents can be bloated, and there is a higher probability of information being duplicated. Often, this is a result of tightly coupling a document with a process step. The goal is to solve the deficiencies and challenges with current architecture documentation while preserving the aspects that do work and have been assimilated into the daily lives of architects. To do this, we will explore the following concepts:
-
- Alleviating challenges with current documents – Templates and new thought-provoking ideas will be introduced that challenge the existing ways of documenting architectures.
- Living architecture designs – Designs often are static and do not have a life outside of the development life cycle. We will introduce ways to change that.
- Enhancing decision support – Often, there are templates and checklists that give an architect a common way to think about problems. This is an accelerator to solving problems that have yet to be solved or identified.
- Deriving to solutions – Given how the human mind works, writing down a design to a specific problem in “black and white” often shows gaps in current thinking.
- Common means of collaboration – These provide a working information store to share and collaborate on architectures with team members.
- Supportability and maintainability – Documents provide important information on how a system was built. This provides support personnel with vital information for solving postproduction issues. For architects, the understanding of current system architecture will allow them to build out a set of strategies for the enterprise
Rethinking the Traditional Architecture Document
The most common and pervasive interface for creating architecture descriptions is Microsoft Office Word. Office Word is part of the Microsoft Office suite of productivity tools. With documentation, there are many other tools that play a role in the documentation processes.
Figure 2: Microsoft Office Word reduces complexity and cost
As Figure 2 shows, Office provides a way to reduce complexity and costs significantly. The Office suite is easy to understand and most users already have them on their desktops. Augmenting the existing Office tools to make them fit the usage of architects is particularly ideal. It maintains a consumable amount of complexity while limiting the overall costs. However, Office Word is not the only tool that is used in the architectural processes. There are many other tools that have roles to play in how we document our architectures. These tools include the following:
-
- Office Visio
- Office PowerPoint
- Office Excel
- Office SharePoint
It is important to understand the context in which these tools interact.
Figure 3: Other productivity tools playing a role in the documentation process
Figure 3 shows an illustration of how other productivity tools play a part in architectural processes. We can assert quickly that there is not just one tool that used in the documentation of architecture; myriad tools are used for collecting information from or publishing to. If we want to solve the challenges with the process, we should keep this in mind.
Optimizing Office Word to Describe Architectures
The underlying goal is to change the role of Office Word from simply a word processor to more of a UI for designing architectures. Applying structured UI concepts to Office Word provides many benefits to the architecture document, including the following:
-
- Structured content – Information can be better described in the document. We want to do this because of the challenges mentioned regarding how information does not integrate well with process or future design activities. One example is the process of importing a model into an architecture document. Often, we import a picture that represents a model of the specific viewpoint of an architecture. If we had an information model, we could specify that the model imported is indeed the logical model, instead of a generic image file.
- Extensible – With a little more structure, information has meaning and definition. This makes the information extensible to other processes downstream.
- Consumable – Ability to consume external content is also possible with a more structured interface. As an example, if you so choose, you could import external architecture information from other systems to automate your design efforts.
Through the use of the Office Word 2007 features that center on XML, we can truly start to extend this interface. Word does so by providing:
-
- Embedding XML documents – embed XML file into document for full data qualification.
- Office Word XML format – fully describes the formatting from the data through XML to have true separation of the formatting versus the information.
- Content controls – map most content controls to elements in XML data attached to a document.
Building the new UI for the architecture documents is easier in Office Word. A series of out-of-the-box functions are provided in the Office Word interface. For the architecture document, we will use the built-in tools that Office Word provides to create this new UI, which will enable us to describe our information in a meaningful way.
To change fundamentally how architects use a system-architecture document, we must look at what services Office Word provides to add additional capabilities that will automate and create rich metadata integration services. For this solution, we will use a real world reference architecture called the Enterprise Architecture Toolkit (EATK). This toolkit will show how to alter Office Word from a word processor to a UI for describing architectures in a new way. The Microsoft Office environment provides rich extensibility that will allow developers to extend in a meaningful way. To do so, an architectural approach will have to be taken. By separating out layers and capabilities, approaches and technologies can be identified to derive to the right solution.
The Architecture of the System-Architecture Document
