TechnologyThe BestieBeginner
Designing Software Systems, a free technology course on Tomo

Designing Software Systems

Learn how to turn messy business problems into clear, structured software blueprints. Master user story mapping, interactive wireframing, process modeling, and data architecture to design systems developers can build with precision.

Like Duolingo, but for Designing Software Systems. Tomo turns the whole topic into a game you play five minutes a day, until it actually sticks.

25 levels across 4 sections, about 50 minutes end to end, roughly 10 days at five minutes a day. It moves through Mapping User Needs to Functional Scope, Visualizing Interactions and Workflows, Structuring Data and Information Flow, and Ensuring System Quality and Coherence. It starts from scratch.

25 bite-size levelsAbout 5 minutes each

Free forever · No credit card · iPhone & Android

Sammy the Blueprint Spider, the guide who teaches the Designing Software Systems course
Designing Software Systems
with Sammy the Blueprint Spider
25
Levels
4
Sections
5
Min/day
What you'll learn

Key ideas in Designing Software Systems

  • A user story links a specific persona to a clear need and a concrete business outcome ('As a... I want... so that...')
  • Generic technical mandates hide who actually uses the feature and why they need it
  • The 'so that' clause prevents building technical features that provide no actual human benefit
  • Acceptance criteria define precise, unambiguous conditions that a tester or system test can verify as passed or failed
  • Vague quality descriptors like 'intuitive' or 'fast' cannot confirm whether a feature is complete
  • Specific limits, security rules, and error states provide clear boundaries for development
  • A vertical slice cuts across UI, logic, and database to deliver a narrow but working piece of functionality
  • Horizontal slices isolate a single architectural layer (like database-only or UI-only), which cannot be tested or used by an end user on its own
  • Delivering vertically allows early feedback and proves the end-to-end architecture works
  • The 'I' in INVEST stands for Independent: stories should be decoupled so teams can prioritize, schedule, and build them in any order
  • Tight coupling between stories creates bottlenecks and makes sprint planning unreliable
  • Stories with heavy dependencies should be refactored or combined to stand on their own
  • Compound stories bundle multiple distinct user capabilities together, hiding complexity and ballooning estimates
  • Words like 'and' or multiple verbs in the 'I want' clause often signal that a story can be split into smaller, atomic stories
  • Splitting compound requirements lets teams deliver high-priority pieces (like basic search) before tackling secondary ones (like wishlists)
  • The horizontal axis of a user story map represents time from left to right
Why not just Google it

You've tried the other tabs

Wikipedia

Thirty open tabs. Four facts you actually kept.

YouTube

You watched. You nodded. By Sunday it was gone.

ChatGPT

One answer, then back to scrolling.

Online courses

Eight weeks. You meant to finish. You didn't.

Tomo gives Designing Software Systems the Duolingo treatment: levels, streaks, and quick quizzes that test what you just learned. That game loop is what the tabs above never had, so it's the one you actually finish.

Try a question

Here's what playing it feels like

A real question from this course. Take your best guess.

Writing Clear Needs and Rules

Why is writing 'The system must support PDF exports' risky on its own?

Get it right to open this lesson and 24 more in the app.

Course map

Where Designing Software Systems takes you

  1. 1

    Mapping User Needs to Functional Scope

    • Writing Actionable User Stories
    • Story Mapping the User Journey
    • Defining System Boundaries with Use Cases
  2. 2

    Visualizing Interactions and Workflows

    • Wireframing and Interface Behavior
    • Modeling Workflows with Activity Diagrams
  3. 3

    Structuring Data and Information Flow

    • Relational Data Modeling and ERDs
    • Tracing Logic with Data Flow Diagrams
  4. 4

    Ensuring System Quality and Coherence

    • Non-Functional Requirements and Technical Integrity

4 sections · 8 units · 25 levels. Built to play, not to enroll.

New

Tomo is in ChatGPT

Tomo is also a ChatGPT plugin: the same playable courses, built and played inside your chat.

Add Tomo to ChatGPT
How it's taught

You pick the voice

This course
The Bestie

Designing Software Systems is taught in the Bestie style: your friend who just gets it. Want a different feel? In the app you can spin up the same topic in any of Tomo's teaching styles. Same facts, totally different vibe.

Start free

Start Designing Software Systems today.

Download Tomo, search Designing Software Systems, and play your first lesson in under a minute.