1#[derive(Clone, Copy, Debug, Eq, PartialEq)]
8pub struct Step {
9 pub name: &'static str,
11 pub outcome: &'static str,
13}
14
15pub fn framework() -> [Step; 6] {
18 [
19 Step {
20 name: "Define the outcome",
21 outcome: "Agree on the measurable business result.",
22 },
23 Step {
24 name: "Map the workflow",
25 outcome: "Document actors, decisions, handoffs, and exceptions.",
26 },
27 Step {
28 name: "Establish the source of truth",
29 outcome: "Choose authoritative data and ownership.",
30 },
31 Step {
32 name: "Design the smallest useful release",
33 outcome: "Deliver value with controlled scope.",
34 },
35 Step {
36 name: "Automate with guardrails",
37 outcome: "Add review, fallback, and observability.",
38 },
39 Step {
40 name: "Measure and improve",
41 outcome: "Track adoption, quality, and business impact.",
42 },
43 ]
44}
45
46#[cfg(test)]
47mod tests {
48 use super::framework;
49
50 #[test]
51 fn framework_has_six_ordered_steps() {
52 let steps = framework();
53 assert_eq!(steps.len(), 6);
54 assert_eq!(steps[0].name, "Define the outcome");
55 assert_eq!(steps[5].name, "Measure and improve");
56 }
57}