Defining User Needs and Requirements
Students will learn to identify and document the needs of their target users, translating these into clear functional and non-functional requirements for their software.
About This Topic
Defining user needs and requirements anchors successful software projects. Year 8 students identify target users' goals and pain points through targeted questions and observations. They document these as functional requirements, which specify features like login functions or data search capabilities, and non-functional requirements, such as load times under two seconds or compatibility with mobile devices. This aligns with AC9TDI8P07 by guiding students to plan digital solutions that meet real demands.
In the Technologies curriculum, this topic builds design thinking and empathy, skills that transfer to units like prototyping and testing. Students analyze how overlooked needs lead to failed apps, fostering habits of iteration and user-centered decision-making. Clear requirements documentation supports collaboration in The Software Studio unit, mirroring industry practices.
Active learning excels for this topic because students practice gathering needs through role-play interviews or surveys with peers acting as diverse users. These methods reveal biases in assumptions, encourage precise language in requirements, and build confidence in translating feedback into actionable specs. Hands-on iteration makes the process engaging and directly applicable to their projects.
Key Questions
- Analyze how understanding user needs leads to more effective software solutions.
- Differentiate between functional and non-functional requirements.
- Construct a set of requirements for a simple software application based on user feedback.
Learning Objectives
- Analyze user feedback to identify specific pain points and desired functionalities for a software application.
- Differentiate clearly between functional requirements (what the software does) and non-functional requirements (how well it does it).
- Construct a comprehensive set of user requirements, including both functional and non-functional aspects, for a given software concept.
- Evaluate the effectiveness of a software solution against its defined user needs and requirements.
Before You Start
Why: Students need a foundational understanding of empathy and user-centered problem-solving before they can effectively identify user needs.
Why: Familiarity with what software is and how it functions helps students understand the purpose of defining requirements.
Key Vocabulary
| User Needs | The specific problems, goals, or desires that a target user has, which a software solution aims to address. |
| Functional Requirements | Statements that describe what the software system must do, detailing specific features, tasks, or operations it should perform. |
| Non-Functional Requirements | Statements that describe how the software system should perform, focusing on qualities like performance, security, usability, and reliability. |
| Target User | The specific individual or group of people for whom a software product is designed and intended to be used. |
| Requirements Documentation | A formal document that records all identified user needs and the resulting functional and non-functional requirements for a software project. |
Watch Out for These Misconceptions
Common MisconceptionFunctional requirements include everything, like how fast the app runs.
What to Teach Instead
Functional requirements describe what the software does, such as saving files; non-functional cover qualities like speed or security. Sorting activities with peer debate help students categorize accurately and see impacts on design choices.
Common MisconceptionUsers state needs clearly without developer questions.
What to Teach Instead
Users often express vague wishes; skilled questioning uncovers true requirements. Role-play interviews demonstrate this gap, building student skills in probing effectively through practice.
Common MisconceptionRequirements stay fixed after first draft.
What to Teach Instead
Needs evolve with feedback; iteration refines them. Group workshops reviewing evolving personas show how active revision prevents project failures.
Active Learning Ideas
See all activitiesPairs Role-Play: User Interviews
Students pair up: one acts as a target user for a study app, the other as designer asking 10 prepared questions on needs and frustrations. Switch roles after 10 minutes, then each drafts a shared list of key insights. Discuss as a class how questions shaped responses.
Small Groups: Persona Creation Workshop
Groups survey five classmates on app preferences, then create visual personas with demographics, goals, and pain points. Combine into a class gallery for peer feedback. Translate top personas into initial functional requirements.
Whole Class: Requirements Sorting Game
Project mixed requirements statements on the board. Class votes and sorts them into functional or non-functional categories, justifying choices. Reveal correct sorts and refine as a group.
Individual: Feedback to Specs Challenge
Provide sample user feedback quotes. Students individually list three functional and two non-functional requirements. Share and vote on clearest examples.
Real-World Connections
- Software developers at companies like Atlassian use detailed requirements documents to build project management tools like Jira, ensuring features meet the needs of diverse teams and businesses.
- UX designers at Google gather user feedback through interviews and surveys to define requirements for new features in applications like Google Maps, focusing on ease of use and accurate navigation.
- App developers for mobile games must consider non-functional requirements such as fast loading times and offline playability to ensure a positive user experience and retain players.
Assessment Ideas
Present students with a brief scenario for a new app (e.g., a homework helper). Ask them to list two functional requirements and two non-functional requirements on a sticky note. Review responses for accuracy and understanding of the distinction.
Provide students with a short piece of user feedback (e.g., 'I wish I could save my progress'). Ask them to write one functional requirement and one non-functional requirement that this feedback might lead to. Collect and assess their ability to translate feedback into specific requirements.
Students pair up and present their draft requirements for a simple software idea to their partner. The partner acts as a 'client' and asks clarifying questions about both functional and non-functional aspects. Partners provide feedback on the clarity and completeness of the requirements.
Frequently Asked Questions
What are functional vs non-functional requirements Year 8 Technologies?
How to teach defining user needs AC9TDI8P07?
Activities for user requirements in Australian Curriculum Year 8?
How can active learning help students understand defining user needs?
More in The Software Studio
Design Thinking Methodology
Students will be introduced to the Design Thinking framework (Empathize, Define, Ideate, Prototype, Test) as a human-centered approach to innovation.
3 methodologies
Project Planning and Brainstorming
Students will learn techniques for brainstorming ideas, defining project scope, and creating initial plans for their software development projects.
3 methodologies
Collaborative Project Roles and Responsibilities
Students will explore different roles within a project team and understand the importance of clear responsibilities, communication, and teamwork for successful project delivery.
3 methodologies
Collaborative Coding Practices
Students will learn and apply simple strategies for collaborative coding, such as sharing code, giving constructive feedback, and managing changes in a shared project.
3 methodologies
Code Review and Pair Programming
Students will practice code review techniques and pair programming to improve code quality, share knowledge, and reduce errors in team projects.
3 methodologies
Testing and Debugging Strategies
Students will develop systematic approaches to testing their code for errors and apply various debugging strategies to identify and fix issues in their programs.
3 methodologies