강의

멘토링

로드맵

Inflearn brand logo image
Programming

/

etc. (Programming)

Problem Statement: Basic Capabilities for Reducing 'Development Waste'

Problematization (문제화) is a term also translated as problem posing, problem framing, problem setting, or problem definition. This concept involves questioning known facts (like requests or common sense) from a new perspective, defining the problem, and devising methods to solve it. Problematization should be the starting point for all development, yet it remains insufficiently discussed within the field. Performing projects or developing programs is, in essence, planning to solve problems. This means they are related to problematization. To solve a problem, it must first be clearly defined. However, problems are mostly presented as vague requests. Therefore, the ability to transform vague requests into clear problems is essential to reduce unnecessary 'development waste,' facilitate smooth collaboration, and accurately grasp users' true needs. This lecture helps train 'the thinking of problem construction' through practical examples and tools.

(5.0) 1 reviews

28 learners

  • arigaram
요구분석
코드리뷰
리팩토링
커뮤니케이션
pm/po
Team Collaboration Tool
soft skills
Business Problem Solving

What you will learn!

  • How to uncover the real issues in requests, requirements, user feedback, and code reviews

  • How to formulate real problems into structured problems using problem statement formulas, etc.

  • How to find the root cause of the problem

  • A philosophical concept, 'problematization,' discerning essence from phenomena

  • Various tools for 'problematization'.

🎯Problem Definition: Basic Skills to Reduce 'Development Waste'

A starting point for collaboration, requirements analysis, and code reviews for new and junior developers!

Basic competencies recommended for all team members to prevent 'development waste' from a PM/PO perspective!

Basic competencies related to collaboration tools, soft skills, problem-solving abilities, and more!

The capability that can protect developers' jobs even in an era where artificial intelligence writes code!

Have you ever had these concerns?

  • "The project proposal is too vague, so I don't know what I'm supposed to create."

  • "I received feedback in the review, but I don't have a clear sense of exactly where I need to make changes."

  • "Now that I'm actually trying to write the code... what was I trying to solve again?"

  • "When I asked a question, they responded back with 'So what's the problem?'"

The core of all this confusion is because we failed to define the problem accurately. Developers constantly face problems. However, the right solution begins only when we can look at the problem accurately and define it properly.

Ambiguous Requirements: Junior developers often receive unclear requirements in projects. For example, when given vague instructions like "create a widget," they become confused about what specific functionality needs to be implemented. According to developer-focused blogs, new hires experience confusion due to "vague instructions" and lack of sufficient guidance (codeanywhere.com).

Lack of experience: With limited work experience, they struggle to systematically break down problems or find necessary information on their own. As a real example, one junior developer had difficulty judging how much they should try to solve independently and only learned to ask questions after attempting solutions for excessively long periods (rachsmith.com). This uncertainty leads to anxiety (imposter syndrome) that hinders learning and collaboration.

Communication Gap: Without sufficient domain knowledge or business context, it's impossible to accurately identify the core issues in requirements. The development community also points out that lack of domain knowledge leads to requirement misunderstandings (kedin.com), which in turn results in incorrect implementations and rework.

📌 What You'll Learn in This Course

Practical thinking methods for clarifying ambiguous requirements and defining core problems

  • Questioning Techniques to Extract Problems from Requirements

  • 5 Criteria That Make a 'Problem' Truly Problematic

  • The skill of building rapport with other team members through communication

  • Schematic methods for 'defining' and 'structuring' problems

  • The skill of asking precise follow-up questions during code reviews, planning meetings, and task handoffs

  • 15 Key Patterns

🎓 Who is this course for?

1. Developers feeling overwhelmed by ambiguous requirements

  • When what the client or planner says is too vague and you don't know what to build

  • Example: "The UX is not great", "It's slow", "Please make it more intuitive"

  • → A state lacking the power to transform requests into problems

Request: "Please make the UX better"
Response: "They're just asking me to make the UX better.....what does that even mean?"

"Have you ever been stumped by the phrase 'just make it more intuitive'? The skill of turning vague requests into clear problems starts now."

2. New and junior developers who lack confidence in requirements analysis or design phases

  • The ability to analyze and structure problems is not yet familiar

  • When it remains at the level of merely taking dictation from the planner

  • → Skills to define problems independently are needed

Request: 'OO' feature - currently undecided. Will be determined soon.
Response: "Is it okay to proceed with development in the current state where several features remain undecided?"


"Are you just building what you're told to build? Grow into a developer who can interpret requirements and define problems on your own."

3. Developers who struggle to explain "why they are developing this"

  • Good at implementing features, but unable to explain why those features are needed

  • There are difficulties in designing the purpose and problem context of development

  • → Developer → Problem Solver → Someone who wants to grow into a Problem Setter

Request: Button size + 10 pixels
Response: "Well... I just thought it would be good to make it that way..."


"If you can implement features but can't explain the reasoning behind them? Now is the time when you need thinking that penetrates to the essence of problems."

4. Developers who struggle with collaborating with planners or designers

  • There's a lot of talk going back and forth, but no consensus is formed on "what the problem is"

  • Feedback is repetitive, or communication conflicts occur frequently

  • → People who want to structure different languages and establish a foundation for collaboration

