#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct Step {
pub name: &'static str,
pub outcome: &'static str,
}
pub fn framework() -> [Step; 6] {
[
Step {
name: "Define the outcome",
outcome: "Agree on the measurable business result.",
},
Step {
name: "Map the workflow",
outcome: "Document actors, decisions, handoffs, and exceptions.",
},
Step {
name: "Establish the source of truth",
outcome: "Choose authoritative data and ownership.",
},
Step {
name: "Design the smallest useful release",
outcome: "Deliver value with controlled scope.",
},
Step {
name: "Automate with guardrails",
outcome: "Add review, fallback, and observability.",
},
Step {
name: "Measure and improve",
outcome: "Track adoption, quality, and business impact.",
},
]
}
#[cfg(test)]
mod tests {
use super::framework;
#[test]
fn framework_has_six_ordered_steps() {
let steps = framework();
assert_eq!(steps.len(), 6);
assert_eq!(steps[0].name, "Define the outcome");
assert_eq!(steps[5].name, "Measure and improve");
}
}