Skip to main content

The Importance of Business Domain Modelling

As human beings we created language and learned to classify objects in the world around us so that we could share concepts and ideas. Then we learned to write … and we haven’t yet learned when to stop! Often, repeated refinement of our customer’s problem and need statements are seen as measures of quality and completeness of requirements. It’s almost as if the greater the weight of the document the higher the quality!


The purpose of business modelling, and of our role as business analysts, is to describe the business and its intentions. According to The Unified Modeling Language (UML) User Guide, “a model is a simplification of a complex reality … so that we can better understand …” A model allows us to find meaning in the business domain and to communicate an understanding effectively to others. It helps the business owners to visualise together with us, and to specify their intentions in a disciplined and rigorous way. It is difficult for the business to manage what they cannot see. In a model, existing concepts and new requirements can be seen logically related to each other.

The beauty and uniqueness of a business is usually found in its business process and most business analysts are familiar with modelling the business process at some level. If we can answer the question “what happens next?” then we are dealing with a dynamic view of the world, i.e. depicting the behaviour and activity of the business area of interest. For example, the following (simplified) diagram of an outdated UK government business process to do with the international trade of food, specifies the business activity requiring automated support.

importance-businessdomainmodeling1importance2.png

The (simplified) use case summary diagram depicts the proposed use of the system for the trader. To specify our requirements, we have developed the business process and the use cases in a model. Is there more to do? Can we assume that any audience of this view will understand the concepts referred to – the ingredients of the business process recipe? This article proposes that a critical part of requirements elicitation is to understand and provide a static or structural view of the business domain.

We may ask “What is the point of business domain modelling?” The point is that we need to understand the things that we are referring to in the business process and use cases. Remembering that human beings need to ‘classify’ objects around them in order to understand the world and to communicate an understanding, we use the concept of a “class” to sketch the important things that exist for our customer. It is a view of what we need to understand and reach agreement about.

It is the view that gives us the truth – it communicates the things that are true no matter how we behave, no matter what time of day it is and no matter where we are in the business process. In this example, we need to answer the questions: What is a “certificate”? Can a “trader” apply for more than one? What does a certificate certify?

importance3.png

For readers not familiar with the UML, the food export business domain model, in the form of a class diagram tells us that a Trade is an aggregation of a set of Commodity Goods Items. An Export is the type of Trade relevant to this piece of work, along with the CAP Export type Certificate.

In this example, if we do not understand the important concept of a certificate and how it relates to a “trade”, the proposed software may not capture the critical business rules to prevent the trader’s potential loss of thousands, even millions of tax refund. Seeing these two concepts, and the business rules that associate them, pictorially, in a formal standard notation, makes it easy for us to ask the right questions and for the business to see whether the description of their business and of their need is correct. Consider the impact of not understanding the ingredients of the business process recipe.

Only the important detail has been captured for the food export requirements, i.e. that one or more Certificates can authorise a single Trade and a single Certificate can authorise one or more Trades. This is important because if a Certificate is not fully ‘used’, the tax refund for the unused part cannot be claimed by the Trader.

It took many questions to understand this because some traders matched their certificates one-to-one with their trades; some traders had lost certificates, some had let certificates expire, some had checked that government regulation would allow them to use up portions of certificates to authorise a trade. It would have been difficult to find those questions had I not drawn what the traders were saying and instead, simply had written down verbatim what they thought they wanted based on their problems. Modelling the requirements was an easy way to resolve any contradictions and to capture the most important business rules to provide real benefit to the trader.

It is important to model the business domain or as my favourite writer on the UML, Martin Fowler says, the “logic that is the real point of the system”.

The alternative is to write a similar amount of text as found in this paragraph for each “requirement” and lose the advantage of adding to the model. In addition, the process of documenting, reviewing and refining this text would cost a great deal more than asking our business customers to sign the whiteboard with the confidence that the domain model / use cases (i.e. requirements) covered on it have been captured correctly.

So often errors are found in traditional requirement documents after sign-off because so many statements were made, unrelated to each other, where no logic could be applied to associate them. Another reason for so many errors could be that the requirements i.e. a very long list of textual requirement statements, are never read – they are so very boring and time-consuming to review.

I once reviewed a high-level requirements specification comprising 300 pages of textual requirement statements. I counted 321 instances of the word “customer” and 656 written instances of a few other major business classes. I counted nearly 7000 instances of eight common words such as “to”, “the”, and “system” – words of no value or interest. I wonder how many more words of the total 38000 were unnecessary and meaningless, and that required time to be written, read, refined and read again by numerous people up and down stream of the author.

