We architects like creating models, but do we ever ask ourselves what exact questions users have? Who will be the users of the model, what’s important to them, what are their use cases? What does a good model do that allows them to get the answers they need more easily?
1) What are the key objects within the scope of this system or process?
Typically a model is dealing with some system or process within a much wider context and the boundaries of that system or process may not be clear. What’s in scope for your project? What are your team’s responsibilities?
A good model would ensure those objects contained within your model are well defined and clear to the user. That may mean using the common industry terminology or the terms that are well understood with your organisation.
2) What is the impact of a change?
Most models include some level of relationship between the objects within the model. Those relationships and even types of relationships greatly help the user understand dependencies and behaviours between those objects. Whether it be from a system design, support, or a process execution perspective. Relationships help users understand the impacts of changes, or can help with root-cause problem analysis.
As your models grow in complexity, such dependencies can become harder and harder to answer. That’s where a model (rather than a diagram) that supports the ability to search and return all relationships or dependencies can become invaluable.
A good model would ensure those relationships are either fully complete, or at the right level of abstraction for the key users to answer the majority of questions they would have without over complicating the model itself.
3) How do I find out about the organisation as a new employee?
As new employee (or contractor) trying to understand the organisations systems, processes, and people structures, where do they refer to to find such information? New employees needs to understand the current environment as quickly as possible to become productive. Often colleagues are busy and induction processes are shorter than they should be. An intuitive model where new employees can discover the answers to specific questions (rather than be overwhelmed by the available documents) can save everyone a lot of time.
A good model would allow the user to search an object name to navigate the associated sub-model and then traverse that model to gain more context. It would also include object name aliases and tags to further assist the new employee if they didn’t know the exact terminology used within the model or organisation.
Are the models you’re creating allowing these questions to be answered? What other questions do you think a model should answer?