RAMA: Rationalization of Application Management and Architecture
Rationality is a set of concepts and behaviors that are logically coherent, consistent, and scientifically analyzed through observations. Rationalization is a process that apply rationality to various entities and their activities. Max Weber used the term “rationalization” to replace societal traditions, values, and emotions as motivators with rationality and reasoning. A rational society is expected to behave rationally. There have been many articles and books written to support or dispute Weber’s rationalization of society. The notional rational behavior is a requirement in many game-theoretic models; without rationality it is impossible to obtain outcomes. Rationalization is often associated with goals and outcomes; as in capitalism, where profiting is the goal. In sociology there are three main dimensions: people, society, and governance. People expect individual freedom. Society expects rational behavior of people. Governance dictates rationality. People take actions in a rational society within the norms of the governance. In other words, people have individual behavior who perform actions that affect the outcome of a society, and the outcome is defined by societal norms or governance.
Weber identified four main types of social actions:
(1) Zweckrational actions which are actions that driven by goals and outcomes. Often how the goal itself is achieved is irrelevant. For example, it can be achieved by irrational or even illegal means.
(2) Wertrational actions which focus on rational means of achieving goals. The goals themselves may be irrational.
(3) Affective actions are based on human emotions and sentiments.
(4) Traditional actions are based on past traditions.
The world applications, that includes application management and architecture is very complex. An enterprise has many applications that drive the business outcomes. We can think of applications as people with behavior, the management of applications as the society, and governance is defined by the framework of application architecture. When we take this Weber’s view of Rationalization of Application Management and Architecture (RAMA), we get interesting outcomes, structures, and behaviors. It is important to keep in mind that rationalization when it is executed in a purist form can lead many irrationality.
George Ritzer applied Weber’s rationalization theory to understand “McDonaldization of Contemporary Society”. He identified four key elements of Weber’s rationalization: (1) Efficiency, (2) Calculability, (3) Predictability and (4) Controllability. There is a fifth element that is implicit in Weber’s rationalization, which is irrationality of rationality. In the rest of this article, we will go into the details of these four elements in the context of application management and architecture. The following figure illustrates the four elements of rationalization.
Applications that behave rationally should perform predictable actions and produce predictable behaviors. This is not always true. There are two main types of application bugs (introduced by Jim Gray): (1) Bohr bugs and (2) Heisenberg bugs (or heisenbug). Bohr bugs (or bohrbugs) are predictable and easy to fix when found. Heisenbugs are notoriously hard to find and behavior irrationally, especially when dealing with concurrency. Managing applications that are not predictable leads to poor controllability of the applications. In the pre-devops model applications that follow packaged applications with longer release cycle behave more rationally, in the sense, that changes to the applications happen at predefined change period and change window. The agile devops world with continuous deployment and delivery applications are more prone to irrational behavior. The chaotic world of devops is still not accepted in many of enterprise world. This is due to predictability of applications. When changes happen often the application management becomes inefficient. But the there is more freedom to push new features and bug fixes faster in the rationally chaotic world applications. It is important to ensure that application management and application architecture are rationalized in the devops world. There needs to be structure, which we can call as rationalized chaos of application management and architecture. Simplification and standardization is important to ensure predictability.
Rationalization allows controllability of applications. There are several levels of controllability. Kubernetes provides a “state-based controllability” when a running container changes the state specification, such as two running containers, the Kubernetes controller will spin a new container when one of the two container dies. There are application management that are resource-based. For instance, in Ethereum blockchain and a smart contract is controlled how much resources it consumes based on specified “gas units”. The key goal of controllability is to ensure rational behavior of applications. When application start to become irrational, application management kicks in to control the behavior of the application. Automation is key to ensure controllability.
Applications that are rational should also cost less to an enterprise. There are two types of costs: (1) cost savings and (2) cost avoidance. Cost savings is reducing or eliminating irrational behavior of applications. For instance, in the cloud world, and application should not be running when there is no work being done, idle running cost money. Cost avoidance is sunsetting applications that should not be running. This includes avoiding licensing fees. Application management and architecture should ensure efficiency of application. Rationalization plays an important role in ensuring efficient operation of applications. There is a related concept called bounded rationality that focuses on “satisfying” instead of “optimizing” decision making. Here the efficiency is focused on “good enough” solutions rather than optimal solutions. Bounded rationalization gives more freedom to individuals to make decisions instead of some centralized
Calculability is ability to quantify outcomes based on scientific observations, rather than subjective criteria. There are two parts to calculability. First is definable metrics that can be measured. Objectives and Key Results are sometimes ill defined, leading to subjective criteria. Second is observability of outcomes that impact rational behavior. For instance, when we observe that the throughput of a web application is falling below specified value, we should identify the irrational behavior and fix it. Application management and architecture should ensure calculability of applications actions and behavior.
Irrationality of Rationality
Rationality of application actions and behaviors is an ideal state. Applications do behavior irrationally due to man reasons. An application can be view from three perspectives: (1) People, (2) Process and (3) Technology. The following figure illustrates the three perspectives.
Application rationalization occurs at the intersections of all three perspective. When people are irrational, but there is a rationalization of process and technology, there is a lack of skills. This can lead to human errors. When processes are not rational there is a lack of directions. This can lead to high operational cost, regulatory failures, and security issues. When technology become irrational (e.g., outdated) there is a lack of digitization and automation. This can lead to market failures, competitive advantages, and profitability.
Rationalization is necessary for managing and architecting applications. But when we do not understand the interplay between people, process, and technology we can introduce irrationality in rationality. So, it is important bring application management and architecture across all three perspectives of applications. Rationalization of application management and architecture is critical when dealing complex application eco-system, especially in the cloud native world, where we are transforming capital expense (capex) to operation expense (opex) model. It is critical to bake rationalization into the fast-paced application development and operations focusing on all four elements of Weber’s rationalization: Predictability, Controllability, Efficiency, and Calculability. We must keep a check on the irrationality of rationalized applications across people, process, and technology.
At Kyndryl, we are developing methodologies for Rationalization of Application Management and Architecture. The methodologies include scoring mechanisms that will score rationality of applications. An application that has higher rationality score is more rationalized than applications that has lower rationality score. The methodology also includes architecture patterns, where we score application patterns. The rationality scoring is based on multiple facets of applications. A typical enterprise application has over 100 facets that needs to be rationalized. An enterprise company that wants to venture into application modernization needs to start with rationalization of their applications, including application management and application architecture.
Please reach out to me if you want to know further on how Kyndryl can help with your RAMA Journey.