In a requirements model, these few words of real interest would be written a few times only. In a business domain model, or class diagram, expressing those requirements in relation to each other, it would be necessary to write each word once only as the name of a class (while in a workshop with our business customers of course). If the business architecture was already established in the organisation, then it would be necessary to simply reference them, rather than re-invent them (again!); one would simply familiarise oneself with the area of interest and then visualise the proposed change together with the business owners.

Business domain modelling can be applied to any concept.

importance4.png

Modelling and communicating business concepts in a standard notation keeps it easy for our customers … our service remains consistent and audiences beyond the here and now can understand and reuse our work. When I draw a purple triangle, I know what it means. You, the reader, do not. However, if you or I were to draw the following simple class diagram, every single business analyst and solution architect in the world, even the occasional project manager, should be able to understand it.

importance5.png

I am currently working in a project team with English speaking Russians – there is no language barrier when we show them our model drawn in our common language – the UML. The UML modelling notation, for the purposes of describing business, commonly uses about 15 simple symbols which can be nonchalantly explained to subject matter experts during a workshop session without burdening them with any lengthy training. My experience of appropriately exposing the UML to my customers has been, without exception, very positive.

Modelling or graphical notations were invented to precisely convey a concept and to depict a great deal of information in a concise way, rather like electrical circuit diagrams or architectural drawings. Their other purpose is to act as precise shorthand for what we verbalise and know to be true. Would it be natural for an electrician to write “the electrical system must allow the electrical current to flow into a capacitor which must discharge into a resistor”? A simple line drawing with universally understood meaning and without ambiguity suffices to say the same thing. Its advantage is that further requirements will be part of the same drawing and any defects or conflicts can be spotted easily in relation to the other elements on the diagram. In addition, should any changes to the implemented electrical system be necessary later, the model could be reused by other people to understand the current system and the impact of the proposed changes. That is impossible with hefty volumes of prose.

Business modelling is much more fun than writing a requirements novel that few people have time to read. I call on project managers and business analysts to dispense with their document weighing scales and embrace clear, correct and effective communication of ideas and business concepts.

In a future article, we will look at modelling the business actors and areas of interest in order to express the current business problem and to propose the goodness or scope of a project i.e. setting the scene or business context ready for further analysis.

This article is based on one of the “Truth, Beauty & Goodness” series of presentations named “The Importance of Business Domain Modelling” given by the author at the Business Analysis World Symposium 2008 held in Wellington, New Zealand. The author wishes to express her thanks to the following people for their thoughts and ideas freely contributed to this article: Lawson Davies, Brent Lewis and John McPherson.

Copyright © Suzanne Jane Maxted, October 2008, [email protected] or [email protected]


Suzanne Jane Maxted is a Certified IT Professional Member of the British Computer Society. She gained a Bachelor of Honours degree from the University of Sussex, England, in Mathematics & Statistics with European Studies (French). Suzanne is a business analyst with 16 years information systems experience from around the world. She is an accomplished workshop facilitator and presenter in the business analysis space and has given presentations to senior Member State representatives at the European Commission and at the United Nations, among others. She takes pride in applying logic and order to differing business viewpoints and in communicating common understanding. Suzanne teaches ballet to 3-8 year olds on Saturday mornings and fills her spare time dancing and having fun with her two little children.

Test Plan

Last month I discussed the justification for testing.  Here are the minimum testing requirements of any organization.  If you are a client purchasing software or contracting for the development of software, then consider requesting proof that it actually works.

Acceptance Tests
Responsibility: Quality Control

  • QC develops acceptance tests for key system features
  • QC adds to the acceptance test suite as new features are implemented or customers contract for customizations

Unit Testing
Responsibility: Developers.

  • Developers write unit tests as an integrated part of the code base
  • In many cases the test code will be as large as the system of test

Release

  • A developer does not release code until
    • The code is written
    • All unit and acceptance tests pass.
    • All requirement and test case documents match and accurately reflect the actual code delivered.
  • Three Components of any Release 
    • Code Base 
    • Testing Base 
    • Documentation

Defect Resolution

  • Unit and acceptance tests are written to replicate any reported bugs. 
  • The entire test suite, including the new tests, is executed to ensure the bug has been      resolved and no new bugs have been introduced.

ITIL for BAs. Part II

Service Strategy

If one purpose of any strategy is to express a consolidated, comprehensive view of mission and direction, then the BA should expect that an IT organization’s IT Service Strategy is embodied within the IT organization’s structure and the roles defined.

