]>
Commit | Line | Data |
---|---|---|
1 | struct Stage { | |
2 | let i: String | |
3 | let ii: String | |
4 | let iii: String | |
5 | let iv: String | |
6 | ||
7 | static func stages(_ type: StageType) -> Stage { | |
8 | switch type { | |
9 | case .general: | |
10 | return Stage( | |
11 | i: "Genesis", ii: "Custom", iii: "Product (+rental)", iv: "Commodity (+utility)") | |
12 | case .practice: | |
13 | return Stage( | |
14 | i: "Novel", ii: "Emerging", iii: "Good", iv: "Best") | |
15 | case .data: | |
16 | return Stage( | |
17 | i: "Unmodelled", ii: "Divergent", iii: "Convergent", iv: "Modelled") | |
18 | case .knowledge: | |
19 | return Stage( | |
20 | i: "Concept", ii: "Hypothesis", iii: "Theory", iv: "Accepted") | |
21 | case .ubiquity: | |
22 | return Stage( | |
23 | i: "Rare", ii: "Slowly Increasing", iii: "Rapidly Increasing", | |
24 | iv: "Widespread in the applicable market / ecosystem") | |
25 | case .certainty: | |
26 | return Stage( | |
27 | i: "Poorly Understood / exploring the unknown", | |
28 | ii: "Rapid Increase In Learning / discovery becomes refining", | |
29 | iii: "Rapid increase in use / increasing fit for purpose", | |
30 | iv: "Commonly understood (in terms of use)") | |
31 | case .publicationTypes: | |
32 | return Stage( | |
33 | i: | |
34 | "Describe the wonder of the thing / the discovery of some marvel / a new land / an unknown frontier", | |
35 | ii: | |
36 | "Focused on build / construct / awareness and learning / many models of explanation / no accepted forms / a wild west", | |
37 | iii: | |
38 | "Maintenance / operations / installation / comparison between competing forms / feature analysis", | |
39 | iv: "Focused on use / increasingly an accepted, almost invisible component") | |
40 | case .market: | |
41 | return Stage( | |
42 | i: "Undefined Market", | |
43 | ii: "Forming Market / an array of competing forms and models of understanding", | |
44 | iii: "Growing Market / consolidation to a few competing but more accepted forms", | |
45 | iv: "Mature Market / stabilised to an accepted form") | |
46 | case .knowledgeManagement: | |
47 | return Stage( | |
48 | i: "Uncertain", ii: "Learning on use / focused on testing prediction", | |
49 | iii: "Learning on operation / using prediction / verification", iv: "Known / accepted") | |
50 | case .marketPerception: | |
51 | return Stage( | |
52 | i: "Chaotic (non-linear) / domain of the \"crazy\"", ii: "Domain of \"experts\"", | |
53 | iii: "Increasing expectation of use / domain of \"professionals\"", | |
54 | iv: "Ordered (appearance of being linear) / trivial / formula to be applied") | |
55 | case .userPerception: | |
56 | return Stage( | |
57 | i: "Different / confusing / exciting / surprising / dangerous", | |
58 | ii: "Leading edge / emerging / unceirtanty over results", | |
59 | iii: "Increasingly common / disappointed if not used or available / feeling left behind", | |
60 | iv: "Standard / expected / feeling of shock if not used") | |
61 | case .perceptionInIndustry: | |
62 | return Stage( | |
63 | i: "Future source of competitive advantage / unpredictable / unknown", | |
64 | ii: "Seen as a scompetitive advantage / a differential / ROI / case examples", | |
65 | iii: "Advantage through implementation / features / this model is better than that", | |
66 | iv: "Cost of doing business / accepted / specific defined models") | |
67 | case .focusOfValue: | |
68 | return Stage( | |
69 | i: "High future worth but immediate investment", | |
70 | ii: "Seeking ways to profit and a ROI / seeking confirmation of value", | |
71 | iii: | |
72 | "High profitability per unit / a valuable model / a feeling of understanding / focus on exploitation", | |
73 | iv: | |
74 | "High volume / reducing margin / important but invisible / an essential component of something more complex" | |
75 | ) | |
76 | case .understanding: | |
77 | return Stage( | |
78 | i: "Poorly Understood / unpredictable", | |
79 | ii: "Increasing understanding / development of measures", | |
80 | iii: "Increasing education / constant refinement of needs / measures", | |
81 | iv: "Believed to be well defined / stable / measurable") | |
82 | case .comparison: | |
83 | return Stage( | |
84 | i: "Constantly changing / a differential / unstable", | |
85 | ii: "Learning from others / testing the water / some evidential support", | |
86 | iii: "Competing models / feature difference / evidential support", | |
87 | iv: "Essential / any advantage is operational / accepted norm") | |
88 | case .failure: | |
89 | return Stage( | |
90 | i: "High / tolerated / assumed to be wrong", | |
91 | ii: "Moderate / unsurprising if wrong but disappointed", | |
92 | iii: | |
93 | "Not tolerated / focus on constant improvement / assumed to be in the right direction / resistance to changing the model", | |
94 | iv: "Surprised by failure / focus on operational efficiency") | |
95 | case .marketAction: | |
96 | return Stage( | |
97 | i: "Gambling / driven by gut", ii: "Exploring a \"found\" value", | |
98 | iii: "Market analysis / listening to customers", iv: "Metric driven / build what is needed") | |
99 | case .efficiency: | |
100 | return Stage( | |
101 | i: "Reducing the cost of change (experimentation)", ii: "Reducing cost of waste (Learning)", | |
102 | iii: "Reducing cost of waste (Learning)", iv: "Reducing cost of deviation (Volume)") | |
103 | case .decisionDrivers: | |
104 | return Stage( | |
105 | i: "Heritage / culture", ii: "Analyses & synthesis", iii: "Analyses & synthesis", | |
106 | iv: "Previous Experience") | |
107 | case .behavior: | |
108 | return Stage( | |
109 | i: "Uncertain when to use", ii: "Learning when to use", iii: "Learning through use", | |
110 | iv: "Known / common usage") | |
111 | } | |
112 | } | |
113 | ||
114 | static func title(_ type: StageType) -> String { | |
115 | switch type { | |
116 | case .general: | |
117 | return "Activities" | |
118 | case .practice: | |
119 | return "Practice" | |
120 | case .data: | |
121 | return "Data" | |
122 | case .knowledge: | |
123 | return "Knowledge" | |
124 | case .ubiquity: | |
125 | return "Ubiquity" | |
126 | case .certainty: | |
127 | return "Certainty" | |
128 | case .publicationTypes: | |
129 | return "Publication Types" | |
130 | case .market: | |
131 | return "Market" | |
132 | case .knowledgeManagement: | |
133 | return "Knowledge Management" | |
134 | case .marketPerception: | |
135 | return "Market Perception" | |
136 | case .userPerception: | |
137 | return "User Perception" | |
138 | case .perceptionInIndustry: | |
139 | return "Perception In Industry" | |
140 | case .focusOfValue: | |
141 | return "Focus Of Value" | |
142 | case .understanding: | |
143 | return "Understanding" | |
144 | case .comparison: | |
145 | return "Comparison" | |
146 | case .failure: | |
147 | return "Failure" | |
148 | case .marketAction: | |
149 | return "Market Action" | |
150 | case .efficiency: | |
151 | return "Efficiency" | |
152 | case .decisionDrivers: | |
153 | return "Decision Drivers" | |
154 | case .behavior: | |
155 | return "Behavior" | |
156 | } | |
157 | } | |
158 | } | |
159 | ||
160 | enum StageType: String, CaseIterable, Identifiable { | |
161 | case general | |
162 | case practice | |
163 | case data | |
164 | case knowledge | |
165 | ||
166 | case ubiquity | |
167 | case certainty | |
168 | case publicationTypes | |
169 | ||
170 | case market | |
171 | case knowledgeManagement | |
172 | case marketPerception | |
173 | case userPerception | |
174 | case perceptionInIndustry | |
175 | case focusOfValue | |
176 | case understanding | |
177 | case comparison | |
178 | case failure | |
179 | case marketAction | |
180 | case efficiency | |
181 | case decisionDrivers | |
182 | ||
183 | case behavior | |
184 | ||
185 | var id: String { self.rawValue } | |
186 | ||
187 | static let types: [StageType] = [.general, .practice, .data, .knowledge] | |
188 | static let characteristics: [StageType] = [.ubiquity, .certainty, .publicationTypes] | |
189 | static let properties: [StageType] = [ | |
190 | .market, .knowledgeManagement, .marketPerception, .userPerception, | |
191 | .perceptionInIndustry, .focusOfValue, .understanding, .comparison, .failure, | |
192 | .marketAction, .efficiency, .decisionDrivers, | |
193 | ] | |
194 | static let custom: [StageType] = [.behavior] | |
195 | } |