Skip to content

Commit 96a12cb

Browse files
authored
Discovery brief user experience (#2)
1 parent 26047e9 commit 96a12cb

File tree

9 files changed

+420
-1
lines changed

9 files changed

+420
-1
lines changed

exercises/01.building-an-mvp/02.solution.stakeholder-meeting/discovery-brief.md

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,11 @@ This document now captures clarified answers and decisions before implementation
1414

1515
- 💼 Brett the Business Owner (business goals, viability, scope pressure)
1616
- Meeting input: prioritize fast learning and completed-plan outcomes
17+
- Meeting input: reference competitor UX patterns from when2meet.com, whenavailable.com, and Doodle, then differentiate via completion-first flow and MCP-enabled agent orchestration
18+
- Meeting input: visual direction should feel friendly and colorful with blues/greens, while remaining minimalistic and clean
1719
- 👤 Una the User (workflow pain, trust, usability expectations)
1820
- Meeting input: group chat coordination is fragmented, and most availability responses happen on phones
21+
- Meeting input: competitor tools are familiar but can feel clunky in mobile usage and ambiguous around final plan confidence
1922

2023
## Clarity resolved before implementation
2124

@@ -29,6 +32,12 @@ This document now captures clarified answers and decisions before implementation
2932
- Enterprise admin controls, deep integrations, and complex recurring scheduling
3033
- What is the MVP access model for participation and hosting?
3134
- No required accounts in MVP; anyone can create a schedule and receive a private host link to manage details and view results
35+
- What are the explicit MVP routes and responsibilities?
36+
- Home route (`/`): host selects start/end dates with standard date inputs and initial available schedule slots, then clicks "Create schedule"
37+
- Host dashboard route (`/s/{scheduleKey}/{hostKey}`): host can copy/share both links (public schedule link and private host dashboard link), edit schedule details/date/slot availability, and review attendee responses
38+
- Attendee schedule route (`/s/{scheduleKey}`): attendees enter name and select available slots; this route must be especially mobile friendly
39+
- Why build instead of just adopting existing tools?
40+
- Existing tools like when2meet.com, whenavailable.com, and Doodle validate demand, but we still need a tighter completion-first UX and agent-native workflows (AI agents using MCP to create, update, and finalize plans with users)
3241

3342
### Success clarity
3443

@@ -39,6 +48,11 @@ This document now captures clarified answers and decisions before implementation
3948
- Median time from poll creation to finalized time
4049
- What failure signal indicates the MVP is not working?
4150
- Many polls created, but few result in a confirmed plan
51+
- What UX quality bar should support the success metric?
52+
- Availability selection should feel spreadsheet-fast: like selecting time-slot cells in Excel on desktop, with clear visual state and low interaction friction
53+
- Proposed implementation direction from product/developer facilitation: on mobile, tap-to-select plus draggable corner handle expansion with edge auto-scroll
54+
- Overall product aesthetics should feel friendly and colorful (primarily blues/greens) without losing a minimalistic, clean interface
55+
- Route transitions should be direct and explicit: create on `/`, manage on `/s/{scheduleKey}/{hostKey}`, collect attendee availability on `/s/{scheduleKey}`
4256

4357
### Constraint clarity
4458

@@ -50,13 +64,17 @@ This document now captures clarified answers and decisions before implementation
5064
- Keep participant data minimal and avoid exposing private contact details
5165
- Technical constraints that could force tradeoffs
5266
- Use the existing web stack with lightweight sharing links and a mobile-first web experience
67+
- Preserve an interaction model that supports drag selection and future MCP-triggered scheduling actions without complex rewrites
68+
- Route model should keep host and attendee capabilities clearly separated while preserving easy sharing
5369

5470
### Risk clarity
5571

5672
- Top risks most likely to cause MVP failure
5773
- Poor mobile UX leading to incomplete availability submissions
5874
- Low invitee response rate
5975
- Scope creep from adding too many features in v1
76+
- UX interaction complexity for touch devices (selection, drag handles, and edge auto-scroll) causing accidental input
77+
- Confusion between host and attendee links causing incorrect sharing or lost host control
6078
- What evidence would indicate each risk is becoming real?
6179
- Polls with low completion
6280
- Low response rates despite poll creation
@@ -66,6 +84,8 @@ This document now captures clarified answers and decisions before implementation
6684
- Frictionless response flow with clearer status tracking
6785
- Avoid mandatory account creation in MVP; use private host link access for management
6886
- Limit v1 to a narrow set of social planning flows
87+
- Adopt proven interaction patterns: desktop cell selection inspired by spreadsheet tools, and mobile selection behavior similar to Google Sheets (tap cell, drag corner dot to expand, edge-drag auto-scroll)
88+
- Make route purpose explicit in UI copy and provide clear copy/share controls for both schedule and host links
6989

7090
## Questions asked in the meeting
7191

@@ -81,6 +101,16 @@ This document now captures clarified answers and decisions before implementation
81101
- Not in v1. Defer accounts and prioritize participation completion
82102
- How should hosts manage events in MVP without accounts?
83103
- Issue a private host dashboard link on event creation
104+
- What should the core route map be for MVP?
105+
- `/` for schedule creation, `/s/{scheduleKey}/{hostKey}` for host management, `/s/{scheduleKey}` for attendee responses
106+
- What capabilities must the host dashboard include on first release?
107+
- Easy copy/share for both links, schedule/date/slot editing controls, and attendee response visibility
108+
- If existing scheduling tools already work, why build this?
109+
- We need a differentiated UX for reliable plan completion plus AI-agent orchestration via MCP, not just another availability poll
110+
- Where are we drawing UX inspiration and which competitors should guide baseline expectations?
111+
- when2meet.com, whenavailable.com, and Doodle
112+
- What should the design feel like and look like?
113+
- Friendly and colorful with a calm blue/green palette, but still minimalistic and clean so core scheduling actions stay visually obvious
84114

85115
### For 👤 Una the User
86116

@@ -94,6 +124,16 @@ This document now captures clarified answers and decisions before implementation
94124
- No. The use case is too infrequent for most users to install an app; mobile web is sufficient
95125
- Should participants be required to create accounts?
96126
- No. Account creation adds too much friction for an infrequent-use flow
127+
- What should attendees do on the schedule page?
128+
- Enter a name and select available slots on `/s/{scheduleKey}`
129+
- Which existing tools and interaction patterns feel familiar enough to borrow?
130+
- when2meet.com, whenavailable.com, and Doodle are familiar references
131+
- How do those competitor experiences feel in real use?
132+
- Familiar enough to start quickly, but clunky on phones and still weak on clear finalization confidence
133+
- What should mobile time-slot selection feel like?
134+
- Kody's proposed direction validated by user feedback: similar to Google Sheets mobile selection (tap a start cell, drag a corner handle to expand selected slots, auto-scroll near view edges)
135+
- Which route is most sensitive to mobile usability quality?
136+
- `/s/{scheduleKey}` attendee submission flow, because most invitees respond on phones
97137

98138
## Assumptions to test
99139

@@ -114,3 +154,15 @@ This document now captures clarified answers and decisions before implementation
114154
- A narrow set of social planning use cases is enough to validate viability
115155
- How we will validate it:
116156
- Measure completion and repeat usage across the initial social planning cohorts
157+
158+
- Assumption:
159+
- Why we believe this:
160+
- Familiar spreadsheet-like slot selection (desktop) and Google Sheets-like touch selection (mobile) will reduce cognitive load and improve completion rates
161+
- How we will validate it:
162+
- Track response-completion and error-correction rates across desktop and mobile cohorts, and compare against baseline interaction prototypes
163+
164+
- Assumption:
165+
- Why we believe this:
166+
- Explicit route separation (`/`, `/s/{scheduleKey}/{hostKey}`, `/s/{scheduleKey}`) will reduce user confusion while preserving fast sharing
167+
- How we will validate it:
168+
- Track host-link misuse rates, attendee completion rates, and support friction signals related to link-sharing mistakes

exercises/01.building-an-mvp/02.solution.stakeholder-meeting/meeting-transcript.md

Lines changed: 74 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,13 +35,46 @@ existing tools do not solve well, and we can define success against that gap.
3535
💼 Brett: Exactly. If we cannot outperform the default chat-plus-poll behavior on
3636
finalized plans, we should stop and not keep investing.
3737

38+
🐨 Kody: Where are we going to draw inspiration for the user experience? Which
39+
competitors should we study directly?
40+
41+
💼 Brett: Start with when2meet.com, whenavailable.com, and Doodle. Those are the
42+
closest references for how people already think about sharing availability.
43+
44+
🐨 Kody: Great. Una, what do those experiences feel like in real use?
45+
46+
👤 Una: They are familiar enough to get people started quickly, which is good.
47+
But they also feel clunky when chats are messy and the final plan is still
48+
unclear.
49+
50+
👤 Una: On phones, the biggest issue is interaction friction. If selecting slots
51+
is awkward, people stop midway and go back to chat.
52+
53+
💼 Brett: That is why we should build our own instead of just adopting one tool.
54+
We can keep familiar interaction patterns, but improve completion and integrate
55+
cleanly with AI agents via MCP.
56+
57+
🐨 Kody: What should the design feel like and look like?
58+
59+
💼 Brett: I want it to feel like planning with friends, not filling out a stiff
60+
form. Friendly energy, clear momentum, and no visual intimidation.
61+
62+
💼 Brett: Color-wise, I keep picturing blues and greens because they feel calm,
63+
optimistic, and trustworthy for coordination.
64+
65+
💼 Brett: At the same time, I do not want visual noise. It should stay minimal and
66+
clean so the schedule grid and final decision stand out.
67+
68+
🐨 Kody: Good direction. We can tune the existing design system/theme foundation to
69+
that style instead of inventing a brand-new visual system.
70+
3871
🐨 Kody: Una, from your perspective, what is the most painful part of coordinating a
3972
plan today?
4073

4174
👤 Una: My pain is that group chats get noisy, people miss messages, and nobody knows
4275
if a plan is actually confirmed.
4376

44-
🐨 Kody: For objective, should we optimize for poll creation or finalized plans?
77+
🐨 Kody: What should the MVP optimize for first?
4578

4679
💼 Brett: Honestly, my instinct is we should make it feel complete from day one.
4780
I am thinking polished invites, reminders, some level of calendar connection,
@@ -135,9 +168,25 @@ people will go back to chat.
135168
👤 Una: Also, most people in my groups will respond on their phones, not desktop.
136169
If the mobile experience is clunky, they simply will not finish availability.
137170

171+
🐨 Kody: Mobile usage is core for this audience. I want to design that interaction
172+
intentionally.
173+
174+
👤 Una: Agreed. If mobile feels awkward, people will not finish.
175+
138176
🐨 Kody: Great call. So mobile-first UX is not optional; it is part of core
139177
viability.
140178

179+
🐨 Kody: One direction I would propose is a spreadsheet-like model: select time
180+
slots like Excel cells on desktop, then on mobile tap a cell and drag a corner
181+
handle like Google Sheets to expand the range.
182+
183+
🐨 Kody: If the drag reaches near the edge, we should auto-scroll so people can
184+
continue selecting without lifting their finger. Does that match what would feel
185+
natural?
186+
187+
👤 Una: Yes, that would feel natural. The key is that it stays obvious and easy to
188+
control.
189+
141190
🐨 Kody: Is a native mobile app on the table for this MVP?
142191

143192
👤 Una: Honestly, no. This is too infrequent for most people to install an app.
@@ -156,6 +205,30 @@ to manage event details and view results.
156205

157206
👤 Una: That works. As long as the host link is clear and easy to find again.
158207

208+
🐨 Kody: Let’s make routes explicit so implementation and UX stay aligned. On the
209+
home page (`/`), the host should pick start/end dates using standard date
210+
inputs, select the time slots they want in the schedule, then tap a "Create
211+
schedule" button. Does that match the expected first step?
212+
213+
💼 Brett: Yes, that is exactly the creation flow we need.
214+
215+
🐨 Kody: After create, we should route to the host dashboard at
216+
`/s/{scheduleKey}/{hostKey}`.
217+
218+
💼 Brett: Correct. That page must make it easy to copy/share both links: the
219+
public attendee schedule link and the private host dashboard link.
220+
221+
🐨 Kody: And on that same host dashboard, hosts need clear controls to edit the
222+
date range and available slot times, plus a live view of attendee responses.
223+
224+
💼 Brett: Yes. If host edits are awkward, coordination falls apart.
225+
226+
🐨 Kody: The attendee route should be `/s/{scheduleKey}`, which is the link hosts
227+
send out.
228+
229+
👤 Una: Perfect. On that page, attendees should enter their name and mark the
230+
time slots they can do. That flow has to be very mobile friendly.
231+
159232
🐨 Kody: What constraints should shape scope immediately?
160233

161234
💼 Brett: I want this to feel premium right away. I know that is not a hard

exercises/01.building-an-mvp/03.solution.select-starter-architecture/README.mdx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,4 @@ Use these references:
1111
- <InlineFile file="starter-requirements.md" />
1212
- <InlineFile file="starter-decision.md" />
1313
- <InlineFile file="kellie-technical-transcript.md" />
14+
- <InlineFile file="implementation-brief.md" />

0 commit comments

Comments
 (0)