In ITIL V3 that embodiment of IT Strategy is realized through the role of the product manager, whose responsibilities include: 

  • driving service strategy 
  • managing services across their entire life cycle (concept, design, transition, operation, retirement) 
  • ownership and maintenance of the service catalog, an essential document that describes IT’s service capabilities in the customers’ terms
  • understanding IT’s service models and how to drive changes and improvements effectively through those models
  • knowing the costs and risks associated with the lines of Service they represent
  • evaluating new technologies and operating models that can be leveraged for greater efficiency and effectiveness
  • providing financial analysis of existing, planned, and proposed services
  • supporting the business in building business cases for new services or improvements to existing services

The above responsibilities are only half of the story, as they are primarily inward-focused.  On whose behalf is the product manager carrying out those activities?  In ITIL V3 it is the primary relationship the product manager has with the business s through the Business Relationship Manager (BRM), who represents the customers and their IT service requirements.  Together the product manager and the BRM work to 

  • understand the financial elements of IT Service delivery
  • express the demand the customers will have on IT Services (new and existing)
  • build business cases from a life cycle point of view
  • manage the resulting service(s) within the context of their respective IT service and business solution portfolios

In BA terms, the BRM is the business analyst.

It is interesting to note that the definition of the product manager directly addresses (I think) the question of whether a business analyst should be part of the business or part of IT – the answer is both, for the ITIL V3 product manager is, in essence, a “business analyst”, with a specific focus on IT Services.

For more information, ITIL Service Strategy Appendix B section B2 presents a concise summary of the nature and value of those two roles.  ITIL V3 books are available from most major booksellers and also from the IT Service Management Forum (itSMF) at the publications section of their Web site at http://www.itsmfusa.org/.

How to Complete a Software Development Project on Time, on Budget

Recent industry studies show that modern software projects on average spend 40 percent of their effort on rework, and as a result, over 80 percent of software projects overrun budgets, miss schedules and substantially reduce delivered functionality.

It’s a software development business analyst’s nightmare – that doesn’t seem to end.

The potential for error is further heightened because, unlike mechanical or civil engineering where the results of your efforts are tangible, the product of software development is largely conceptual.  When a manager is directing a complex project with several teams, the potential for mistakes or misdirection is especially magnified. Unlike a bridge being built from two sides of a river, significant discrepancies can creep in without an obvious reality check.

To avoid costly errors and delays, business analysts should consider seven key steps in tackling software development projects.

  1. To manage software projects effectively, business analysts need to have an explicit definition of the project’s scope. A clear demarcation of what is in and what is out, what is essential and what is would be nice to have, and what needs to be delivered at the end of the process. All major stakeholders and team members need to have a common understanding of the project goal. Ambiguities at this step can lead to major problems later that can only be resolved by a significant waste of time and money through rework.
  2. Develop concepts into clear requirements. Once stakeholders agree on a common goal, they need to refine their understanding into precise requirements, understandable to all. While it is common for requirements to evolve, starting from a specific requirements baseline provides a foundation to ensure the development process doesn’t drift. By ensuring that stakeholders are deeply involved in defining requirements, business analysts have a solid, universal understanding of the project’s path and scope.
  3. If the project is complex, use models that can be updated as the project evolves. Models represent the product in varying levels of detail and from various perspectives.  Sometimes, there is resistance to building models due to the effort required to maintain them, as new and different elements are incorporated. It is precisely because software development is so complicated that models are needed. With so many conceptual layers being tied together, it can be difficult to keep track of each and every element and their interrelationships. You wouldn’t consider building a bridge without a model. Why would you consider developing software, which is every bit as complicated, without one?
  4. Manage expectations through the project. As software development proceeds, stakeholders often suggest that more functionality be added to the project beyond its original intent. It’s necessary to rely on more than the legal contract to keep projects focused. As more people become involved in the project, regular get-togethers become even more important to ensure that all stakeholders stay aligned.  
  5. Keep the model up to date. Feedback loops are an essential part of most successful projects, and software development is no different. While it might seem time-consuming, keeping the model current provides a touchstone for all stakeholders as the project progresses. It helps maintain focus and exposes when any aspect of the development drifts from its original, or modified, intent. As much as possible, design the model so that it can be updated automatically.
  6. Decompose the model. The model should be designed in such a way that its constituent parts align with work tasks of the team.  In this way, the model parts can be delegated to individual teams to develop or maintain, and later reassembled as needed, to ensure overall integrity at regular milestones.  The process should be managed so that teams, including subcontractors, can come back to the model every so often for a reality check. By so doing, the business analyst keeps the potential for significant rework or outright failure at a minimum.
  7. The process should be built so that all aspects of the model, including those that have progressed, are pulled together regularly to ensure that everything still fits and that modules under development are still proceeding toward the ultimate goal.

