3 modeling perspectives you need to know
When we’re faced with complex problem or question we need to find the right answer to it. In order to find an answer to complex question we need proper model. What we want to do is to build software that solves the given problem. How we build software depends on how we model the problem. We can look at the system from different perspectives and build models that reflect those perspectives. Let’s look at them.
Modeling perspective
Modeling perspectives are approaches to modeling software and systems. Each of them can be applied in different ways. In book called “Rethinking Systems Analysis & Design”, by the late Gerald M. Weinberg, stays that each system (defined broadly) has:
- Constant structure in time – Being
- Its functioning, reversible changes in time – Behaving
- Its evolution, irreversible changes – Becoming
It’s accurate observation and powerful tool. Equipped with this knowledge we may start to look at our systems in different ways.
Being
The being perspective is mainly focused on the structure of the system being modeled. Understanding how the system works as it currently exists is crucial, without considering external influences or future changes. This perspective is best suited for modeling software and systems that are relatively static in nature.
Behaving
The behaving perspective takes into account the dynamic behavior of the system. This perspective looks at how the system responds to external signals and how it behaves over time. This perspective is best suited for modeling software and systems that are expected to change over time in response to external influences.
Becoming
This perspective looks at how the system can evolve and adapt to changing conditions. It’s mainly focused on the potential future of the system. This perspective is best suited for modeling software and systems that are expected to grow and change over time. The important thing is: evolution of system is irreversible.
Modeling implications
All three perspectives allow us to look at the problem from different angles and show us what we can focus on when designing the system.
Being – data structures/entities
Behaving – methods/functions
Becoming – transforming/mapping to another being
When we mainly focus on being, then our primary artifact is the structure of the data. We give less attention to behaving and being, so we may end up with great database model, but poor system functionality and clean code.
When we skip becoming perspective entirely, we may end up with single, large entity that fits to all business cases our system needs to support. Those systems are hard to understand, maintain and hard to develop.
Organization implications
From Conway’s Law we know as following:
Any organization that designs a system (defined broadly) will produce a design whose structure is a copy of the organization’s communication structure.
Our system design mirrors the way we communicate in organization. The same goes with modeling perspectives. The way we communicate and work as an organization influence how we look at given problem. If company we work in focuses on its form and structure, we will design system using being perspective. On the other hand, when our company’s business goals are focused on action, processes and functions, we will intuitively model solutions with behaving perspective in mind. When our organization constantly pivots and looks for competitive advantage, then the becoming perspective is coming on a white horse.
As we see everything is connected. When we want to design system, we should check what our goals are, how system will be oriented (static vs dynamic) and how our business clients work (structure or action or privot), and then select proper perspective. If we see that one of the perspectives naturally fits our problem, but we cannot cooperate with our business stakeholders on it, look what business goals are. Maybe that is where the problem lies. Goals and KPIs do not align with the problem.
Conclusion
By considering all three perspectives when modeling software and systems, a more complete understanding of the system can be achieved. The being perspective can provide insight into the current structure of the system, the behaving perspective can provide insight into how the system behaves in response to external influences, and the becoming perspective can provide insight into how the system can evolve and adapt to changing conditions. Applying all three perspectives can provide a more holistic view of the system being modeled. All three perspectives can be used to review how our organization work and which perspective will be dominant during modeling session.
Resources
- Conway’ law, Wikipedia https://en.wikipedia.org/wiki/Conway’s_law
- Rethinking Systems Analysis and Design, Gerald M. Weinberg https://www.amazon.com/Rethinking-Systems-Analysis-Design-Weinberg/dp/0932633080 . Buy used. Let’s give books a second life.
- An Introduction to General Systems Thinking, Gerald M. Weinberg https://www.amazon.com/Rethinking-Systems-Analysis-Design-Weinberg/dp/0932633080. Buy used. Let’s give books a second life.