Our industry seems to go through cycles of re-discovery of lost knowledge with every new generation of developers, which probably is not so odd considering the exponential growth of practitioners. Allegedly half of the programmers today are juniors, which means many of them have yet to encounter the challenges faced decades ago. For example, many run the risk of falling into the trap of modelling services around domain entities, risking ending up with a distributed monolith with its devastating coupling, fragility, and cognitive nightmare. Lucky for us, we have shoulders to stand on to get us out of the quagmire, or even better, prevent us from getting on that slippery slope in the first place.
Being conscious of fallacies like those of distributed computing and anti-patterns like functional decomposition and entity services are all well and good, and necessary heuristics to good service design, but we often crave more concrete guidance. There are many great techniques to consider, like context mapping, user story mapping, event storming, and value chain analysis, but in this talk I will focus on the lost art of business capability modelling. My thesis is that a technique that was relevant in the pre-computing era might be just as useful and relevant when we split our monoliths into a mesh of autonomous (micro)services. Maybe they even could help us identify subdomains, contexts, and organisational structure; in effect the construction of sociotechnical systems?
11. Source: “From Capabilities to Services: Moving from a Business Architecture to an IT Implementation”, Homann & Tobey 2006@trondhjort
12. @trondhjort
“A business capability
represents the ability for a
business to do something.”
Source: The Open Group 2016 in G161, ‘Open Group Guide: Business Capabilities‘
“A business capability is a
particular ability or capacity
that a business may possess or
exchange to achieve a specific
purpose or outcome.”
27. Source: Example by Ulrich Kalex, The Open Group@trondhjort
The Enterprise
Corporate Management
Market
Dev.
Oversight
Product
Dev.
Support
&
Services
Delivery
28. The Enterprise
Source: Business Capability Management, Ulrich Kalex 2011@trondhjort
Corporate Management
Market
Dev.
Oversight
Product
Dev.
Support
&
Services
Market Development
Contact Man.
Revenue
Analysis
Regional
Market
Man.
Order
and
Contract
Man.
Market
Analysis
Delivery
Direct Marketing
Channel Man. Sales Man.
29. Labour and Welfare
@trondhjort
Corporate Management
Service development
Assistive
Employment assistance
User management
Portfolio management
Employment
assistance
Social
assistance
Family
assistance
Statistics
Pension
assistance
Benefits
Unemployment
assistance
Employer
support
Sick leave
assistance
Employment
service
31. @trondhjort
Name Service feasibility check
Description
The ability to check what type of technical access
infrastructure is available at a given address.
Components
Roles
User: Customer
Business unit: Technical infrastructure
Processes
Feasibility search
Service inventory
Information
Technical address, networks, access types,
broadband speed, …
Tools
Kapaks, search component, address index.
36. @trondhjort
“Products-mode works best when teams are organized to be
simultaneously aligned with business relevant capabilities and
with enterprise architecture boundaries.”
Source: "Products Over Projects", Sriram Narayan 2018
“Without the former, they may lose alignment with business
goals. Without the latter, they lose out on autonomy.”
Product over projects