Project P1: Requirements and Design¶
Warning! Under Construction! Subject to Change!¶
Learning Goals¶
- Learn how to do effective user discovery interviews to learn about the problems your users have, how they are willing to have you solve them, and what value they ascribe your solution
- Learn how to get an LLM to create sound user stories that accurately reflect your planning goals
- Learn how to guide an LLM to generate architecture diagrams, class design diagrams, and other technical artifacts.
Project Context¶
You and your team will be spending the rest of the semester building all of the features that are present in the main product of the startup you have chosen. This assignment is intended to help you design a viable imitation of this product.
Deliverables¶
1. Initial Value Proposition and Product Description¶
Please answer the following questions.
Do NOT use an LLM for this part.
- What is the big idea of the startup you have chosen? (1–2 paragraphs)
- What problem is it solving?
- What is its solution?
- What makes their solution special and distinguishes it from the competition?
- What is/are the value proposition(s) for your product? (1–2 sentences)
Ask an LLM to describe the value proposition(s) for your product. (1–2 sentences)
- What prompt did you give the LLM and what value proposition(s) did it generate.
- What is the difference between the human and LLM-generated value propositions and which one is more compelling? (3–4 sentences)
Turn-in instructions¶
- Answers to question 1. (1-2 paragraphs)
- The value proposition(s) for your product, written by humans. (1-2 sentences)
- The value proposition(s) for your product, written by the LLM. (1-2 sentences)
- Describe the difference in the value propositions written by humans and LLMs. Explain which one is more compelling and why. (3-4 sentences)
- Turn in your chat log with the LLM.
2. Viability Analysis: Why Do People Want It?¶
In these exercises, you'll collect some initial viability data, and make a plan for collecting more as you build out your project.
2a. Figure out why people want the product¶
Create a list of 10 questions that will you learn about the problems that people have that could be addressed by the main product of the startup you chose. Heed these lessons from The Mom Test:
- Talk about their life instead of your idea.
- Ask about specifics in the past, instead of generic questions or opinions about the future.
2b. Measure/demonstrate that people want the product¶
Have four or more conversations with real people (not LLMs) who are somewhat engaged in your product's area of focus. For example, if you’re interested in solving pain points around coding apps, all four people should at least know how to code. Use your questions from the prior section as a starter script. However, ask followup questions to discover what problems your interviewees are having. You may record these if you like so you have transcripts to refer back to, but this is not required.
You must interview real humans for this assignment. Interviews with LLMs will NOT be accepted.
Recall the lessons you learned in our user discovery class about adapting your question style for the specific personality type in front of you.
-
Describe where you found these four people and how you talked to them (e.g., formally over zoom, informally in the gym, etc.).
-
Describe one mistake you made during your discovery conversations, and one exchange that went well (and why).
2c. Summarize what you learned¶
What problems did people have? How were they solving them? What wasn’t a problem? Summarize what you learned from your discovery conversations. What might this mean for the product/focus area/problem of choice?
Optional: If you recorded and transcribed your interviews, you may turn in two summaries.
- Summarize the interviews using only human brain power.
- Put away your original summary, and then ask the LLM to summarize the lessons you learned from the transcripts.
Turn-in instructions¶
Please turn in:
- The 10 interview questions you created.
- Your raw notes and transcripts, demonstrating that every group member participated in at least two interviews.
- Where you found your four interviewees and how you interviewed them.
- One thing that went well and one thing that went poorly in any interview.
- The five most useful questions you asked. (1 paragraph)
- The five most useful pieces of concrete data you collected. (1 paragraph)
- The summary, written by humans, of what you learned about the people you interviewed. (2 paragraphs)
- Optional: The summary, written by an LLM, of what you learned about the people you interviewed. Also turn in the LLM chat log. (2 paragraphs)
3. User Stories¶
In this section, you will create user stories that correspond to the primary use cases of the product. However, you may not write the user stories themselves. You have to use an LLM to do this for you.
The user stories should be customized by your understanding of the primary use cases of your startup's main product as well as the lessons you learned from the user discovery exercise above. These may not turn out identical to the product already in production, but that's ok. With everything we learn here, we can make it better!
- Get an LLM to create 10 user stories for your product. Make sure it uses the proper template:
- As a <user>, I want <action> so that <benefit>.
- Have the LLM add an explanation of what each user story is really about.
- Have the LLM estimate each user story's size as a t-shirt (Small, Medium, Large, Extra-Large)
- Be sure to tell the LLM that each user story must fit integrally into a 2-week sprint.
- Ask the LLM to evaluate the user stories according to the INVEST framework we learned in class.
- Throw out the 5 lowest ranked user stories.
- Have the LLM to prioritize the remaining 5 user stories into a product backlog. Ask it to assign the user stories to be accomplished to one of the next 5 2-week-long sprints (10 weeks of work).
Turn-in instructions¶
Please turn in:
- The original list of 10 user stories.
- The five user stories that were eliminated and what reason the LLM gave (and you agreed with) for dropping them. (1 paragraph each)
- List the top five user stories that you kept, in the order that they were assigned to sprints, and for each one, answer why it this the right story to work on and why do it in the sprint it was assigned to? (1 paragraph each)
- The chat log from all LLM interactions you had in doing this work.
Architecture and Design¶
In Project 1, you performed user discovery and created user stories with the help of LLMs. In Project 2, you will take three of those stories and expand them into a complete development specification (dev spec). This spec should serve as a blueprint for how you would build the product. By the end of this milestone, you will have a concrete technical plan, informed by your interviews, user stories, and the practices we’ve learned in class.
Your dev spec will also be a test of how effectively you can collaborate with LLMs on technical writing, while still applying your own engineering judgment.
Choose 3 user stories from your user stories in P1 and have an LLM expand them into dev specs. Your team must produce a spec for each of the 3 that includes the following sections with enough detail that you (or someone else) could implement it:
- Architecture Diagram
- Specify where the components run (e.g., client, server, cloud, etc.).
- Specify which information flows between components.
- List of classes
- APIs
Two of the three user stories should be independent of one another, however, the all dev specs must reflect that they are implemented in the same application.
The third user story must be dependent on one of other two, i.e., the stories are intertwined somehow (e.g., one implements a shared text editor and the other implements a way to make text in that editor bold). Practically for this assignment, the third user story's dev spec may require you to make modifications to the dependent user story's dev spec in order to add it to the plan.
We noticed that it's easy for the LLM to create inconsistencies between the sections in the dev spec. For example, there may be more classes shown in the class diagram than described in the List of Classes. That's something you'll have to look for and fix before turning in your assignment.
Turn-in Instructions¶
Please turn in a single document that contains these parts:
- The three user stories from P1 that you chose to expand into a dev spec, listed at the beginning of your document.
- Add the user stories to GitHub and turn in the links to each user story.
- First dev spec document containing all the sections above. Each section should have rationale to justify your decisions. After each section, copy-paste the chat log showing your prompts and the LLM’s responses.
- Commit this dev spec into your GitHub repo and turn in the link to it.
- Second dev spec document containing all the sections above. Each section should have rationale to justify your decisions. After each section, copy-paste the chat log showing your prompts and the LLM’s responses.
- Commit this dev spec into your GitHub repo and turn in the link to it.
- Third dev spec document (this is the one dependent on one of the previous two user stories) containing all the sections above. Each section should have rationale to justify your decisions. After each section, copy-paste the chat log showing your prompts and the LLM’s responses.
- Add an explanation of how the other user story's dev spec was modified to accommodate this user story's features.
- Commit this dev spec into your GitHub repo and turn in the link to it.
- A 1–2 paragraph reflection on how useful the LLM was in helping you create the dev specs, and what parts required the most human correction/reprompting.