Skip to main content

Thin Vertical Slice Approach

What Thin Vertical Slices Make Sense for Roll Claw?

For the Roll Claw project, implementing thin vertical slices is particularly important due to the complex event-sourcing architecture, offline capabilities, and multi-user synchronization requirements. Here are the key thin vertical slices that make sense for our implementation:

1. Cat Sighting Recording & Retrieval

Why This is an Ideal Thin Vertical Slice:

  • Touches all layers of our architecture from UI to event storage
  • Tests our core event-sourcing implementation with real data
  • Validates offline functionality in a focused context
  • Provides immediate value to caretakers

Components Involved:

  • Mobile-friendly UI for quick sighting entry
  • Command handling for sighting records
  • Event storage and retrieval
  • Offline capability with synchronization
  • Cat entity projection from events
  • "Last seen" calculation logic

Success Criteria:

  • Caretaker can record a cat sighting while offline
  • Data synchronizes when connection is restored
  • Historical sightings are viewable in a timeline
  • System correctly identifies when a cat was last seen

2. Task Assignment & Completion

Why This is an Ideal Thin Vertical Slice:

  • Tests multi-user coordination features
  • Exercises notification components
  • Validates our approach to recurring events
  • Delivers immediate organizational value

Components Involved:

  • Task creation and assignment UI
  • Recurring task scheduling system
  • Task completion recording
  • Notification system for assignments
  • Task status projection from events
  • Multi-user conflict resolution

Success Criteria:

  • Tasks can be assigned to specific volunteers
  • Completion status is accurately tracked
  • Recurring tasks automatically regenerate
  • All volunteers see consistent task status
  • Completion notifications work reliably

3. Basic Health Status Recording

Why This is an Ideal Thin Vertical Slice:

  • Exercises our approach to complex event relationships
  • Tests health alert notifications
  • Validates integration of health data with cat profiles
  • Provides critical health monitoring value

Components Involved:

  • Health observation UI
  • Health status event creation
  • Alert notification system
  • Health history projection
  • Cat profile integration
  • Medical vocabulary handling

Success Criteria:

  • Health observations are properly recorded and timestamped
  • Health status is reflected in cat profiles
  • Historical health timeline is accessible
  • Alerts are triggered for concerning conditions

Why These Specific Slices?

These thin vertical slices were chosen because they:

  1. Test Critical Technical Risks: Each slice exercises our event-sourcing system, offline capabilities, and synchronization mechanisms—the "monkeys" identified in our risk assessment.

  2. Deliver Core Value: Each provides fundamental functionality that directly addresses the key pain points for colony caretakers.

  3. Touch All Architectural Layers: From UI through domain logic to event storage, each slice validates our full technology stack.

  4. Build Incrementally: Each slice builds on our foundation while being independently valuable.

  5. Enable Early Feedback: Caretakers can start using these features immediately and provide feedback before we build more complex functionality.

Implementation Strategy for the First Slice

For our first thin vertical slice—Cat Sighting Recording & Retrieval—we recommend the following implementation strategy:

  1. Start with Minimal Cat Entity: Include only ID, name, and basic description
  2. Implement Simple Location List: Predefined locations without complex hierarchy
  3. Create Basic Sighting Events: Timestamp, cat ID, location, and observer
  4. Build Mobile-First UI: Optimized for quick field recording
  5. Implement Offline Storage: Using local storage with sync capabilities
  6. Create Last-Seen Projection: Simple calculation based on sighting events
  7. Add Basic Timeline View: Chronological display of sighting events

We would explicitly defer:

  • Complex location hierarchies
  • Cat relationship tracking
  • Advanced filtering and search
  • Detailed analytics
  • Photo attachments

Iterative Enhancement of Slices

After implementing the first slice, we would follow this pattern:

  1. Release to a small user group for real-world testing
  2. Gather feedback on usability and performance
  3. Enhance the slice with refinements based on feedback
  4. Begin the next slice while continuing to refine the first
  5. Integrate slices as they mature

This approach allows us to validate our most significant technical risks early while delivering incremental value to users. It also ensures we don't overcommit to architectural decisions that might need adjustment based on real-world usage patterns.

Relationship to First Basecamp

Our thin vertical slices align closely with our First Basecamp concept but are even more narrowly focused. The First Basecamp represents a collection of thin vertical slices that together form our minimum viable product. By implementing and refining these slices one by one, we systematically build toward our First Basecamp while validating our approach at each step.

The First Basecamp includes these slices plus basic volunteer management and colony location definition features, forming a cohesive initial product that addresses the core needs of colony caretakers.

Technical Learning Objectives for Each Slice

Each slice provides an opportunity to validate specific technical approaches:

  1. Cat Sighting Recording & Retrieval

    • Event sourcing implementation
    • Offline data storage
    • Synchronization mechanisms
    • Basic projection patterns
  2. Task Assignment & Completion

    • Multi-user coordination
    • Conflict resolution
    • Recurring event patterns
    • Notification system architecture
  3. Basic Health Status Recording

    • Complex event relationships
    • Domain-specific vocabulary handling
    • Alert triggering logic
    • Timeline presentation

By focusing on these specific learning objectives with each slice, we can refine our architectural approach before committing to broader implementation.

Conclusion

The thin vertical slice approach is particularly well-suited for Roll Claw given the complex domain, event-sourcing architecture, and offline requirements. By implementing these focused slices, we can validate our technical approaches, deliver incremental value, and build toward our First Basecamp with reduced risk and increased confidence.

Each slice gives us the opportunity to learn and adjust our approach before expanding to more complex features, ensuring we build a system that truly meets the needs of colony caretakers in real-world conditions.