Example 4: Approval Workflow
Define business rules without ambiguity
Poor Specification
Purchase Approval System
We need an approval workflow for purchases. Different people should approve based on amount.
Process:
- Employee creates purchase request
- Manager approves
- For big purchases, higher approval needed
- Finance should be involved
- Track status
- Send notifications
System should prevent unauthorized purchases and maintain audit trail. Should be flexible for different scenarios.
Urgent requests should be handled quickly. Integration with accounting system required.
We need an approval workflow for purchases. Different people should approve based on amount.
Process:
- Employee creates purchase request
- Manager approves
- For big purchases, higher approval needed
- Finance should be involved
- Track status
- Send notifications
System should prevent unauthorized purchases and maintain audit trail. Should be flexible for different scenarios.
Urgent requests should be handled quickly. Integration with accounting system required.
❌ Problems:
- No approval limits defined
- "Big purchases" is vague
- Unclear escalation path
- "Flexible" undefined
- No urgency criteria
Better Specification
Purchase Order Approval Workflow
Approval Matrix:
< $1,000: Direct Manager
$1,000-$5,000: Manager + Department Head
$5,000-$25,000: Above + CFO
> $25,000: Above + CEO
Workflow Steps:
1. Requester submits (vendor, items, amount, justification)
2. System routes per matrix above
3. Approvers have 48 hrs (email at 0, 24, 47 hrs)
4. Any rejection returns to requester with reason
5. Approval creates PO in Odoo Accounting
Special Rules:
- Urgent flag: 4-hour SLA, SMS alerts
- Budget exceeded: Auto-reject with message
- Delegation: Out-of-office auto-forwards
Audit: Log all actions with timestamp, user, IP
Approval Matrix:
< $1,000: Direct Manager
$1,000-$5,000: Manager + Department Head
$5,000-$25,000: Above + CFO
> $25,000: Above + CEO
Workflow Steps:
1. Requester submits (vendor, items, amount, justification)
2. System routes per matrix above
3. Approvers have 48 hrs (email at 0, 24, 47 hrs)
4. Any rejection returns to requester with reason
5. Approval creates PO in Odoo Accounting
Special Rules:
- Urgent flag: 4-hour SLA, SMS alerts
- Budget exceeded: Auto-reject with message
- Delegation: Out-of-office auto-forwards
Audit: Log all actions with timestamp, user, IP
✓ Clear improvement:
- Exact approval limits
- Step-by-step flow
- Specific timeframes
- Defined special cases
- Audit requirements clear