🎯 Goal of the day
Leave the challenge briefing with a validated spec: a short, precise document that describes the partner's problem, who experiences it, what the solution receives and delivers, and how we will know it worked. In a five-day bootcamp, lost time does not come back — a well-crafted spec is what turns effort into speed.
📄 What a spec is and why it exists
A spec (short for specification) is a document that describes the problem, not the solution. It defines who uses it, what that person needs, and how we will know the need was met. The spec exists to avoid the most expensive cycle in development: building, discovering it was wrong, and rebuilding.
Without a spec vs. with a spec
- Without a spec: each team member builds different things without realizing it; the AI receives vague instructions and produces inconsistent results; during the presentation, nobody can answer "but who uses this?".
- With a spec: everyone speaks the same language; the Day 2 prompts start from a concrete base; the acceptance criteria are already defined before the first line of code is written.
🧭 Two compasses of the software engineer
Before turning a need into a specification, it helps to know two references that professionals use to orient their work. You do not need to memorize them — think of each as a compass that points the way. Today we use only a light version of each.
The two references
- SWEBOK 4.0 — the map of knowledge. A guide that organizes everything a software engineer needs to know, divided into areas. Two of those areas, Requirements and Design, are the ones we use today. Think of it as the table of contents of a large book about the profession; we will open only the requirements chapter.
- ISO/IEC 25010 — the quality ruler. A standard that defines what makes software "good" through eight quality characteristics, such as usability, performance, security and reliability. It answers the question "does it work well?", not only "does it work?". We use it later to write the non-functional requirements.
🔄 From the partner's need to the spec
A partner rarely arrives with a specification. They arrive with a need — real and legitimate, but still too vague to build. Our job is to translate that need into a precise specification. Consider the challenge described by the partner of this edition, Azul Linhas Aéreas:
What the partner says
"Build an AI agent that supports Azul's hiring process, analyzing interviews and organizing a candidate selection funnel."
This sentence is a starting point, not an instruction that can be built as it stands. To make it buildable, we break the need into five views, each answering a single question: why (Business Drivers), what (Functional Requirements), how well (Non-Functional Requirements), how (Architecture) and with what (Technology).
🗺️ The 5 views: from need to technology
The five views form a path. Each one answers a question and prepares the next: we only decide the technology after we understand why the solution matters, what it must do, how well it must do it, and how its parts fit together. The table below shows the whole path applied to the Azul case.
| View (layer) | Question it answers | Example — Azul |
|---|---|---|
| Business Drivers | Why? | Speed up and standardize hiring, supporting better decisions |
| Functional Requirements | What? | Analyze interviews, score candidates and build the selection funnel |
| Non-Functional Requirements | How well? | Protect candidate data (LGPD), avoid bias and apply equal criteria |
| Architecture | How? | Interview data → interface → AI agent → criteria base |
| Technology | With what? | Lovable, to build the interface and connect the AI |
🧩 The five views in detail
Each view has a simple definition and a concrete example from the Azul case. Read them in order — every view builds on the previous one.
1. Business Drivers — the "why"
A business driver is the business reason that justifies the project: the outcome the organization wants to achieve. It talks about value — cost, time, satisfaction, reputation — and never mentions screens or code. It answers "why is this worth building?".
Example — Azul:
- Speed up screening and reduce the hiring cycle time
- Standardize evaluation and support fairer hiring decisions
- Free recruiters for the steps that require human judgment
2. Functional Requirements — the "what"
A functional requirement describes an action the solution must perform — something observable to whoever uses it. It usually starts with a verb ("the system must..."), it is verifiable (you can test whether it happens), and it describes one function at a time, without ambiguity.
Example — Azul:
- Analyze an interview's answers against the evaluation criteria
- Score and rank candidates, organizing the selection funnel
- Summarize the interview, comparing the candidate to the role profile
3. Non-Functional Requirements — the "how well"
A non-functional requirement does not describe a new function, but the quality with which the solution works. This is where ISO/IEC 25010 comes in: it gives us the characteristics used to define that quality. Four of the standard's eight characteristics are enough for us today:
- Usability — easy to understand and use
- Performance — responds fast
- Security — protects the data
- Reliability — works without failing
Example — Azul:
- Security: protect the candidates' personal data (LGPD)
- Reliability: apply the same criteria to every candidate
- Usability: make clear why each candidate was scored
- Performance: analyze an interview in a few seconds
In a hiring process, quality also means avoiding bias: the evaluation must be fair and rely only on the defined criteria, never on characteristics unrelated to the role.
4. Architecture — the "how"
Architecture shows how the parts of the solution are organized and how they talk to each other — a drawing of boxes and arrows. Each box has a single responsibility, and each arrow shows where the information flows. It is not the tool yet; it is the organization of the parts.
Example — Azul: Interview data → recruiter interface → AI agent → criteria base. The criteria base holds the evaluation criteria and role profiles the AI uses to analyze each interview.
5. Technology — the "with what"
Technology is the set of concrete tools that bring the architecture to life. It comes last: first we understand why, what, how well and how. Choosing the tool before understanding the problem is the main source of rework.
Our choice: in this edition we will use 💜 Lovable, a platform that lets you build web applications by describing what you want in natural language. It takes the group from prototype to a working solution quickly, without writing the code from scratch — which suits the pace of the camp and keeps the focus on the problem rather than on setup.
Example — Azul: use Lovable to build the recruiter interface and connect it to the AI agent defined in the architecture view.
🔍 How to break down the problem
Modeling means answering four questions, in order. If you cannot answer one of them, it is a sign that understanding is missing — ask the professor before moving on.
The 4 modeling questions
- Who uses it? Identify the actor: who interacts with the solution and with what objective.
- What comes in? Which data or information the actor provides for the AI to act on.
- What comes out? What is the output the actor receives and what they do with it.
- How do we know it worked? Define the acceptance criteria — an objective, verifiable condition.
Before opening the computer, sketch the flow on paper. A diagram of boxes with arrows (actor → input → AI → output) is already enough to align the team.
📐 Decomposition example
| Field | Example |
|---|---|
| Actor | Marketing analyst at the partner company |
| Input | Product briefing: name, target audience, tone of voice, prohibited keywords |
| Output | 3 copy variations for social media, with hashtags and a suggested visual format |
| Acceptance criteria | The copy respects the tone of voice, contains no prohibited words, and is under 280 characters |
📋 Spec template — fill it in as a group
The 6 spec fields
- Core problem: in one sentence, which real pain of the partner this solution solves.
- Main actor: who uses the solution and what that person's objective is.
- Input: what data the actor provides; which are required and which are optional.
- Output: what the actor receives, in what format, and with what level of detail.
- Constraints: what the solution cannot do; prohibited words, topics, or behaviors.
- Acceptance criteria: the objective condition by which the panel will assess whether the solution works.
🏁 Deliverable
🧩 This edition's challenge
Case briefing
- Partner: [partner brand/organization]
- Context: [product or service context]
- Problem: [describe the real problem students will solve with AI]
- Solution output: [type of output] for [target audience]
➡️ Next day
Day 2 — Prompts from the Model: turn each spec field into precise instructions for the AI, building parameterizable prompts that guide the solution.