aboutsummaryrefslogtreecommitdiff
path: root/Map/Views/Stage.swift
blob: 23432ad5382aea691d4021232d4a03b7ff480410 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
struct Stage {
  let i: String
  let ii: String
  let iii: String
  let iv: String

  static func stages(_ type: StageType) -> Stage {
    switch type {
    case .general:
      return Stage(
        i: "Genesis", ii: "Custom Built", iii: "Product (+rental)", iv: "Commodity (+utility)")
    case .practice:
      return Stage(
        i: "Novel", ii: "Emerging", iii: "Good", iv: "Best")
    case .data:
      return Stage(
        i: "Unmodelled", ii: "Divergent", iii: "Convergent", iv: "Modelled")
    case .knowledge:
      return Stage(
        i: "Concept", ii: "Hypothesis", iii: "Theory", iv: "Accepted")
    case .ubiquity:
      return Stage(
        i: "Rare", ii: "Slowly Increasing Consumption", iii: "Rapidly Increasing Consumption",
        iv: "Widespread and stabilising")
    case .certainty:
      return Stage(
        i: "Poorly Understood", ii: "Rapid Increase In Learning",
        iii: "Rapid Increase in Use / fit for purpose", iv: "Commonly understood (in terms of use)")
    case .publicationTypes:
      return Stage(
        i: "Normally describing the wonder of the thing",
        ii: "Build / construct / awareness and learning",
        iii: "Maintenance / operations / installation / feature", iv: "Focused on use")
    case .market:
      return Stage(
        i: "Undefined Market", ii: "Forming Market", iii: "Growing Market", iv: "Mature Market")
    case .knowledgeManagement:
      return Stage(
        i: "Uncertain", ii: "Learning on use", iii: "Learning on operation", iv: "Known / accepted")
    case .marketPerception:
      return Stage(
        i: "Chaotic (non-linear)", ii: "Domain of experts", iii: "Increasing expectation of use",
        iv: "Ordered (appearance of being trivial) / trivial")
    case .userPerception:
      return Stage(
        i: "Different / confusing / exciting / surprising", ii: "Leading edge / emerging",
        iii: "Increasingly common / disappointed if not used", iv: "Standard / expected")
    case .perceptionInIndustry:
      return Stage(
        i: "Competitive advantage / unpredictable / unknown",
        ii: "Competitive advantage / ROI / case examples",
        iii: "Advantage through implementation / features", iv: "Cost of doing business")
    case .focusOfValue:
      return Stage(
        i: "High future worth", ii: "Seeking profit / ROI", iii: "High profitability",
        iv: "High volume / reducing margin")
    case .understanding:
      return Stage(
        i: "Poorly Understood / unpredictable",
        ii: "Increasing understanding / development of measures",
        iii: "Increasing education / constant refinement of needs / measures",
        iv: "Believed to be well defined / stable / measurable")
    case .comparison:
      return Stage(
        i: "Constantly changing / a differential / unstable",
        ii: "Learning from others / testing the water / some evidential support",
        iii: "Feature difference", iv: "Essential / operational advantage")
    case .failure:
      return Stage(
        i: "High / tolerated / assumed", ii: "Moderate / unsurprising but disappointed",
        iii: "Not tolerated, focus on constant improvement",
        iv: "Operational efficiency and surprised by failure")
    case .marketAction:
      return Stage(
        i: "Gambling / driven by gut", ii: "Exploring a \"found\" value",
        iii: "Market analysis / listening to customers", iv: "Metric driven / build what is needed")
    case .efficiency:
      return Stage(
        i: "Reducing the cost of change (experimentation)", ii: "Reducing cost of waste (Learning)",
        iii: "Reducing cost of waste (Learning)", iv: "Reducing cost of deviation (Volume)")
    case .decisionDrivers:
      return Stage(
        i: "Heritage / culture", ii: "Analyses & synthesis", iii: "Analyses & synthesis",
        iv: "Previous Experience")
    case .behavior:
      return Stage(
        i: "Uncertain when to use", ii: "Learning when to use", iii: "Learning through use",
        iv: "Known / common usage")
    }
  }

  static func title(_ type: StageType) -> String {
    switch type {
    case .general:
      return "Activities"
    case .practice:
      return "Practice"
    case .data:
      return "Data"
    case .knowledge:
      return "Knowledge"
    case .ubiquity:
      return "Ubiquity"
    case .certainty:
      return "Certainty"
    case .publicationTypes:
      return "Publication Types"
    case .market:
      return "Market"
    case .knowledgeManagement:
      return "Knowledge Management"
    case .marketPerception:
      return "Market Perception"
    case .userPerception:
      return "User Perception"
    case .perceptionInIndustry:
      return "Perception In Industry"
    case .focusOfValue:
      return "Focus Of Value"
    case .understanding:
      return "Understanding"
    case .comparison:
      return "Comparison"
    case .failure:
      return "Failure"
    case .marketAction:
      return "Market Action"
    case .efficiency:
      return "Efficiency"
    case .decisionDrivers:
      return "Decision Drivers"
    case .behavior:
      return "Behavior"
    }
  }
}

enum StageType: String, CaseIterable, Identifiable {
  case general
  case practice
  case data
  case knowledge
  case ubiquity
  case certainty
  case publicationTypes
  case market
  case knowledgeManagement
  case marketPerception
  case userPerception
  case perceptionInIndustry
  case focusOfValue
  case understanding
  case comparison
  case failure
  case marketAction
  case efficiency
  case decisionDrivers
  case behavior

  var id: String { self.rawValue }
}