Request: "Please make it feel more intuitive"
Response: "Why do designers always talk about some kind of 'feeling'...?"


"Do you feel like you can't communicate with planners? When you organize each other's language into 'problems,' collaboration changes."

5. Junior level and above preparing for planning, PM, and management roles

  • A developer growing into a role that should define problems and provide direction

  • The ability to structure vague requests into actionable team tasks is needed

  • Problem setting is the beginning of leadership

Request: According to the structure of [Information Request > Cause > User Situation]...
Response: "How should we define this to make it a team assignment?"


"The ability to structure vague requests into actionable tasks - this is your first step toward becoming a developer who leads a team."

6. Summary

  • This course is essential for all developers who have the concern of "I can write code, but I don't know what to build."

  • It can be said that this is an essential skill especially for junior developers from new hires to those with 3 years of experience.

Requirements Gathering Questions: Posts asking "How do you gather and analyze requirements?" from newcomers and job seekers frequently appear on developer forums and Reddit. For example, a computer science student sought advice from senior developers, asking "How do you collect stakeholder requirements in practice?" (reddit.com). This shows the demand for learning how to obtain clear requirements in real projects.

Role Emphasis: According to advice from experienced developers, the core of software development is "Problem definition", and it is mentioned that true experts need the ability to accurately define requirements (medium.com). Opinions emphasizing the importance of problem definition like this are frequently found in developer communities as well.

Educational Necessity: Korean developer blogs identify problem definition ability as a "fundamental skill" (medium.com), pointing out that when analyzing data or designing systems, defining the problem to be solved first is essential rather than focusing on tools (inflearn.com, velog.io). These articles highlight the necessity of problem definition skills for learners.

💡 Course Features

  • Practical-based thinking approach:

    Structured around real problem cases encountered in actual collaboration

  • Short and Clear Lectures:

    Each lesson is typically structured to be within 10 minutes (with some exceptions), enabling highly immersive learning

  • Structured Thinking Training:

    A slide-centered lecture that visually organizes the 'thought process' of defining problems

  • Practical Examples:

    Recording conversation methods that turn vague feedback and abstract planning into clear problems

📂 Curriculum Preview (Partial)

  1. What is Problem Setting – The Starting Point of Problem Solving

  2. Ambiguous requests, where did it go wrong?

  3. 5 Criteria That Make a Problem Truly a Problem

  4. The Art of Asking "So What's the Problem?" Differently

  5. Code reviews, planning, schedule coordination… all the moments where problem definition is used

💬 Expected Benefits After Taking the Course

  • You can structure and organize even confusing requests on your own

  • You can become a developer who gets to the core with just one question

  • You can reduce unnecessary misunderstandings during work collaboration and lead accurate conversations

  • Review feedback can also be converted into solvable problems rather than simple criticism

💬 Why this course is practically beneficial for developers


1. Addresses the most frequently encountered problems in real-world practice

A developer's work always begins with receiving a 'request'. However, most requests are vague and ambiguous. If you can't transform this into a precise problem, the planning goes awry, development spins its wheels, and schedules fall behind.

Example: "Please make the button a bit bigger" →→ Why? For whom? What's the problem?


2. This is the ability that new hires and junior developers lack the most

For new developers or juniors, the most difficult part is not simple implementation, but the ability to determine 'what should be implemented'. This course addresses exactly that point.


3. Directly leads to improved collaboration skills

Requirements analysis, code reviews, communication, discussions with PMs… all of these flow smoothly when you define problems well. This course trains you in the thinking method of listening and extracting the essence.


4. Provides realistic practical frameworks and tools

Rather than theory without practice, we provide problem statement formulas, feedback criteria, and questioning techniques that you can immediately apply in real work situations.


In summary, this course helps you become a developer capable of making clear judgments and communicating effectively without stopping in front of questions like "Why do we need to develop this?" and "Is this really a problem?"

🎯 In today's developer market, 'developers who can think' like this grow the fastest.

Now, become a developer who excels at problem definition rather than just problem solving.

You must be able to see problems accurately for solutions and growth to begin.

Recommended for
these people

Who is this course right for?

  • A developer who wants to foster the ability to independently think and determine what the true problem is, rather than just implementing given requests.

  • Planners, Designers, PM/POs aiming to set team direction amid vague requirements and opinions, and communicate smoothly with developers.

Hello
This is

366

Learners

17

Reviews

1

Answers

4.6

Rating

17

Courses

IT가 취미이자 직업인 사람입니다.

다양한 저술, 번역, 자문, 개발, 강의 경력이 있습니다.

Curriculum

All

72 lectures ∙ (17hr 16min)

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

All

1 reviews

5.0

1 reviews

  • HelloWorld님의 프로필 이미지
    HelloWorld

    Reviews 2

    Average Rating 4.5

    5

    31% enrolled

    • 아리가람
      Instructor

      감사합니다.

$42.90

arigaram's other courses

Check out other courses by the instructor!

Similar courses

Explore other courses in the same field!