-
Notifications
You must be signed in to change notification settings - Fork 1
enhance case and experiment templates and README #584
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
Case and Experiment Template Changes - ChangelogMajor Structural Changes1. Case Split: Brief + SpecificationWhat Changed: Cases now consist of two documents
Rationale: Cases were trying to serve both quick reference and detailed analysis needs, making them too long for engineers while lacking depth for product work. Splitting allows each audience to access what they need without cognitive overload. Note: Business metrics (revenue targets, cost estimates, ROI) are removed from both documents and live in separate internal business documentation. 2. Two Experiment TypesWhat Changed:
Rationale:
Testing Philosophy: Validate hypothesis → Move to next experiment → When multiple succeed, integrate and test comprehensively NOT traditional software development: Write feature → test comprehensively → deploy → next feature 3. Business Information SeparationWhat Changed: All cost estimates, revenue targets, ROI calculations, and money-related business metrics removed from GitHub templates Rationale: Business metrics are irrelevant to specifications and code implementation. They create noise for developers and should not be public. These now live in separate internal business documentation linked to Case Product Specifications as needed. Product vs Business Boundary: Case Product Specification can reference constraints (e.g., "due to cost limitations, Phase 1 delivers 7,000 TPS instead of ideal 10,000 TPS") without specific dollar amounts. Actual costs and financial analysis belong in business documentation. Case Template Changes4. Terminology Updates"Target System" → "Engineered System"
Scenario Naming Standardization:
Rationale: "Happy Path" is ambiguous and not standard product management terminology. New naming provides clear hierarchy and intent. Dependency Classification:
Rationale: Clear terminology prevents confusion about what actually prevents work versus what creates other types of issues. 5. Acceptance Criteria → Experiment TraceabilityWhat Changed: Link acceptance criteria directly to implementing experiments Format Example: **Scenario 1: Primary Scenario for Primary Agent**
- Given [detailed initial conditions]
- When [agent performs action]
- Then [agent experiences result]
**Acceptance Criteria:**
- [ ] [Criterion 1] → Experiment #45
- [ ] [Criterion 2] → Experiment #46, #47
- [ ] [Criterion 3] → Experiment #48 Rationale: Developers need clear connection between how their work will be validated (acceptance criteria) and what they're building (experiments). This is more direct and actionable than linking agent outcomes to experiments, since agent outcomes don't always map 1:1 to acceptance criteria or deliverables. Note: GitHub's checklist → sub-issue auto-linking feature is postponed due to technical connection issues between parent issues and sub-issues. Manual linking is used instead. 6. Agent Priority Overview - Intentional ExceptionWhat Changed: Agent Priority Overview appears in BOTH Case Brief and Case Product Specification Rationale: Engineers need to know WHO they're building for without diving into Coda. This is the ONE intentional exception to the "link, don't duplicate" principle. Implementation:
7. Simplified System ContextWhat Changed:
Rationale:
8. Dependencies: Blocking OnlyWhat Changed: Record only dependencies that actively prevent work from starting or continuing Rationale: Non-blocking relationships create noise without execution value. Architectural relationships and technical interfaces belong in ADRs and Architecture Documentation. Case templates should contain only information that directly impacts when and how work can proceed. 9. Decision Log and References StructureWhat Changed:
Rationale:
10. Review & Acknowledgment SectionWhat Changed: Added checkbox section for stakeholders to confirm they've read and understood the case Rationale: Creates accountability and visibility into who has reviewed important decisions without requiring separate tracking systems. 11. Case Product Specification AdditionsWhat Changed: Added new sections:
Rationale:
12. Problem Statement Placement OptimizationWhat Changed: Removed Problem Statement section entirely from Case Brief
Rationale: Eliminates duplication between Brief and Spec, simplifies Brief, provides single source of truth in Spec where there's room for depth Experiment Template Changes13. Hypothesis RestructureWhat Changed: Hypothesis now focuses on technical approach and measurable outcomes
Success Criteria aligned: Experiment success criteria should be technical and measurable - proving or disproving the technical hypothesis. Product success criteria live in Case Brief (acceptance criteria). Reference Case Brief for context, but define experiment-specific technical thresholds. Rationale: Previous hypotheses were too product-focused, duplicating case content. Experiments are technical validation exercises - hypotheses and success criteria should reflect this. Engineers need to understand what they're testing technically, not repeat product value propositions. 14. Experiment Completion CriteriaWhat Changed: Experiment completion is determined through two complementary mechanisms: 1. Outcomes Section (Tangible Deliverables):
2. Success Criteria (Hypothesis Validation):
Experiment complete when: All Outcomes checked + Success Criteria measured + Results documented Example Concrete Outcomes:
Rationale: This structure serves the same purpose as traditional "Definition of Done" but aligns with experimental methodology where both tangible outputs (Outcomes) and hypothesis validation (Success Criteria) define completion. Outcomes should be concrete artifacts, not restatements of what the experiment does. 15. Verification vs Validation SeparationWhat Changed: Clear distinction between technical testing and user testing
Standard Verification (Assumed):
Optional Verification Documentation:
Rationale: These are different activities for different roles. Mixing them created role confusion and made templates too heavyweight. Verification confirms technical hypothesis; validation confirms user value. Most experiments use standard software development verification practices. Documenting these repeatedly creates template bloat without adding value. Engineers document only when they're doing something different from the organizational standard, keeping the template lightweight while ensuring special verification needs are captured. New Documentation & Processes16. ADR for Case DecompositionWhat Changed: New lightweight ADR template specifically for documenting case-to-experiment decomposition decisions Required Sections:
Minimal/Optional Sections:
Rationale: No record exists of WHY particular experiments were chosen for a case, making it impossible to revisit or challenge decomposition decisions later. This captures the architectural reasoning behind experiment structure without heavyweight process. Note: This is a separate ADR template variant, distinct from standard technical ADRs. 17. Architectural Forum ProcessWhat Changed: When cases emerge, hold architectural forum to discuss experiment breakdown before work begins Rationale: Case-to-experiment decomposition is an architectural decision requiring input from multiple perspectives (architects, tech leads, engineers). Forums ensure this happens consciously with documented reasoning rather than ad-hoc decisions. Process: Forum produces Case Decomposition ADR documenting the decision. 18. Role-Document MappingWhat Changed: Explicit statement in each template about primary role(s) it serves
Additional Guidance:
Rationale: Documents trying to serve too many roles simultaneously created cognitive overload. Clear mapping ensures each role has appropriate documentation level without unnecessary detail or missing context. 19. Content Linking PrincipleWhat Changed: Guideline to link rather than duplicate content across templates Rationale: Duplicated content gets out of sync, creating maintenance burden and inconsistency. Links maintain single source of truth. Exception: Agent Priority Overview appears in both Case Brief and Case Product Specification (percentages + rationale only in Brief; full analysis in Spec). 20. Priority ManagementWhat Changed: Priority belongs at case level, managed through GitHub Projects Implementation:
Rationale: If experiments within a case need different priorities, create separate cases and deliver incrementally. Priority should be visible at portfolio level (GitHub Projects) rather than buried in case documentation. Principles & Philosophy21. Experimental Development MethodologyCore Philosophy: "Run fast and break things" Development Flow:
NOT: Write feature → test comprehensively → deploy → next feature (traditional software development) Rationale: Experimental approach prioritizes learning and validation speed. Comprehensive testing and production readiness happen after technical approach is proven, not during exploration. 22. Engineer Freedom and Decision RightsPrinciple: Don't treat developers like machines - provide guidelines, not prescriptive templates Implementation:
Rationale: Over-specification stifles creativity and slows development. Engineers need freedom to make technical decisions within their domain while having clear guidance on expectations. 23. Knowledge Preservation PriorityCurrent Reality: Documentation system preserves knowledge even if structure not yet optimal Acceptance: Templates will be "objectively large" due to knowledge volume, but proper role separation and linking strategy addresses usability Philosophy: Better to capture knowledge imperfectly than lose it waiting for perfect structure. Templates will continue evolving as methodology matures. 24. Iterative Document CreationWorkflow Context (for future Development Methodology Guide):
Rationale: Documents don't need to be complete before review. Early feedback on partial documents (e.g., just system description + agent overview) prevents wasted effort. Future Work (Out of Scope)
|
Case Product Specification template: https://coda.io/d/QF-Network_df6rzXCWZj8/Test_suauye0W |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
what I see is a lot of extra water and bureaucracy. These issues should be easy to fill and read, the idea was to make them simpler.
- Scope Limit: Target 3-6 month achievable milestones | ||
- Experiment Mapping: Link acceptance criteria to implementing experiments | ||
- Metrics Cascade: Case Product Specification defines product success metrics → Case Brief translates to verifiable acceptance criteria → Experiments validate technical implementation | ||
- Link Don't Duplicate: Reference specifications, don't copy content] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- Link Don't Duplicate: Reference specifications, don't copy content] | |
- DRY: Reference specifications, don't copy content] |
|
||
**Scenario 3: [Alternative Path]** | ||
**Acceptance Criteria:** | ||
- [ ] [Specific criterion] → **Experiment**: [Link #XXX when available or TBD] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
not clear why we need a backlink to experiment here
*For detailed interfaces and integration points, see: [Case Architecture Specification](link-to-arch-doc)* | ||
|
||
## System Context & Boundaries | ||
## Critical Dependencies & Blockers |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
objection: there are tags and comments for blockers
- [Case/System #Y]: [What depends on this case's completion] | ||
|
||
### Quality Attributes | ||
**Bottlenecks** (Resource constraints): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
objection: this is an architectural question.
The whole section might be moved to architecture.
Probability: [High / Med / Low] | ||
Mitigation Strategy: [Mitigation approach] | ||
Owner: [Responsible person] | ||
- [Date] - ADR #[XXXX] - [Case decomposition decision] - [Link to ADR] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
you don't need backlinks if in each ADR you will mention this case. Then github issue will mention the links below.
It's an overengineering: it will be a pain in the ass to fill this doc with so many requirements.
[Enumeration of related ADRs - decisions themselves live in ADR documents] | ||
|
||
## Learnings and Insights | ||
- [Date] - ADR #[XXXX] - [Case decomposition decision] - [Link to ADR] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
commented in case
|
||
[What we learned about the system] | ||
[Unexpected technical discoveries] | ||
**Full Case Details:** |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
repeated in case
Status: [Active/Superseded by ADR #[XXXX]] | ||
|
||
[To be filled after experiment completion] | ||
## References & Links |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
not needed
|
||
## Decision | ||
|
||
**Parent Case:** [Link to Case Brief] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
it's not always parent
|
||
**Parent Case:** [Link to Case Brief] | ||
|
||
**Experiment List:** |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
just imagine how often you will have to update all these links everywhere
Summary
This PR addresses critical usability and clarity issues in both case and experiment templates. The changes maintain the product-focused case methodology while significantly improving template clarity, reducing confusion, and establishing better integration between cases and experiments. New templates better serve readers regardless of their role.
Key Changes and Problems Addressed in Case Template
1. Interface/Dependencies Confusion
User feedback showed confusion between these sections. The Interfaces and Dependencies sections overlapped significantly, causing confusion about where to document different types of system relationships
Solution: Combined into Integration Points & Dependencies with clear subsections and extensive examples
2. Case-Experiment Integration Gap
No systematic way to link case Acceptance Criteria to experiment Validation, causing alignment issues
Solution: Added experiment mapping directly to Agent Analysis outcomes with structured workflow. This creates direct traceability: user needs -> case criteria -> experiment validation, enabling better coordination between product and technical teams while maintaining case-experiment integration.
3. Metrics Duplication
Success metrics in the Agent Analysis section often duplicate the metrics presented in the Acceptance Criteria section.
Solution: Remove the Success metrics.
4. Business Stakeholder Clarity
Non-developers couldn't easily verify case completion or understand technical sections
Solution: Enhanced acceptance criteria with demonstration methods and validation categories (Observable, Measurable, Testable, User-Validated)
5. Resource Planning Visibility
Business stakeholders need visibility into total resource requirements across related experiments for planning and approval decisions
Solution: Added human resources planning to Business Constraints section. This enables better resource allocation and budget planning at case level
Key Changes and Problems Addressed in Experiment Template
1. Technical Implementation Guidance Gap
Experiments lacked clear "what to build" and "when it's done" sections
Solution: Added Implementation Requirements and Definition of Done sections with technical-focused hypothesis structure
2. Product-Focused Hypothesis
Original format mixed product thinking with technical implementation.
Solution: Changed to technical-focused hypothesis structure. New format aligns with "experiments are technical validation of case assumptions" methodology.
3. System Context Fragmentation
Scattered system information across multiple sections made it hard to understand experiment scope and dependencies
Solution: Expanded and structured Experiment System Context with comprehensive subsections matching case format. This provides complete sub-system picture for developers and researchers. Despite some duplication, System Context in both templates serve distinct purposes for different audiences.
Changes in Both Templates
1. Risk Assessment Inconsistency
Narrative risk format made comparison and tracking difficult
Solution: Standardized table format with Impact/Probability/Mitigation/Owner/Experiment columns
2. Review Process Traceability Gap
No systematic way to track who reviewed and understood case/experiment content
Solution: Added Review & Acknowledgment section with checkboxes for key stakeholders
Concerns and Risks
Template Complexity Increase
Templates are significantly longer and more complex. Users may skip sections or fill incorrectly due to cognitive overload
Mitigation: Added extensive examples and clear section purposes
System Context Placement Issues
Target System Context & Boundaries comes AFTER detailed Agent Analysis. Reader cannot fully understand agent needs/journeys without knowing system scope and integration points
Current solution: Current approach prioritizes product/user information before technical details, though this may impact system understanding
Mitigation: Move Target System Context & Boundaries to position right after Value Proposition
Quality Attributes Redundancy
Quality Attributes may repeat information from Acceptance Criteria and it's unclear why similar information is provided twice
Current solution: Template notes potential duplication. It also adds sections that are important to us, such as Security and Scalability.
Unrelated Business Constraints in the Case
The current Business Constraints subsection invites headcount, and other money-related details. This is not product-facing and risks mixing internal decisioning with stakeholder-facing documentation.
Mitigation: Re,ove Business Constraints section from the case template
Maintenance Overhead
Experiment mapping in cases requires updates when experiments change and may cause case-experiment drift if updates aren't maintained
Mitigation: Clear workflow guidance and reminder notes
System Context Duplication
Experiment System Context may duplicate case information
Current solution: Accepted for subsystem clarity and developer self-sufficiency
Mitigation: Reference notes pointing to parent case for full context
Traceability Issues
Include in experiment additional sections like Impact on Parent Case and Review & Acknowledgment, because GitHub comments hard to find within automated messages