While most business analyst roles don't explicitly require static modeling expertise, developing a better understanding of static modeling concepts can be a measurable forward step for business analysts seeking to develop new competencies. Such skills can be useful in many aspects of the BA work, from obtaining a better understanding of stakeholders' information needs, to documenting those needs in unambiguous ways and communicating them more effectively to the technical team.
The static (structural) model
Most business analysts are more used to working with dynamic (behavioral) models than with static (structural) models. While dynamic models (workflow diagram, use case diagram, process model, etc.) define what a system does, static modeling is used to define what a system is.
Static models, including class diagram, domain model, context diagram, and data flow diagram, deal with the description of objects.Static modeling can be used to unambiguously depict the logical aspects of the data components of a business problem, improving not only communication, but also the discovery and further investigation of business requirements.
How static modeling helps define better solutions
The quality of project requirements starts with a project glossary (a dictionary of relevant terms). A good glossary removes ambiguity, reduces the risk of misunderstandings, and speeds up communication by allowing abstract terms to be consistently used within the project. As the project evolves, a business analyst with solid modeling skills will be able to develop a series of models to augment the natural language requirements documentation produced. Such a BA will be able to choose, among the various types of models available, the best alternatives to properly capture the business subject matter.
Many business analysts focus exclusively in the description of software behavior (the dynamic model). However important dynamic models are, they do not do not adequately represent considerations of structure and dependency management. For example, based exclusively on a use case “update employee profile” for its HR system, a company with many subsidiaries could miss the requirement that employee-employer should be a many-to-many relationship to account for employees working for more than one of its subsidiaries. Focusing on the “nouns” of the system and the relationship between them, static models complements the work done during the dynamic analysis, preventing that important requirements are overlooked. Ideally, BAs will iterate between dynamic and static models, driving them to converge on an acceptable solution.
How knowledge of data concepts can improve project communication
The BA is at the center of all communications among the groups involved in a software project, interacting with everyone from project sponsors and subject matter experts to developers, database administrators, QA, user interface designers, and other professionals on the project team. Besides being useful for defining and communicating core aspects of software requirements, knowledge of static models can help BAs act as a “bridge” to help teams overcome problems created by specialized roles that have difficulties relating to each other, as in the following scenarios:
-
a data architect too focused on the overall data needs of the organization is failing to take into consideration the immediate needs of a project team;
-
a database administrator overly concerned with “protecting” the databases from change is slowing the progress toward meeting the data needs of a group of stakeholders;
-
a senior Java developer unfamiliar with data concepts is refusing to discuss database normalization during the design phase, putting in risk the consistency of the application data;
-
a data modeler used to the traditional model of creating a mostly complete domain model upfront is having trouble working with a team using an agile/evolutionary framework.
A BA with good knowledge of static modeling will be much more effective at avoiding tension between those different roles and at removing the communication barriers that prevent individuals from reaching consensus about what needs to be done. Ellen Langer, professor of psychology at Harvard University, did a study that showed that including listeners in the reason why something is happening increases their cooperation rate from 60 to 94%. Oftentimes alternatives or constraints surface during a project, and modeling kills will help the business analyst to act as an effective mediator. Knowledge of data concepts will enable the BA to become a better liaison between the business and technical teams and between different specialized roles, helping ensure that the optimal decisions can be made throughout the implementation process.
Static modeling and related skills a business analyst should develop
Static models are important to get across project requirements in an unambiguous, standardized way, and help ensure a better alignment among different sets of stakeholders and members of the project team. You might find that enhancing your knowledge about the following topics will help improve your elicitation, communication, negotiation, and collaboration skills:
Relational database technology
The basics of RDBs, the challenges surrounding the technology, and when it is appropriate to use RDBs.
Object orientation
With the prevalence of programming languages such as Java, C++, etc., and agile development, object-oriented technology has become the approach of choice for software development. BAs should gain a basic understanding of the object paradigm to be able to understand where application developers are coming from, and to be able to communicate well with them. This includes understanding basic concepts such as inheritance, polymorphism, and object persistence, as well as class normalization, the object oriented version of data normalization.
Unified Modeling Language (UML).
UML diagrams, when appropriately used, can help the project team overcome many project complexities. UML can be used as part of modeling, analysis and documentation of business requirements, as well as during the transition to software design. In addition to the more common UML dynamic models, such as use-case, workflow, and sequence diagrams, business analysts should make an effort to develop an understanding of the class diagram (the UML standard type of diagram for static modeling, used to represent the domain model).
How object and relational technologies work together.
Because projects will typically use object technology and relational databases together, it is important for a BA to understand the mismatch that can happen between the two technologies, and how to overcome it.
Fact models
As Ronald Ross explains in this article, a fact model provides the basis for consistent and unambiguous verbalization of business rules and other form of operational knowledge. Fact models are useful to unambiguously communicate ideas between the business and technical domains because they use verbs to clarify important ideas that would normally remain hidden in a data model or class diagram.
Author: Adriana Beal has a B. Sc. in electronic engineering and an MBA in strategic management of information systems. For the past 10 years, she has been identifying business needs and determining solutions for business problems for a diverse client base that includes IT, telecom, and major U.S. financial institutions. Adriana offers executive-level, management consulting on technology and process solutions and expertise in business-side IT operational functions and processes at Beal Projects.