Test it with real people
A small pilot with a few real users teaches more than weeks of building alone. Do it with consent, collect only what you need, measure, and improve.
In 60 seconds
Test it with real people
A small pilot with a few real users teaches more than weeks of building alone. Do it with consent, collect only what you need, measure, and improve.
Consent first
- Explain in simple words, in their language: "This is a student project. It may make mistakes. I will note whether it answered your question and your comments. I will not keep your name or number in the results."
- For anyone under 18, get permission from a parent or guardian, and follow your school's or college's rules.
- Ask your teacher or mentor whether your institution has its own rules for projects with people.
- Never test with real money, real medical decisions or real legal matters.
Collect as little as possible
A simple pilot plan
- 1
Pick 5–10 testers
Real users from your plan: parents, shopkeepers, classmates, family. A few is enough to find the biggest problems. - 2
Give them real tasks
"Find out when the library closes on Saturday." Do not explain how to use the tool first. Watch what they do. - 3
Record the same things for everyone
Tester code, consent yes or no, task done or not, a 1–5 rating, and one comment. - 4
Summarise
Success rate, average rating, and the top three problems, with personal details removed. - 5
Fix and test again
Change the biggest problem, then run the same tasks again to see if the number moved.
A short feedback form
| Question | Type |
|---|---|
| Did you get what you needed? | Yes / Partly / No |
| How easy was it? | 1 (very hard) to 5 (very easy) |
| What was confusing or wrong? | Short free text |
| Would you use it again? | Yes / Maybe / No |
| Anything else? | Short free text, optional |
round1 = {"testers": 8, "tasks_done": 5}
round2 = {"testers": 8, "tasks_done": 7}
for name, r in [("Round 1", round1), ("Round 2", round2)]:
rate = r["tasks_done"] / r["testers"]
print(f"{name}: {r['tasks_done']}/{r['testers']} tasks done ({rate:.0%})")
print("With only 8 testers, one person changes the rate by", f"{1 / 8:.0%}.")
print("Report the counts, not just the percentage, and read the comments.")Watch and read more
Lab
A pilot summary function that uses only consented responses and removes names and phone numbers.
The problem
The responses are made up. Each has a tester code, a name, a phone number, consent, whether the task was done, a 1–5 rating and a comment.
- Run the starter. Its summary uses every response, even from people who did not consent, and it leaks names.
- Change
summarise(responses)so that it uses only responses whereconsentisTrue. - Return a dictionary with:
used(number of consented responses),excluded(the rest),success_rate(a fraction from 0 to 1),avg_rating, andcomments(a list of strings). - The summary must not contain any tester's name or phone number. Remove any long run of digits from comments, for example by replacing it with "[number removed]".
Practice lab
Edit the code and run it. Python runs in your browser — nothing is sent to our server.
No output. Add print(...) to see values.
You are done when
Hard questions
Try to answer before you reveal. If you can answer these, you understood the lesson.
Q1Your summary shows 5 of 6 tasks done. A teammate wants to write "83% success rate" on the project poster. What would you write instead, and why?Reveal
Write "5 of 6 testers completed the task in our small pilot", and say who the testers were. With six people, one person changes the rate by about 17 points, so a percentage alone suggests more precision than you have. Counts plus context are honest and still useful.
Q2A tester's comment says: "My son Rahul in Class 7 also wants this." Is removing phone numbers enough?Reveal
No. A name plus a class can identify a child, especially in a small school. Remove or generalise such details ("a family member also wants this") before saving or sharing. Phone numbers are only one kind of personal data; names, places, classes and ID numbers need care too.
Questions people ask
How many testers do I need?
For a capstone pilot, five to ten is a common, practical number. It will not give precise statistics, but it usually shows the biggest problems. If you want stronger numbers later, you need more people and a more careful design.
Can I test with my family and friends?
Yes, if they are real users of the kind in your plan, but know that they may be too kind. Ask them to be honest, watch what they do rather than only asking what they think, and try to include at least a few people who do not know you well.
What if testers type personal details into the tool?
Tell them beforehand not to. If it still happens, remove those details from your notes and logs before saving or sharing. Do not keep logs longer than you need.
Should I change the tool during the pilot?
Try not to change it in the middle of a round, or you will not know what caused the difference. Finish the round, make changes, then run the same tasks again.
Lesson test
5 questions. Get 3 right (60%) to pass and complete this lesson.