The Business, Science and Technology Desk of San Francisco Public Library and Bonfire School present Learn, Design and Build Software
Learn to find human needs
Software can be hard to understand. It’s harder still to make software. This class aims to make learning with an industry professional fun and engaging. Through a series of group exercises we will think about the needs of others and how we can solve their problems with software.
There are three main concepts in this series, each with it’s own class!
March 15th: Learn to find human needs for software
- Listen and spend time with others to know what people need
March 22nd: Design software based on human needs
- Draw pictures and tell a story of what to build to meet those needs
March 29th: Build software with Python using design
- Code software and change it until it meets the needs of others
Location:
San Francisco Public Library
Computer Training Center
5th Floor, Main Library
(415) 557-4388
Ice Breakers
If you arrive early with other students, ask your neighbor:
- What do you expect to learn today?
- Why did you come to this class?
- What programming have you done?
- How did you get here today?
About the Instructor
Louis Rawlins is a writer and technologist building community in design and health. For the past decade, he designed mobile apps and built websites in Silicon Valley. Louis founded Bonfire School for people of any background to create what they want – crafts, software, dance and more – in a place that supports personal health. He dreams that it can become a physical school one day. Louis is excited to teach a public class in San Francisco, a city that has inspired him since he arrived in 2004.
If you have feedback or questions after the class, please email [email protected]
Mindful Moment
Let's take a breath for clarity to see how we are doing and what we will do next.
Group Introductions
Your instructor has lived in San Francisco for twelve years.
Where are you from? What would you like to learn?
Discount Usability
How do people use software? Let's find out!
Watching and learning how 5 different people use a software program can improve its design. This simple process is informally known as Discount Usability.
/
Get into groups of 3 - 5 people.
What we will do:
- watch someone use a computer
- ask them to speak aloud
- take notes
- compare what you learn
While you observe, look for:
- confusion or frustration
- surprise or joy
- moments of clarity
Usability Exercise
Select a person in your group to complete the first task.
While this person completes the task, others in the group take turns asking questions and writing down what they learn. When the task is done, select someone new to complete the next task.
Task #1: How would you download an epub version of Interviewing Users by Steve Portigal onto your computer from the San Francisco Public Library website?
Task #2: How can you read online version of Think Python by Allen B Downey on the San Francisco Public Library website?
Task #3: Can you find the definition for the word "epistemology" in the Oxford English Dictionary from the San Francisco Public Library website?
Short Break
Get up and move around. Drink some water. We'll start again in 10 minutes.
Interviewing People
We interview people when we want to understand how they see the world. During an interview about software, we may ask what problem somebody is trying to solve. We listen and observing while someone shares their thoughts.
In this exercise, we will learn how to interview someone.
Get into groups of 3 people.
For the first interview:
- Person A is listener
- Person B is speaker
- Person C is scribe
Demonstration
For 2 minutes, someone will help me ask questions of another student and I will write notes. When done, I will share back what I learned.
While I write, I listen to tone of voice and notice body language to understand what is being shared.
After I have written the story, I can start to see themes.
Interview Exercise
The listener interviews the speaker for 3 minutes. We all stop, then the scribe recalls the story for 1 minute. When that is done, each person in the group switches roles. After the Interview #3, each member of the group will have a chance to be interviewed.
The list of questions:
- “Tell me about your favorite book as a child.”
- “Where is the first library you visited?”
- “What do you remember about the first book you read?”
- “How do you find what you want when you go to the library?”
- “Describe your last visit to the library.”
- “Tell me about your favorite spot to be in the library.”
- “Why do you come to the library?”
- “What was the first time you visited a library?”
Interview #1: Person A is the listener and asks a question from the list, then anything that clarifies.
Interview #2: Person B is the listener and asks a question from the list, then "tell me more..." only.
Interview #3: Person C is the listener and asks a question from the list, then silence (just listen).
After we are done interviewing and telling stories, reflect on the interviews. What was suprising? What was difficult?
Professional Context
Bringing these skills together, we can start to understand the role of a software design researcher. These skills help us learn how to find human needs and can give us feedback about how well our software is working.
What does it mean to build software for human needs? When can you use these skills? How can it be useful?
Class Reflection
What worked and what would you change? Let's improve together.
Recommended Reading
Learn to find human needs
- Interviewing Users by Steve Portigal (2013)
- Rocket Surgery Made Easy by Steve Krug (2010)
Design software
- Lean UX by Jeff Gothelf with Josh Seiden (2013)
- The User’s Journey by Donna Lichaw (2016)
- Design Is a Job by Mike Monteiro (2012)
Build software with Python
- Think Python 2e – Green Tea Press
- Think Python by Allen B Downey (2015) [Print Version]
- repl.it - Python3 Compiler
- The Python Tutorial — Python 3 documentation
Copyright 2017 Bonfire School
For use of curriculum, contact author [email protected] for permission.