Random Thoughts

Some random thoughts on enterprise and software systems architecture, and what comes into mind when dealing with these ...

Business Capability – a short clarification

posted Jun 19, 2017, 2:54 AM by Alar Raabe

The term “business capability” is synonymous with BIAN “Service Domain” (see BIAN How-to Guide), with “business component” in IBM’s CBM methodology (see Component Business Models), and with “business function” in general business management.

A “business capability” describes ability to perform certain set of related activities for providing a set of business services, by combining people, processes, resources (incl. needed systems) and governance, using the business services from other business capabilities, if needed.

Where “business service” describes externally visible unit of business functionality of a business capability, which provides value to service consumers, is provided via explicit external interfaces, and realized by business processes.

You can think of a business capability a self-contained part of business that could be outsourced as is.

Business capabilities themselves can be hierarchically sub-divided into smaller business capabilities if needed, or combined into larger business capabilities up to a business capability to provide all banking services.

Business capabilities are connected through the business services and form a value network.

The business capabilities for a given business domain can be found/formulated, taking as the starting point the lists of key activities needed for all the business models of given business domain. The set of business capabilities describes what things given business domain must be able to do, to support the business strategy and execute the business models.

API vs. ESB (and other related tools)

posted Jun 16, 2017, 1:04 AM by Alar Raabe

I would like to clarify some questions related to API management, ESB and specific service interfaces.

From one side, API (Application Programming Interface) is nothing more than a specification a text, containing a set of more or less formal statements, which specify the available (service) operations and data that flows through the interface when these operations are performed.

Therefore managing an API is nothing more than managing any other formal document which can be done using any basic text editor or something more fancy, called API management tool, with lots of bells and whistles and with heavy price tag. 

From another side, ESB is nothing more than a system that transports and routes service requests, and returns matching responses, usually providing several different physical mechanisms to do so, independent of how these service requests are defined or do they together at all form an API.

Therefore, if we implement API management tool and ESB, then this will not in any way result in a specific API (or service interface). 

Developing a specific API is quite time- and resource-consuming task, which needs to be planned and designed as any other large development. What makes API design even more important, is that API's guide the architecture of future developments and affect strongly their properties.

A good analogy here is with DBMS and actual database schema although we have tools for designing database schemas (e.g. ERwin) and DBMS to run these schemas (e.g. Oracle or TeraData), we cannot assume, that database schema (e.g. for Enterprise DW), suitable for current and future needs just emerges from separate developments. It needs a special (some-time very large) effort, to develop a suitable concrete data-base schema.

API design and development requires same way as data-base schema design and development:

conceptual models for both functionality (service operations) and data (information),

logical models that specify the interfaces, and

physical models that specify the interfaces for specific implementation technologies.

Thoughts on "Architect Your Business - Not Just IT"

posted Apr 13, 2015, 8:23 AM by Alar Raabe

When reading MIT CISR  Research Brief No 12 from 2014 "Architect Your Business - Not Just IT", I agree very much with the statement that “… despite the title, business architects rarely design their company’s business.”!

The main puzzle for me is, that even when everybody in the organization sees and agrees, that “… their processes, structures, and systems are not providing the agility they need …” (i.e. the business architecture of the company is not adequate), I don’t usually see any dedicated effort for designing a new business architecture, not to mention employment of a specialist with business architect skills for doing that.

Here I must agree again with the statement that “… the dominant design approach for large companies is ‘divide and conquer’ in which individual leaders accept responsibility for success over a specific set of closely related business activities.”. Because of the Conway's Law, this approach leads to a business and IT architectures that copy the power-structure of the organization.

The above mentioned approach could work, but only if the domains of power and integration/interaction points between those separate “kingdoms” are very clearly defined and controlled, and designing these interfaces and controls should be  the main task for the actual business architect.

Complexity in/of the enterprise architecture

posted Dec 30, 2013, 2:10 PM by Alar Raabe

