I have been thinking about what the steps are that you go through when confronted by - altogether, in whole or part - the absence of architecture in the context of an IT organisation. I've tried to capture a putative approach that is - by necessity - focused firstly on bringing some definition to the technology architecture.
In practice the steps you must take are fairly straightforward:
- Establish Baseline (As-is) Architecture Find out what is there; take stock and begin to understand what can be used - what is good and what less so.
- Select Initial Architecture Tooling The purpose of this activity is to have a tool. Its best to defer selection of specialised tools until later - focus on selecting tooling that supports the initial need - typically diagramming backed by some kind of model. For example, I often recommend SparxSystems Enterprise Architect as being a suitable option at this time.
- Select Suitable Architecture Products At the outset you need to determine what artifacts you are going to produce as part of the architecture. You can find some pointers here. The remaining steps decompose some of the initial areas of architecture products you will want to establish in a typical IT organisation.
- Select Products that Represent Technical Assets Determine what artifacts you will produce to describe existing technical assets. The broad classifications of these products will be the subject of a future article.
- Establish A Document Repository You want to get architecture documents under change control with a history of whole made changes and why as early as possible. My default suggestion is to use Subversion in the first case - effective and free.
- Evaluate and Select An Architecture Framework You can use frameworks selectively, but its useful to take advantage of the collateral that already exists
- Perform Technology Forecasting Your initial thoughts will be rough around the edges - but you must begin to consider where you want to be.
- Select Products that Represent Standards Profiles This begins the process of establishing the architecture as an asset that supports its role to facilitate future work.
I'll be looking subsequently at how the architecture inception gives way to an iterative maintenance process - something that is often referred to as architecture vitality.