Identifying a Client and Problem
students, imagine building an app, a website, or a data tool for someone in real life 📱💡 Before any coding starts, the most important question is: who is this for, and what problem are we solving? In IB Computer Science HL, this first step is called identifying a client and a problem. It matters because even a brilliant program is useless if it does not match the user’s needs.
In this lesson, you will learn how to:
- explain the key ideas and terms behind identifying a client and problem,
- apply IB Computer Science HL reasoning to a real scenario,
- connect this step to the wider Computational Solution topic,
- and use evidence to justify why a problem is worth solving.
This is a foundation for internal assessment work. If the client is unclear or the problem is vague, the rest of the solution can fail. If the client is understood well, the whole project becomes more focused, realistic, and testable ✅
What does “client” mean in IB Computer Science?
In this context, a client is the person, group, or organization that needs the solution. The client may be a teacher, shop owner, sports coach, school club, hospital worker, or even a student group. The client is not just “someone who wants an app.” The client is the real user whose needs guide the design.
A good client description includes:
- who they are,
- what environment they work in,
- what tasks they do regularly,
- what difficulties they face,
- and what success looks like for them.
For example, students, suppose a school librarian is the client. The librarian may need a system to track borrowed books, overdue returns, and student reservations. The client is not asking for “software” in a general sense. They need a tool that helps manage the library more efficiently.
IB focuses on user-centered design, which means the solution should be based on the client’s actual needs, not just the developer’s assumptions. That is why early communication is so important.
What is a “problem” in this context?
A problem is the gap between the current situation and the desired situation. The current situation may be messy, slow, error-prone, or hard to manage. The desired situation is what the client wants to achieve.
A problem should be:
- specific,
- realistic,
- important to the client,
- and solvable using computational methods.
A vague problem like “the school needs better technology” is too broad. A better problem would be: “The school librarian needs a way to track borrowed textbooks and automatically identify overdue items because the current paper log causes mistakes.” That statement identifies the client, the issue, and the impact.
In IB terms, the problem should be suitable for a computational solution, meaning it can be improved using software, data processing, automation, or another computer-based method. Not every issue is a computing problem. For example, a lack of funding is a real issue, but a program alone cannot solve it.
How to identify a good client and problem
To identify a client and problem well, you need evidence. This often begins with interviewing, observing, questionnaires, or reviewing documents. The goal is to understand the real needs before building anything.
Useful questions include:
- What task takes too long?
- Where do errors happen?
- What information is difficult to find?
- What is currently used instead?
- What would a better solution do?
A strong client identification process avoids guessing. For example, if students works with a local bakery owner, asking about daily operations could reveal that staff lose track of custom cake orders. That is much more useful than assuming the bakery needs an online store.
Evidence matters because IB expects justification. In other words, you should be able to explain why the chosen problem matters using facts from the client’s situation. A statement like “the client said they spend 30 minutes each day checking overdue orders manually” is evidence. It helps prove the problem exists.
Turning a broad issue into a clear problem statement
A strong problem statement is focused and measurable. It usually includes the client, the current difficulty, and the goal.
Example:
- Weak: The school needs a better system.
- Strong: The school sports coach needs a digital system to record player attendance and training progress because the current spreadsheet is difficult to update during practice.
The stronger version works better because it is specific and linked to a real user need. It also suggests what the final solution should do.
When writing a problem statement, avoid:
- being too broad,
- describing the solution too early,
- ignoring the client’s perspective,
- or using unsupported claims.
Good problem statements often include words like “needs,” “currently,” “because,” and “so that.” These words help show cause and effect.
Why this step matters in the Computational Solution process
Identifying a client and problem is the starting point of the whole Computational Solution cycle. If this step is weak, later steps like design, development, testing, and evaluation are harder to do well.
Here is how it connects:
- Client and problem identification tells you what to build.
- Design turns the problem into an interface, data model, or algorithm plan.
- Development creates the actual solution.
- Testing checks whether it works correctly.
- Evaluation compares the final product to the client’s needs.
- Documentation records decisions and evidence.
So, the first step acts like a roadmap 🧭. Without it, you may build something technically impressive but practically useless.
For internal assessment preparation, this stage is especially important because it gives direction to your project and helps you write a meaningful rationale. A well-identified client and problem make your later documentation stronger and easier to defend.
Example analysis: a student club booking system
Let’s look at a realistic example. A school music club meets in a shared practice room. The club leader says that booking conflicts happen often because several students try to reserve the room manually.
Possible client: the music club leader.
Possible problem: room bookings are not organized, so students double-book the practice space and waste time resolving conflicts.
Evidence might include:
- booking records on paper are frequently missing,
- students do not know whether the room is free,
- the leader spends time fixing clashes instead of managing rehearsals.
A suitable computational solution might be a simple booking system that stores reservations, checks availability, and prevents double-booking.
This example shows an important IB idea: the problem is not just “we need software.” The problem is that the current process causes confusion and inefficiency. The solution should address that exact issue.
Common mistakes students make
students, students often lose marks when they identify the client and problem too vaguely. Here are common errors:
- Choosing a client too broad: “students” is not specific enough if the problem belongs to a club secretary or teacher.
- Confusing client and end user: sometimes the client requests the system, but different people may use it.
- Assuming needs without evidence: saying “they probably need automation” without asking the client.
- Making the problem too large: trying to solve an entire school administration system instead of one manageable issue.
- Jumping to features too early: listing buttons and screens before understanding the problem.
A better approach is to start with facts. What does the client do now? What is difficult? What would improve the situation? Those questions keep the project realistic and focused.
Conclusion
Identifying a client and problem is one of the most important early stages in IB Computer Science HL. It makes sure a project begins with real needs, not guesses. A clear client description shows who benefits from the system, and a clear problem statement shows what must be improved. Together, they guide design, development, testing, and evaluation.
If students remembers only one thing, remember this: a successful computational solution begins with understanding people and their problems before writing code. That is what makes the solution useful, meaningful, and credible ✅
Study Notes
- A client is the person, group, or organization that needs the solution.
- A problem is the gap between the current situation and the desired situation.
- Good problems are specific, realistic, important, and solvable using computational methods.
- Evidence from interviews, observations, or questionnaires helps justify the chosen problem.
- A strong problem statement includes the client, the current issue, and the goal.
- Avoid vague claims like “the school needs better technology.”
- The identified client and problem guide design, development, testing, evaluation, and documentation.
- In IB Computer Science HL, this step supports internal assessment preparation and client-focused design.
- A good computational solution solves a real need, not just a technical idea.
- Understanding the client first makes the entire project more effective and easier to evaluate.
