Previous Lecture | lect05 | Next Lecture |
lect05, Thu 04/09
Thursday Lecture: user stories and MVP, then next.js intro, OR user stories
Outline of today
- Hwk for Monday https://ucsb-cs48.github.io/s20/hwk/h01/
- A few remarks about Agile
- A brief MVP (minimum viable product) case-study
- A choice
- Lecture/Demo by Scott Chow on next.js based on https://nextjs.org/learn/basics/getting-started/setup
- Work in your teams on defining your MVP
Homework for Monday Midnight
- https://ucsb-cs48.github.io/s20/hwk/h01/
- It’s an intro to Agile
- Note: on the “dates” question
- I am not usually one for memorizing dates
- I’m making an exception in this case because it’s important to know how long Agile has been around.
- Many folks act as if it’s either “brand new”, or “has been around for ever”
- The actual age of Agile is important to putting it into context
What is important about Agile?
- Inspect and Adapt
- This is the most important Agile principle
- The idea is to be empirical, scientific, flexible
- Dogmatic adherence to process is the opposite of true agile
- Inspect and Adapt what?
- What/Why: The product we are building, based on user/customer feedback
- How: The process by which we build it, based on periodic retrospectives
Where do user stories fit in?
- They drive the process of development
- They keep the focus on what the user needs and why they need it
- In these projects: you are your own user
- Note that it’s a mantra of software development: You are not your user
- In most real world settings, that literally true
- That’s one way this course differs from real world Agile
- Keep in mind what hat you are wearing
- The user hat or the developer hat
Pitfalls
- Suggesting features that would be “fun to build”
- Suggesting features that would be “a good learning experience”.
- Suggesting building a feature “just because you can”
All of those are fine for
- a “hackathon project” or a “side project”
- in the real world: “10% time”, “Future Focused Friday”, “Hack Day”
BUT:
- It is NOT how you should suggest features for a real product
- Even though this is a university course and the main objective is learning…
- … what we are trying to learn mostly is the process of developing real software.
Thus:
Learning the self-discipline of driving features from user needs, in this course, is more important than learning a paricular API, technology, etc.
Minimum Viable Product
See: https://ucsb-cs48.github.io/topics/minimum_viable_product/
Breakout work today
Two options:
Option 1:
- A demonstration/lecture by Scott Chow about how to get started with next.js
- Link: https://nextjs.org/learn/basics/getting-started/setup
Option 2:
- Add an MVP column to your Kanban board.
We’ll put you all in breakout groups.
- In your group discuss whether you want to hear the next.js lecture/demo or work on your teams on your MVP.
- If you want to hear the next.js lecture, just return to the main group.
- Otherwise, work in your teams.
- If you have questions, click the “Ask for Help button”.