| 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”.