2 Copyright (C) 2024 Rubén Beltrán del Río
4 This program is free software: you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation, either version 3 of the License, or
7 (at your option) any later version.
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
14 You should have received a copy of the GNU General Public License
15 along with this program. If not, see https://map.tranquil.systems.
23 static func stages(_ type: StageType) -> Stage {
27 i: "Genesis", ii: "Custom", iii: "Product (+rental)", iv: "Commodity (+utility)")
30 i: "Novel", ii: "Emerging", iii: "Good", iv: "Best")
33 i: "Unmodelled", ii: "Divergent", iii: "Convergent", iv: "Modelled")
36 i: "Concept", ii: "Hypothesis", iii: "Theory", iv: "Accepted")
39 i: "Rare", ii: "Slowly Increasing", iii: "Rapidly Increasing",
40 iv: "Widespread in the applicable market / ecosystem")
43 i: "Poorly Understood / exploring the unknown",
44 ii: "Rapid Increase In Learning / discovery becomes refining",
45 iii: "Rapid increase in use / increasing fit for purpose",
46 iv: "Commonly understood (in terms of use)")
47 case .publicationTypes:
50 "Describe the wonder of the thing / the discovery of some marvel / a new land / an unknown frontier",
52 "Focused on build / construct / awareness and learning / many models of explanation / no accepted forms / a wild west",
54 "Maintenance / operations / installation / comparison between competing forms / feature analysis",
55 iv: "Focused on use / increasingly an accepted, almost invisible component")
58 i: "Undefined Market",
59 ii: "Forming Market / an array of competing forms and models of understanding",
60 iii: "Growing Market / consolidation to a few competing but more accepted forms",
61 iv: "Mature Market / stabilised to an accepted form")
62 case .knowledgeManagement:
64 i: "Uncertain", ii: "Learning on use / focused on testing prediction",
65 iii: "Learning on operation / using prediction / verification", iv: "Known / accepted")
66 case .marketPerception:
68 i: "Chaotic (non-linear) / domain of the \"crazy\"", ii: "Domain of \"experts\"",
69 iii: "Increasing expectation of use / domain of \"professionals\"",
70 iv: "Ordered (appearance of being linear) / trivial / formula to be applied")
73 i: "Different / confusing / exciting / surprising / dangerous",
74 ii: "Leading edge / emerging / unceirtanty over results",
75 iii: "Increasingly common / disappointed if not used or available / feeling left behind",
76 iv: "Standard / expected / feeling of shock if not used")
77 case .perceptionInIndustry:
79 i: "Future source of competitive advantage / unpredictable / unknown",
80 ii: "Seen as a scompetitive advantage / a differential / ROI / case examples",
81 iii: "Advantage through implementation / features / this model is better than that",
82 iv: "Cost of doing business / accepted / specific defined models")
85 i: "High future worth but immediate investment",
86 ii: "Seeking ways to profit and a ROI / seeking confirmation of value",
88 "High profitability per unit / a valuable model / a feeling of understanding / focus on exploitation",
90 "High volume / reducing margin / important but invisible / an essential component of something more complex"
94 i: "Poorly Understood / unpredictable",
95 ii: "Increasing understanding / development of measures",
96 iii: "Increasing education / constant refinement of needs / measures",
97 iv: "Believed to be well defined / stable / measurable")
100 i: "Constantly changing / a differential / unstable",
101 ii: "Learning from others / testing the water / some evidential support",
102 iii: "Competing models / feature difference / evidential support",
103 iv: "Essential / any advantage is operational / accepted norm")
106 i: "High / tolerated / assumed to be wrong",
107 ii: "Moderate / unsurprising if wrong but disappointed",
109 "Not tolerated / focus on constant improvement / assumed to be in the right direction / resistance to changing the model",
110 iv: "Surprised by failure / focus on operational efficiency")
113 i: "Gambling / driven by gut", ii: "Exploring a \"found\" value",
114 iii: "Market analysis / listening to customers", iv: "Metric driven / build what is needed")
117 i: "Reducing the cost of change (experimentation)", ii: "Reducing cost of waste (Learning)",
118 iii: "Reducing cost of waste (Learning)", iv: "Reducing cost of deviation (Volume)")
119 case .decisionDrivers:
121 i: "Heritage / culture", ii: "Analyses & synthesis", iii: "Analyses & synthesis",
122 iv: "Previous Experience")
125 i: "Uncertain when to use", ii: "Learning when to use", iii: "Learning through use",
126 iv: "Known / common usage")
130 static func title(_ type: StageType) -> String {
144 case .publicationTypes:
145 return "Publication Types"
148 case .knowledgeManagement:
149 return "Knowledge Management"
150 case .marketPerception:
151 return "Market Perception"
152 case .userPerception:
153 return "User Perception"
154 case .perceptionInIndustry:
155 return "Perception In Industry"
157 return "Focus Of Value"
159 return "Understanding"
165 return "Market Action"
168 case .decisionDrivers:
169 return "Decision Drivers"
176 enum StageType: String, CaseIterable, Identifiable {
184 case publicationTypes
187 case knowledgeManagement
188 case marketPerception
190 case perceptionInIndustry
201 var id: String { self.rawValue }
203 static let types: [StageType] = [.general, .practice, .data, .knowledge]
204 static let characteristics: [StageType] = [.ubiquity, .certainty, .publicationTypes]
205 static let properties: [StageType] = [
206 .market, .knowledgeManagement, .marketPerception, .userPerception,
207 .perceptionInIndustry, .focusOfValue, .understanding, .comparison, .failure,
208 .marketAction, .efficiency, .decisionDrivers,
210 static let custom: [StageType] = [.behavior]