The negative effects of the overall complexity of business and IT in the enterprise, manifest themselves as unreliability and excessive cost of operations, and excessive cost and time to make changes.

Business complexity has additional negative effects due to the difficulties in selling more complex products and customer dissatisfaction due to unclear and time consuming business processes.

Therefore complexity of the business and IT in enterprise needs to be controlled and managed.

To be able to control and manage the complexity, we need to be able to measure it.

If looking into different treatments of the complexity of systems, we can define the complexity as

the number of different elements and their interconnectedness (number of interconnections between these elements).

Based on such definition, we propose to measure business and IT complexity by counting the elements of business (like business models, customer segments, offered products, business functions, business services, business processes, etc.) and IT (like data stores, applications, technologies, etc.), and their interconnections.

In both business and IT we can differentiate between:

  • external complexity, caused by the external factors that are not under our control or depend on large scale strategic decisions (that define in which business the enterprise is in), which cannot be reduced without the large changes in the enterprise business strategy, and
  • internal complexity, caused by our tactical choices and decisions of how we organize ourselves or how we operate (that also defines the complexity for the customers), which can and should be reduced to improve the overall efficiency and agility of the enterprise.
The internal business complexity (e.g. how we organize or operate the business) defines also large part of the external IT complexity, the other part being defined by the external technological factors.

Extending EA meta-models to contain the environment ...

posted Jul 29, 2013, 1:55 AM by Alar Raabe   [ updated Jul 29, 2013, 2:09 AM ]

Current EA meta-models describe in great detail the internals of the enterprise, but leave the environment in which the enterprise operates either totally out, or describe it in considerably less detailed way.

There are definitely some meta-models, for example Nick Malik's EBMM (contains Influencer) and new ArchiMate motivation extension (contains Driver), which try to deal with the (inconveniences) of outside world, but this is not that elaborate and structured, as these parts of meta-models which deal with inside world.

If we see the role of EA function as supporting the orientation of the enterprise according to John Boyd's OODA loop, there is need to have sufficiently good models for both representing and interpreting the environment, and representing and interpreting the enterprise itself.

We should add something similar to the dynamic financial analysis (DFA) models to the EA meta-models, to be able represent the impact of environment to the enterprise, as elements representing competition, markets, regulations, etc. (see for example A. Bergbauer, V. Chavez, T. Fischer, R. Perera, A. Roehrl, S. Schmiedl, Back to the future: Dynamic Financial Analysis (DFA) for decision making, 2004 (Fig. 3), or M. Eling, T. Partnitzke Dynamic Financial Analysis: Classification, Conception, and Implementation, 2005 (Fig. 2), or M. A. Taylor, Business Environment Model, 2013).

Do/should we have "internal customers"?

posted Jul 24, 2013, 2:53 AM by Alar Raabe   [ updated Jul 24, 2013, 7:01 AM ]

If we use in the enterprise architecture framework IBM Component Business Model (CBM) and A. Osterwalder's business model canvas (BMC) for describing the business and its parts in a business domain architecture.

The CBM can be used to describe the overall business functionality and the functional decomposition of whole enterprise into business components, which can be viewed as small independent businesses. The business components in a CBM are connected through the business services that they produce and/or consume from the other business components, forming a value network. Some of those business services are produced and/or consumed by the external parties (including the enterprise’s customers). So from that viewpoint, for every business component, an external (to the given business component) party could be in two different role – customers/consumers of the produced services and suppliers/producers of the required services.

The A. Osterwalder’s business model canvas can be used to describe the overall business logic of how the business works for overall enterprise, and/or for each functional sub-division down to the business components, identified in the CBM. Business model canvas also identifies external parties in two different roles – partners and customers. This separation is beneficial because business usually needs to employ different relationship management techniques for the external parties playing those different roles, and usually also the channels through which the value is delivered to the business, and through which business delivers value, are different.

