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