But Won’t it Cost More?

Using a management structure that relies on a series of reality checks requires a project budget that allocates time and money for periodic review. The result, however, is that this marginal investment yields far more payback in terms of reduced rework.   An accurate and representative model is a catalyst for more valuable and more frequent feedback. Feedback loops are designed precisely to reduce risk and are found in nearly all engineering disciplines.

With software development projects spending on average 40 percent of their effort on rework, it is worthwhile to use an effective model to ensure your project achieves success.

Consider the alternative: A project that the client rejects, one that has to be reworked hastily, held together by shunts and duct tape. Not only are project funds wasted unnecessarily, but the delivered product’s quality suffers.   Status quo is the expensive path.


Tony Higgins is Vice-President of products at Blueprint Systems. He can be reached at [email protected].

ITIL for BAs. Part I

If you are a regular reader of this blog, you know of my deep interest in both ITIL and BA, and particularly their interdependencies.  One driver behind that interest is my observation (validated by numerous colleagues) that, all too often, people in specific practices (PM, software development, IT operations, BPE, SOA, BA, etc.) are strong and focused in their domain but neglect the touchpoints and integrations with other practices.  It is a sort of “best practice” silo phenomenon analogous to the technology silos in IT organizations.

There is a significant amount of overlap between the BABOK and ITIL, with lots to sort out.  Furthermore, the differences between the two practices in terms of activities, inputs, outputs, roles, metrics, and organizational structure are noteworthy, and because of ITIL’s significant dependence on strong BA, those differences will need to be reconciled to get the most out of our BA/ITIL integration efforts.

In this post I would like to kick off a deeper treatment of the BA/ITIL connections, starting with a description of ITIL v3’s overall structure in terms of the service life cycle and key processes.  Future posts will then cover specific touchpoints between BA and IT.

So, let’s begin at the beginning.  ITIL is all about encapsulating IT (the infrastructure and the organization) such that the users and customers view IT as a service provider that is integrated into the business.  ITIL’s definition of a service is:

a means of delivering value to customers by facilitating outcomes customers want to achieve without the ownership of specific costs and risks

In other words, by adopting ITIL, an IT organization is saying to its customers, “tell us what you need, in your terms, and we’ll take care of the nuts and bolts”.  This means that the business sets the context that defines the value of IT’s contribution, which is, delivering solutions that satisfy requirements that facilitate desired business outcomes.

When you add up (a) the complexities of IT-based solutions, (b) the increased rate of change in business and IT, and (c) management’s need for monitoring and control, it is clear that a BA needs to be tightly involved with IT throughout the life cycle of an IT-based solution.

ITIL v3 is especially well-suited to accommodate such involvement.  In its simplest terms, the core of ITIL v3 is a set of five books reflecting the IT Service life cycle phases of

  • Service Strategy
  • Service Design
  • Service Transition
  • Service Operation
  • Continual Service Improvement

At this level it is easy to see that the service life cycle is a very effective context for the BA’s activities.  Let’s look one level deeper now, into the specific processes associated with each of those life cycles – the process names alone are sufficient to suggest the breadth of opportunities BAs have to drive BA/ITIL integration:

  • Service Strategy
    • Strategy Generation
    • Service Portfolio Management
    • Demand Management
    • Financial Management
  • Service Design 
    • Service Catalog Management
    • Information Security Management
    • Supplier Management 
    • IT Service Continuity Management
    • Service Level Management
    • Capacity Management
    • Availability Management
  • Service Transition
    • Transition Planning and Support
    • Change Management
    • Service Asset and Configuration Management
    • Release and Deployment Management
    • Service Validation and Testing
    • Evaluation
    • Knowledge Management
  • Service Operation
    • Event Management
    • Incident Management
    • Request Fulfillment 
    • Access Management
    • Problem Management
  • Continual Service Improvement

For the BA, several of the above processes, such as Service Validation and Testing, Change Management, and Financial Management, jump off the page because of their relevance to BA.

Beginning with our next post, we’ll start to tackle the above processes individually in terms of their overall purpose and their relevance to BA as defined in the BABOK.

Meanwhile, I encourage you to post your comments/thoughts!