Above described conceptual models (together with their language) provide the modularity and encapsulation, needed to manage the inherent complexity of the business functionality that whole enterprise comprises. Employing this view in business organization/operations allows us to achieve self-optimization of the operations of whole enterprise by optimizing the operations of separate business components, and robustness by encapsulating the business components behind the well formed service agreements.

In principle we should be able to separate and replace any business component (including IT or its parts) as an independent business entity, without changing the internal workings of that particular business component and affecting the operations of overall value network.

So in the behavior of a business component, there should not be any difference, whether the external (to the given business component) party is also external to the whole enterprise or just another part of the enterprise, but the business component should definitely have different behavior (down to the clear service agreements) towards the parties to whom it delivers services and towards the parties that deliver services to it.

To avoid confusions with the usage of word “partner” in the A. Osterwalder's business model ontology it would not be good to denote such business components, which do not directly deliver services to the enterprise’s customers, with the same word “partners”, for both consumers of their services and suppliers of services they need.

There might be political reasons for which we want that in our language enterprise’s customers should stand out from business components that are internal to the enterprise, and because the value network inside the enterprise uses different ways to count for the value, the word “internal customer” might not be appropriate for consumers of internal services.

So should we then use the word “consumer” throughout the enterprise architecture models/descriptions to denote the business service consumers in the business models instead of word “customer”?

In case the same business component provides the same business service to both enterprise’s customers and other business components in the enterprise (as in many cases IT related business components do), should we treat those as two different service consumer classes, and use different words to denote these?

Reducing the complexity and increasign the modularity ...

posted Apr 22, 2013, 8:26 AM by Alar Raabe

... of enterprise systems, based on the results from (The Evolutionary Origins of Modularity), could be achieved, by imposing an additional cost (a kind of "tax") upon the direct connections between the enterprise systems.
Reserves created from such "tax", could be invested into the improvement activities of enterprise architecture.

Controlling the enterprise (IT) architecture

posted Feb 27, 2012, 2:55 PM by Alar Raabe   [ updated Feb 27, 2012, 3:10 PM ]

We can control/develop enterprise (IT) architecture by following:
  • using Conway's law -- enterprise organization should be designed such that we would like the enterpise IT architecture to become -- there must always exist an interested party for developing certain architecture feature/element (e.g. developing the architecture in certain way must be in somebody's interest);
  • limiting the resources in suitable manner would stimulate thinking and (as a consequence) reduction of complexity, increase of reuse, and simplification of maintenance -- that is architecture can be developed by the owner/steward of necessary resources -- in case we have a governance body for architecture like architecture committee, it must own or command resources;
  • ownership of main (architectural) principles by top management (they must belong to the enterprise identity and value system) -- only then they will influence the architectural decisions;
  • differentiated actions according to the governance model:
    • in the enterprises with strong central governance (power) it is possible to design the architecture accordin to certain goals, and the result would be foreseeable,
    • but in the enterprises with weak central governance (power) or completely decentralized enterprises it would only be possible to create favorable situation for architecture to emerge and develop (grow), and the result would not be foreseeable nor guaranteed;
  • differentiated capital investments -- the part of the architecture, which function is most static (i.e. infrastructure/platform) could afford the biggest capital investments -- to stay long time without changes it must perfrom very generic functions (as an opposite to the frequently changing parts of the architecture which could perfrom very specific functions) -- the more variable/volatile is the function, the smaller should be the capital investments;
  • limit the amount of "technical debt" allowed for the IT architecture -- large technical debt limits the options of change and "takes over" control of the architecture.

Measuring the Effect of Enterprise Architecture

posted Nov 28, 2011, 1:25 AM by Alar Raabe

