aboutsummaryrefslogtreecommitdiff
path: root/Map/Stage.swift
blob: 4a53adaca554f29fae562ad9adba60acda6975f1 (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
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 .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: "Needs to be pushed", II: "Shown in simple situations", III: "Shown in moderately complex situations ", IV: "Always shown")
        }
    }
    
    static func title(_ type: StageType) -> String {
        switch(type) {
        case .General:
            return "General"
        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 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 }
}