From 873aa9a5e5a1d7a1e8214a8257a2c72e87c74203 Mon Sep 17 00:00:00 2001 From: Stefan Kapferer Date: Fri, 2 Aug 2024 16:02:40 +0200 Subject: [PATCH 1/4] Example model for stakeholder and value modelling --- .../stakaholders-and-values.cml | 127 ++++++++++++++++++ 1 file changed, 127 insertions(+) create mode 100644 src/main/cml/same-day-delivery-shop/stakaholders-and-values.cml diff --git a/src/main/cml/same-day-delivery-shop/stakaholders-and-values.cml b/src/main/cml/same-day-delivery-shop/stakaholders-and-values.cml new file mode 100644 index 0000000..4d5b0c6 --- /dev/null +++ b/src/main/cml/same-day-delivery-shop/stakaholders-and-values.cml @@ -0,0 +1,127 @@ + + +BoundedContext SameDayDelivery + +Stakeholders of SameDayDelivery { + StakeholderGroup Online_Shopping_Company { + Stakeholder Development_Team { + influence MEDIUM + interest HIGH + } + Stakeholder Product_Management { + influence HIGH + interest HIGH + } + Stakeholder Customer_Relationship_Manager { + influence HIGH + interest MEDIUM + } + } + + StakeholderGroup Product_Suppliers { + Stakeholder Managers + Stakeholder Logistics_Warehouse_Staff_of_Suppliers + Stakeholder Delivery_Staff_of_Suppliers + } + + StakeholderGroup Delivery_Partners { + Stakeholder Route_Planners + Stakeholder Drivers + } + + StakeholderGroup Competing_Companies + + StakeholderGroup Logistics_Team { + Stakeholder Logistics_Manager + Stakeholder Warehouse_Staff + } + + + Stakeholder Government + + StakeholderGroup Customers_and_Shoppers { + Stakeholder Shoppers_in_Emergency_Situations + Stakeholder Others + } +} + +ValueRegister SD_Values for SameDayDelivery { + + // just values without using "cluster" + + Value WorkLifeBalance { + core + demonstrator "Drivers value a healthy work-life-balance" + Stakeholder Drivers { + priority HIGH + impact HIGH + consequences + bad "SDD will harm work-life-balance of drivers" + action "hire more drivers" ACT + } + } + + Value Revenue { + demonstrator "Online shopping company needs revenue" + Stakeholder Online_Shopping_Company { + priority HIGH + impact MEDIUM + consequences + good "increased number of customers" + } + } + + // using cluster + + ValueCluster Autonomy { + core AUTONOMY + demonstrator "customer values potentially increased freedom" + demonstrator "delivery staff's freedom might suffer because of work-life-balance" + + Value Freedom { + Stakeholder Customers_and_Shoppers { + priority HIGH + impact MEDIUM + consequences + good "increased freedom" + } + + Stakeholder Delivery_Staff_of_Suppliers { + priority HIGH + impact HIGH + consequences + bad "work-life-balance" + } + } + + Value Sustainability { + Stakeholder Shoppers_in_Emergency_Situations { + priority HIGH + impact LOW + consequences + bad "fostering unsustainable behavior (always ordering last minute)" + } + } + } + + // using ESE formats: + + ValueEpic IncreasedFreedom { + As a Customers_and_Shoppers I value "Freedom" as demonstrated in + realization of "being able to order quickly in an emergency situation" + reduction of "Sustainability" + } + + ValueNarrative IncreasedFreedom2 { + When the SOI executes "Same Day Delivery", stakeholders expect it to promote, protect or create "Freedom", possibly degrading or prohibiting "Sustainability" + with the following externally observable and/or internally auditable behavior: "preAndPostConditions" + } + + ValueWeigthing IncreasedFreedom3 { + In the context of the SOI, stakeholder Customers_and_Shoppers values "Freedom" more than "Sustainability" + expecting benefits such as "less stress in emergency situation" running the risk of harms such as "more rides of drivers harm environmental sustainability" + } +} + + + From 67a694b94d1b8499f09151d5df3b7c2babe59752 Mon Sep 17 00:00:00 2001 From: Stefan Kapferer Date: Fri, 2 Aug 2024 16:05:37 +0200 Subject: [PATCH 2/4] Fix file name --- .../{stakaholders-and-values.cml => stakeholders-and-values.cml} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/main/cml/same-day-delivery-shop/{stakaholders-and-values.cml => stakeholders-and-values.cml} (100%) diff --git a/src/main/cml/same-day-delivery-shop/stakaholders-and-values.cml b/src/main/cml/same-day-delivery-shop/stakeholders-and-values.cml similarity index 100% rename from src/main/cml/same-day-delivery-shop/stakaholders-and-values.cml rename to src/main/cml/same-day-delivery-shop/stakeholders-and-values.cml From adf11127728f6d766abf20afe146696c13cd4e69 Mon Sep 17 00:00:00 2001 From: Stefan Kapferer Date: Mon, 5 Aug 2024 11:41:53 +0200 Subject: [PATCH 3/4] Add valued user stories --- .../stakeholders-and-values.cml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/main/cml/same-day-delivery-shop/stakeholders-and-values.cml b/src/main/cml/same-day-delivery-shop/stakeholders-and-values.cml index 4d5b0c6..a45e1a1 100644 --- a/src/main/cml/same-day-delivery-shop/stakeholders-and-values.cml +++ b/src/main/cml/same-day-delivery-shop/stakeholders-and-values.cml @@ -123,5 +123,19 @@ ValueRegister SD_Values for SameDayDelivery { } } +// user story extensions + +UserStory SameDayDelivery_1 { + As a "Shopper" I want to "instantly receive" an "Order" so that "I am efficient" + and that "MyQualityOfLife" is promoted + accepting that "WorkLifeBalanceOfDeliveryStaff" is reduced +} + +UserStory SameDayDelivery_2 { + As a "Shopper" I want to "instantly receive" an "Order" so that "I am efficient" + and that "MyQualityOfLife", "Autonomy" are promoted + accepting that "WorkLifeBalanceOfDeliveryStaff", "Transparency" are harmed +} + From 22a53ca8567adca413fb33cb40bf64a3d46fc8d5 Mon Sep 17 00:00:00 2001 From: Stefan Kapferer Date: Fri, 30 Aug 2024 10:11:47 +0200 Subject: [PATCH 4/4] CM v6.12 + Same Day Delivery example --- gradle.properties | 2 +- .../ContextMapper-Example-Stage-4.cml | 2 +- .../cml/lakeside-mutual/LakesideMutual.cml | 2 +- .../ooad-sample-claims/claims-use-case.cml | 4 +- .../stakeholders-and-values.cml | 108 ++++++------------ .../ClaimsManagement_with_Commands.cml | 2 +- ...laimsManagement_with_ServiceOperations.cml | 2 +- 7 files changed, 41 insertions(+), 81 deletions(-) diff --git a/gradle.properties b/gradle.properties index 0306c64..ec1bcb0 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ # dependency versions -cmlVersion=6.11.0 +cmlVersion=6.12.0 junitVersion=5.5.2 xtendLibVersion=2.19.0 diff --git a/src/main/cml/context-mapper-example/ContextMapper-Example-Stage-4.cml b/src/main/cml/context-mapper-example/ContextMapper-Example-Stage-4.cml index 3084456..1ba2b27 100644 --- a/src/main/cml/context-mapper-example/ContextMapper-Example-Stage-4.cml +++ b/src/main/cml/context-mapper-example/ContextMapper-Example-Stage-4.cml @@ -179,7 +179,7 @@ BoundedContext StructuredServiceDecomposition { ValueObject CriterionPriority { String criterion - - SolverPriority priority + - SolverPriority ^priority } enum SolverPriority { diff --git a/src/main/cml/lakeside-mutual/LakesideMutual.cml b/src/main/cml/lakeside-mutual/LakesideMutual.cml index 8d7284d..62303b5 100644 --- a/src/main/cml/lakeside-mutual/LakesideMutual.cml +++ b/src/main/cml/lakeside-mutual/LakesideMutual.cml @@ -70,7 +70,7 @@ BoundedContext ClaimsManagement implements ClaimsManagement { aggregateRoot long claimId - CustomerId customer - String description + String ^description Blob requestDocument boolean isComplete boolean isAssessed diff --git a/src/main/cml/ooad-sample-claims/claims-use-case.cml b/src/main/cml/ooad-sample-claims/claims-use-case.cml index b67e874..18b5d99 100644 --- a/src/main/cml/ooad-sample-claims/claims-use-case.cml +++ b/src/main/cml/ooad-sample-claims/claims-use-case.cml @@ -25,7 +25,7 @@ BoundedContext ClaimsManagement implements ClaimsManagement { Entity Claim { Date date Double amountClaimed - String description + String ^description ClaimID claimId - Agent agent } @@ -64,7 +64,7 @@ Domain Insurance_Application { Entity Claim { Date date Double amountClaimed - String description + String ^description - Agent agent } Entity Policy { diff --git a/src/main/cml/same-day-delivery-shop/stakeholders-and-values.cml b/src/main/cml/same-day-delivery-shop/stakeholders-and-values.cml index a45e1a1..751c3f0 100644 --- a/src/main/cml/same-day-delivery-shop/stakeholders-and-values.cml +++ b/src/main/cml/same-day-delivery-shop/stakeholders-and-values.cml @@ -2,6 +2,7 @@ BoundedContext SameDayDelivery + Stakeholders of SameDayDelivery { StakeholderGroup Online_Shopping_Company { Stakeholder Development_Team { @@ -17,26 +18,21 @@ Stakeholders of SameDayDelivery { interest MEDIUM } } - StakeholderGroup Product_Suppliers { Stakeholder Managers Stakeholder Logistics_Warehouse_Staff_of_Suppliers Stakeholder Delivery_Staff_of_Suppliers } - StakeholderGroup Delivery_Partners { Stakeholder Route_Planners Stakeholder Drivers } - StakeholderGroup Competing_Companies StakeholderGroup Logistics_Team { Stakeholder Logistics_Manager Stakeholder Warehouse_Staff } - - Stakeholder Government StakeholderGroup Customers_and_Shoppers { @@ -44,40 +40,11 @@ Stakeholders of SameDayDelivery { Stakeholder Others } } - ValueRegister SD_Values for SameDayDelivery { - - // just values without using "cluster" - - Value WorkLifeBalance { - core - demonstrator "Drivers value a healthy work-life-balance" - Stakeholder Drivers { - priority HIGH - impact HIGH - consequences - bad "SDD will harm work-life-balance of drivers" - action "hire more drivers" ACT - } - } - - Value Revenue { - demonstrator "Online shopping company needs revenue" - Stakeholder Online_Shopping_Company { - priority HIGH - impact MEDIUM - consequences - good "increased number of customers" - } - } - - // using cluster - ValueCluster Autonomy { core AUTONOMY demonstrator "customer values potentially increased freedom" demonstrator "delivery staff's freedom might suffer because of work-life-balance" - Value Freedom { Stakeholder Customers_and_Shoppers { priority HIGH @@ -85,57 +52,50 @@ ValueRegister SD_Values for SameDayDelivery { consequences good "increased freedom" } - - Stakeholder Delivery_Staff_of_Suppliers { - priority HIGH - impact HIGH + } + Value Quality_of_Life { + Stakeholder Customers_and_Shoppers { consequences - bad "work-life-balance" + good "less stress in emergendy situations" } } - Value Sustainability { - Stakeholder Shoppers_in_Emergency_Situations { + Stakeholder Customers_and_Shoppers { priority HIGH impact LOW consequences bad "fostering unsustainable behavior (always ordering last minute)" + action "Limit Availability of Feature" ACT + } + } + Value Ability_to_be_patient { + Stakeholder Customers_and_Shoppers { + priority MEDIUM + impact HIGH + consequences + bad "patience of customer will further increase" + action "Only allow feature for emergency (don't make it the default)" ACT } } } - - // using ESE formats: - - ValueEpic IncreasedFreedom { - As a Customers_and_Shoppers I value "Freedom" as demonstrated in - realization of "being able to order quickly in an emergency situation" - reduction of "Sustainability" - } - - ValueNarrative IncreasedFreedom2 { - When the SOI executes "Same Day Delivery", stakeholders expect it to promote, protect or create "Freedom", possibly degrading or prohibiting "Sustainability" - with the following externally observable and/or internally auditable behavior: "preAndPostConditions" + Value WorkLifeBalance { + isCore + demonstrator "Drivers value a healthy work-life-balance" + Stakeholder Drivers { + priority HIGH + impact HIGH + consequences + bad "SDD will harm work-life-balance of drivers" + action "hire more drivers, adjust availability to workload" ACT + } } - - ValueWeigthing IncreasedFreedom3 { - In the context of the SOI, stakeholder Customers_and_Shoppers values "Freedom" more than "Sustainability" - expecting benefits such as "less stress in emergency situation" running the risk of harms such as "more rides of drivers harm environmental sustainability" + Value Revenue { + demonstrator "Online shopping company needs revenue" + Stakeholder Online_Shopping_Company { + priority HIGH + impact MEDIUM + consequences + good "increased number of customers" + } } } - -// user story extensions - -UserStory SameDayDelivery_1 { - As a "Shopper" I want to "instantly receive" an "Order" so that "I am efficient" - and that "MyQualityOfLife" is promoted - accepting that "WorkLifeBalanceOfDeliveryStaff" is reduced -} - -UserStory SameDayDelivery_2 { - As a "Shopper" I want to "instantly receive" an "Order" so that "I am efficient" - and that "MyQualityOfLife", "Autonomy" are promoted - accepting that "WorkLifeBalanceOfDeliveryStaff", "Transparency" are harmed -} - - - diff --git a/src/main/cml/workflow-samples/ClaimsManagement_with_Commands.cml b/src/main/cml/workflow-samples/ClaimsManagement_with_Commands.cml index 4c0c293..4bb6ead 100644 --- a/src/main/cml/workflow-samples/ClaimsManagement_with_Commands.cml +++ b/src/main/cml/workflow-samples/ClaimsManagement_with_Commands.cml @@ -37,7 +37,7 @@ BoundedContext ClaimsManagement { aggregateRoot long claimId CustomerId customer - String description + String ^description Blob requestDocument boolean isComplete boolean isAssessed diff --git a/src/main/cml/workflow-samples/ClaimsManagement_with_ServiceOperations.cml b/src/main/cml/workflow-samples/ClaimsManagement_with_ServiceOperations.cml index 1b892b5..ea2e993 100644 --- a/src/main/cml/workflow-samples/ClaimsManagement_with_ServiceOperations.cml +++ b/src/main/cml/workflow-samples/ClaimsManagement_with_ServiceOperations.cml @@ -39,7 +39,7 @@ BoundedContext ClaimsManagement { aggregateRoot long claimId CustomerId customer - String description + String ^description Blob requestDocument boolean isComplete boolean isAssessed