Fakultät Informatik - Institut Software- und Multimediatechnik - Softwaretechnologie – Prof. Aßmann - Software as a Business
31. Lean (Canvas) Modeling
Prof. Dr. Uwe AßmannTechnische Universität Dresden
Software Engineering Group
http://st.inf.tu-dresden.de
Version 18-0.4, 07.12.18
1) Canvases as collaborative tools
2) Lean modeling with canvases
3) Nested canvases
4) Grading and metrics on canvases
5) The canvas cactus as megamodel
Soft
war
e as
a B
usi
nes
s, ©
Pro
f. U
we
Aß
man
n
2 Software as a Business
Literature
[CM03] Sitt Sen Chok, Kim Marriott. Automatic Generation of Intelligent Diagram Editors. ACM Transactions on Computer-Human Interaction, Vol. 10, No. 3, September 2003, Pages 244–276.
Fakultät Informatik - Institut Software- und Multimediatechnik - Softwaretechnologie – Prof. Aßmann - Software as a Business
31.1 Canvases as Light-Weight Cooperation Tools
Soft
war
e as
a B
usi
nes
s, ©
Pro
f. U
we
Aß
man
n
4 Software as a Business
► A canvas is a collaborative frontend for a model, in which sticky notes demarcate the formal content from the informal text.
► A lean model is a semi-conceptualized model, an active document with informal and conceptualized content.
■ XML is a similar idea: semi-structured content■ Lean models transfer this idea to model-driven development
► Lean modeling is an agile conceptualization process: ■ Canvas -> Lean Model -> fully conceptualized Model
4
Canvases as Lean Models
Lean Model(semi-conceptualized)Canvas Model
Value Proposition isA and B and C
Key partners
Chan
nels
are
News,
Pres
s, W
eb
Cost structure is
100€, 2 per day
Fakultät Informatik - Institut Software- und Multimediatechnik - Softwaretechnologie – Prof. Aßmann - Software as a Business
31.2. Lean Modeling with Canvases
Soft
war
e as
a B
usi
nes
s, ©
Pro
f. U
we
Aß
man
n
6 Software as a Business
Schemas for Flat Canvases as Grammars
► A (flat) canvas is a structured questionnaire for collaborative development
► It can be represented as a tree-shaped model■ Canvas structure:
. Canvas left side vs. right side
. Left part, right part, upper, lower part
. Canvas fields with sticky text notes, Canvas questions or answers■ Inter-field references with inter-field constraints ■ Intra-field constraints■ Canvas fill order (partial order) on the tree nodes■ NO Subcanvases; Subcanvases are other trees that may be referenced
Soft
war
e as
a B
usi
nes
s, ©
Pro
f. U
we
Aß
man
n
7 Software as a Business
Schemas for Flat Canvases as Grammars
► The canvas’ schema can be described by a grammar in a Part Grammar (Constraint Multiset Grammar, CMG) describing Whole-and-Part relationships
► Example invariants: forall stickynotes in CustomerRelations there is a stickynote in Channels; there must be a revenue
► Why is the partial fill order a set of inter-field constraints?
► Alternative: EBNF and OCL
// Example Grammar for BMCGrammar Fields = Rules { Note ::= Question | Answer Root Field ::= StickyNote:Note *}Grammar BusinessModelCanvas = import FieldsRules { Root BMC ::= { LeftPart ValueProposition:Field RightPart } LeftPart ::= { KeyPartners:Field KeyActivities:Field KeyResources:Field Costs:Field } RightPart ::= { CustomerRelations:Field Channels:Field CustomerSegments:Field Revenues:Field } Invariant { forall s:CustomerRelations.StickyNote* exists y:StickyNote, y in Channels.StickyNote* Invariant MUST exists r:StickyNote in Revenues.StickyNote* }}
// Example Grammar for BMCGrammar Fields = Rules { Note ::= Question | Answer Root Field ::= StickyNote:Note *}Grammar BusinessModelCanvas = import FieldsRules { Root BMC ::= { LeftPart ValueProposition:Field RightPart } LeftPart ::= { KeyPartners:Field KeyActivities:Field KeyResources:Field Costs:Field } RightPart ::= { CustomerRelations:Field Channels:Field CustomerSegments:Field Revenues:Field } Invariant { forall s:CustomerRelations.StickyNote* exists y:StickyNote, y in Channels.StickyNote* Invariant MUST exists r:StickyNote in Revenues.StickyNote* }}
Soft
war
e as
a B
usi
nes
s, ©
Pro
f. U
we
Aß
man
n
9 Software as a Business
VPC as Grammar with Constraints
► Invariants:■ Forall gains there must be a gain creator■ Forall pains there must be a pain killer■ Forall pain killers there should be a service or product■ Forall gain creators there should be a service or product
Grammar ValuePropositionCanvas = import Fields Rules { Root VPC ::= { LeftPart RightPart } LeftPart ::= { GainCreator:Field PainKiller:Field ProductsAndServices:Field } RightPart ::= { Gain:Field Pain:Field CustomerSituation:Field } Invariant forall s:Gain.StickyNote* exists y:StickyNote, y in GainCreator.StickyNote* Invariant forall s:Pain.StickyNote* exists y:StickyNote, y in PainKiller.StickyNote* Invariant forall s:PainKiller.StickyNote* exists y:StickyNote, y in ProductsAndServices.StickyNote* Invariant forall s:GainCreator.StickyNote* exists y:StickyNote, y in ProductsAndServices.StickyNote*}
Grammar ValuePropositionCanvas = import Fields Rules { Root VPC ::= { LeftPart RightPart } LeftPart ::= { GainCreator:Field PainKiller:Field ProductsAndServices:Field } RightPart ::= { Gain:Field Pain:Field CustomerSituation:Field } Invariant forall s:Gain.StickyNote* exists y:StickyNote, y in GainCreator.StickyNote* Invariant forall s:Pain.StickyNote* exists y:StickyNote, y in PainKiller.StickyNote* Invariant forall s:PainKiller.StickyNote* exists y:StickyNote, y in ProductsAndServices.StickyNote* Invariant forall s:GainCreator.StickyNote* exists y:StickyNote, y in ProductsAndServices.StickyNote*}
Soft
war
e as
a B
usi
nes
s, ©
Pro
f. U
we
Aß
man
n
11 Software as a Business
Validating a Flat Canvas
► A flat canvas is called well-formed, if ■ All fields are being computed (filled)■ All fields fulfill all constraints.
► Validation:■ Parse the canvas with its sticky notes■ Evaluate constraints in OCL ■ or with an Attributed Grammar■ or with an Multiset Constraint Grammar
Soft
war
e as
a B
usi
nes
s, ©
Pro
f. U
we
Aß
man
n
12 Software as a Business
► A lean model can be merged with another lean model
► A canvas twin is a parallelly edited canvas, which can be merged into a lean model by unifying the fields
► Conceptualization Process: ■ CanvasTwin * -> Lean Model -> fully conceptualized Model■ Assembling all constraints■ Validating all constraints
12
Parallelly Edited Lean Models can be Merged
Lean Model(semi-conceptualized)
CanvasesModel
Value Proposition isA and B and C
Key partners
Chan
nels
are
News,
Pres
s, W
eb
Cost structure is
100€, 2 per day
Fakultät Informatik - Institut Software- und Multimediatechnik - Softwaretechnologie – Prof. Aßmann - Software as a Business
31.3 Nested Canvases
Soft
war
e as
a B
usi
nes
s, ©
Pro
f. U
we
Aß
man
n
14 Software as a Business
A Nested Canvas
► A nested canvas (deep canvas) is a link tree with level graphs■ Every canvas forms a sequence, graph or array of fields■ Sticky notes attach text to the fields■ Constraints constrain the content of the canvas fields
► Subcanvases form children■ Grammars of nested canvases are united (grammar composition)
► The fill order of the canvas defines a phase structure on the link tree■ Metrics on advancement (hierarchical wavefront progress)
Soft
war
e as
a B
usi
nes
s, ©
Pro
f. U
we
Aß
man
n
15 Software as a Business
The Nested BMC (Deep BMC)
► Many subcanvases
BMC
VPC
Customer JourneyCanvas (CJC)
ReqEC
ChannelFlipbook Canvas
Pain CanvasPain Killer Canvas
Pain-GainBanana
Pain Portfolio CustomerEmpathy Map
CustomerBMCY
Customer DoubleFunnel Canvas
SPIN™ Canvas
Solution Selling™
Canvas
Soft
war
e as
a B
usi
nes
s, ©
Pro
f. U
we
Aß
man
n
16 Software as a Business
► A nested canvas twin is a parallelly edited nested canvas, which can be merged into a lean model by unifying the fields
► Conceptualization Process: ■ NestedCanvasTwin * -> Lean Model -> fully conceptualized Model
16
Parallelly Edited Lean Models can be Merged to Get a More Mature Model
Lean Model(semi-conceptualized)
Model
Value Proposition isA and B and C
Key partners
Chan
nels
are
News,
Pres
s, W
eb
Cost structure is
100€, 2 per day
BMC
VPCCustomer
Empathy Map
BMC
VPCCustomer
Empathy Map
Nested Canvases
Fakultät Informatik - Institut Software- und Multimediatechnik - Softwaretechnologie – Prof. Aßmann - Software as a Business
31.4 Grading and Metrics on Canvases
Soft
war
e as
a B
usi
nes
s, ©
Pro
f. U
we
Aß
man
n
18 Software as a Business
Assessment in Canvases and Nodetypes in Canvas Trees
► StickyNote dimension: every node can have a sticky note (Answer to a canvas question)
► Commenting is done by spanning up a comment dimension in a canvas tree■ Every node can get a comment
► Corresponding dimension: Every node (e.g., sticky note or comment) can invoke a corresponding node in another field that has to be filled
■ When a sticky note invokes another sticky note
■ INVARIANT Exists s:StickyNote: corresponding(self, s)► Grading is done by spanning up a grading dimension in a canvas tree
■ Every node can get a grade (green-yellow-red, 1-5, 1-10, 1-15)■ The grading dimension defines grading functions for sticky notes in the
fields
► SWOT dimension: every node can get a SWOT grading node: “how strong/weak/opportunity-like/trend-like is node?”
■ BMC-SWOT grading matrix canvas uses the SWOT grading dimension■ LeanCanvas-SWOT uses SWOT grading dimension for LeanCanvas
► Grading on nested canvases: Grading is like commenting, but attributing a grade to a node. It defines the grading functions for all tree nodes of the nested canvas.
Soft
war
e as
a B
usi
nes
s, ©
Pro
f. U
we
Aß
man
n
19 Software as a Business
Examples of Attributes (Variables) of a Canvas Field (Node)
► Node.Questions: List(Question) // all questions of a field or note► Node.SWOT: List(SWOT)
► Node.Comments: List(Comment) // all nodes in a canvas can be commented■ NumberOf // all lists in nodes of a canvas can be counted
► Field.AllStickyNotes: List(StickyNotes)
► Field.MissingStickyNodes: List(empty Fields)
► Field.Grade: /* The average of all sticky note grades */► StickyNote.Grade: /* the grading: e.g., red, yellow, green */► StickyNode.SWOT.Strength.Grade: /* Grade of SWOT */► StickyNode.SWOT.Weakness.Grade: /* Grade of SWOT */► StickyNode.SWOT.Opportunity.Grade: /* Grade of SWOT */► StickyNode.SWOT.Trend.Grade: /* Grade of SWOT */► StickyNote.CorrespondingStickyNote: List(Ref StickyNote) /* corresponding sticky nodes
or holes */► Canvas.Grade: /* The average of all sticky note grades of all nodes */
Soft
war
e as
a B
usi
nes
s, ©
Pro
f. U
we
Aß
man
n
20 Software as a Business
Thresholds for Canvas Metrics
► Status of invariants is important for the maturity of the canvas
If a set of metric function on a nested canvas does not fulfil its threshold, or if not all invariants are fulfilled,
we call the canvas orange.
If a set of metric function on a nested canvas does not fulfil its threshold, or if not all invariants are fulfilled,
we call the canvas orange.
A green canvas fills all its variables and fulfills all its invariants.
A green canvas fills all its variables and fulfills all its invariants.
A red canvas does not fulfill all its MUST invariants.A red canvas does not fulfill all its MUST invariants.
Fakultät Informatik - Institut Software- und Multimediatechnik - Softwaretechnologie – Prof. Aßmann - Software as a Business
31.5 The Canvas Cactus as Megamodel and its Metrics
Soft
war
e as
a B
usi
nes
s, ©
Pro
f. U
we
Aß
man
n
22 Software as a Business
The Evolving BMC-VPC Canvas Cactus (extended)
► Growing a tree with side edges (link tree - cactus) out of a first version■ Assess with red-yellow-green; choose a current “greenest” “champion”
► Every step tests hypotheses about the customer
► Not too many canvases are kept active (small dashboard)
Soft
war
e as
a B
usi
nes
s, ©
Pro
f. U
we
Aß
man
n
23 Software as a Business
The Megamodel of Evolving Canvases
► A megamodel describes a set of models
► A canvas cactus is a link tree of canvases, i.e., a link-tree-shaped megamodel of canvases
► Canvas cactus evolution evolves the megamodel with agile modeling
► The megamodel of canvases in a cactus is a link tree and can be analysed by constrained multiset grammar (CMG)
■ Metrics■ Constraints
Soft
war
e as
a B
usi
nes
s, ©
Pro
f. U
we
Aß
man
n
24 Software as a Business
Business Model Generation with Osterwalder/Pigneur
• CC-BY-SA: http://www.businessmodelgeneration.com/downloads/business_model_canvas_poster.pdf
Prof. U. Aßmann
Soft
war
e as
a B
usi
nes
s, ©
Pro
f. U
we
Aß
man
n
25 Software as a Business
The End
► More on modeling, lean modeling, and megamodeling in the course
► “Model-Driven Software Development in Technical Spaces (MOST)” in WS 17/18
► Explain the concept of a CMG. Why do we need a grammar to model Canvases?
► Explain why a canvas is an instance of a CMG.■ Which role do invariants play?■ Which role do filling functions play?■ Can the user execute / simulate a filling function?