Some things that can be measured for estimating/following the success of enterprise architecture activities:
  • Overall trends in enterprise, for which EA should correspond:
    • Response time trend for business changes – EA has been successful, if the organization has become more agile.
    • Efficiency trend for business operations – EA has been successful, if the organization has become more efficient.
    • Reliability trend of business operations and development – EA has been successful, if the amount of failures (both in operation and development) has been reduced.
  • Special measures for EA value:
    • Maintenance of big-picture and reuse of EA information – the ratio of questions related to strategic decisions that can be answered, based on collected and maintained EA information, to the amount of questions that require a special one-time effort (study or project).
    • Alignment of activities to business goals (the ratio of projects/solutions that are connected to the business goals, to the total number of  projects/solutions).
    • The degree of standardization in business – the ratio of different "ways of working" to the overall number of business functions.
    • The degree of standardization is IT – ratio of different used IT technologies to the overall number of IT systems.
    • The degree of complexity in IT – ratio of supported business functions to the overall number of IT systems.
    • The impression of stakeholders, how good/clear is the target ("TO-BE") picture – rating according to some subjective scale.
    • The impression of stakeholders, how well complexity is handled – rating according to some subjective scale.
  • Measures for strength of EA function:
    • Strength of architecture governance – ratio of projects/solutions evaluated by architecture board, to the total number of  projects/solutions.
    • Conformance to the architectural principles – ratio of projects/solutions following the architectural principles to the total number of projects/solutions.
    • How well the architecture is followed – ratio of architectural exceptions to the projects/solutions evaluated by architecture board.

About the requirements analysis ...

posted Mar 12, 2011, 1:25 PM by Alar Raabe   [ updated Mar 12, 2011, 1:41 PM ]

  1. Requirements Analysis and Specification
    1. Purpose to understand what is required and to communicate that understanding to other parties.
    2. Team
      1. Lead analyst driving the analysis and requirements process (knowledgeable in analysis and requirements specification techniques).
      2. Domain Experts bringing the domain knowledge to the analysis and specification process.
      3. Technical Experts bringing the technical knowledge to the specification process (assuring that the solution which satisfies the stated requirements is feasible).
    3. Process
      1. Iterative process, where analysis and specification tasks alternate until the satisfactory requirements specification is produced.
    4. Tasks
      1. Requirements Analysis
        1. Purpose to understand what is required.
        2. Methods
          1. Study of documents to collect formal information.
          2. Interview of involved parties to collect informal information.
          3. Workshops to assure, that all the relevant viewpoints are taken into account.
          4. Modeling and prototyping to assure, that all the relevant questions are asked.
      2. Requirements Specification
        1. Purpose to communicate what is required to other parties (developers, testers, ...).
        2. Methods
          1. Writing specification documents to describe the requirements.
          2. Modeling and prototyping to assure, that requirements are
            1. unambiguous all parties understand the same thing,
            2. complete nothing that is necessary has been left out,
            3. correct there are no errors,
            4. consistent there are no contradictions,
            5. verifiable result can be tested against the requirements,
            6. feasible result can be achieved,
            7. prioritized to allow scoping and risk management.
          3. Workshops to assure, that specifications are correct.
    5. Results
      1. Requirements Specification Documents.
      2. Models and prototypes.
  2. Important parts of the business software system (should be defined in the results of requirements specification)
    1. Overview what is the overall purpose and the context (environment) of the system and what are the non-functional requirements (performance, response time, etc.).
    2. Data what information the system maintains (business entities and relationships, their life-cycle and corresponding business rules).
    3. Roles who are the users and what rights they have to perform functions that system provides.
    4. Functions what functions system provides to the users (business processes, business transactions and corresponding business rules).
    5. User Interface what data is presented to and can be entered by the user and what functions are accessible to the user, how the system responds to the user actions.
    6. Printouts and reports what data is collected from the system and how it is presented to the user.
    7. External Interfaces what are the connection points of the system with its environment.

Because every requirement has a price attached (in terms of time and money), they should be handled with care and precision (as money is handled).

1-10 of 17