강의

멘토링

커뮤니티

Programming

/

etc. (Programming)

Problem Framing: The Fundamental Skill for Reducing Development Waste

Problematization is a term that can also be translated as problem-raising or problem-framing. It can also be translated as problem-setting or problem-definition. It is a concept that encompasses the process of questioning known facts such as requests or common sense from new perspectives, defining problems, and working out ways to solve these problems. While problematization should be the starting point of all development, it remains an insufficiently discussed topic in the development field. Carrying out projects or developing programs is, in fact, about creating plans to solve problems. In other words, it is related to problematization. To solve a problem, the problem must first be clearly defined. However, problems are usually given in the form of vague requests. Therefore, having the ability to transform vague requests into clear problems reduces unnecessary 'development waste,' facilitates smooth collaboration, and enables proper understanding of users' real needs. This course helps train 'problem-constructing thinking' through practical cases and tools.

(5.0) 3 reviews

34 learners

Level Beginner

Course period Unlimited

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

What you will gain after the course

  • How to find the real problem hidden in requests, requirements, user feedback, and code reviews

  • How to express real problems as structured problems using problem statement formulas and other methods

  • How to Find the Root Cause of a Problem

  • The philosophical concept of 'problematization' that provides insight into essence from phenomena

  • Various tools for performing 'problematization'

📋Change History

  • January 2, 2026

    • We have begun work to improve the audio quality of the videos and supplement the lecture content. It may take some time to improve all the lessons. Lessons that have completed the improvement work will be marked with '[Audio Quality Improved]' in front of the lesson name.

🎯Problem-solving: Basic skills to reduce 'development waste'

The starting point for collaboration, requirements analysis, and code review for entry-level and junior developers!

The basic competencies to recommend to all team members from a PM/PO perspective to prevent 'development waste'!

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

The competency that will protect developers' jobs even in an era where AI writes code!

✅ Have you ever had these concerns?

  • "The project specs are too vague, so I don't know what I'm supposed to build."

  • "I got feedback in the review, but I have no idea exactly where I need to make changes."

  • "When I actually try to write the code... what was I trying to solve again?"

  • "I asked a question and they just asked me back, 'So what's the problem?'"

The core of all this confusion is because the problem wasn't precisely defined. Developers constantly face problems. However, the right solution begins only when you can look at the problem accurately and define it.

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 features to implement. According to a developer-focused blog, new hires struggle with "vague instructions" and a 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 to solve independently and learned to ask questions only after spending too much time attempting to resolve issues (rachsmith.com). This uncertainty leads to anxiety (impostor syndrome), which hinders learning and collaboration.

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

📌 What You'll Learn in This Course

A practical thinking method to clearly organize vague requirements and define core problems

  • Questioning techniques to extract problems from requirements

  • 5 Criteria That Make a 'Problem' a Real Problem

  • The skill of building consensus with team members who speak differently

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

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

  • 15 Key Patterns

🎓 Who is this course for?

1. Developers who feel lost when faced with vague requirements

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

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

  • → Lacking the ability 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 hesitated at the phrase 'just make it more intuitive'? Start now with the skill of turning vague requests into clear problems."

2. New or junior developers who lack confidence in requirement analysis or design stages

  • Not yet comfortable with the ability to analyze and structure problems

  • When you're only at the level of taking notes of what the planner says

  • → Need skills to define problems independently

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


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

3. Developers who struggle to explain "why we're developing this"

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

  • Having difficulty designing the purpose of development and the context of the problem

  • → Someone trying to grow from Developer → Problem Solver → 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 why? Now is the time 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 back-and-forth communication, but no shared understanding is formed about "what the actual problem is"

  • Feedback keeps repeating, or communication conflicts frequently occur

  • → For those who want to structure different languages and establish a center for collaboration

Request: "Please make it feel more intuitive"
Response: "Why do designers always only 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, or leadership roles

  • Developers who are growing into roles where they need to define problems and provide direction

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

  • Problem framing is the beginning of leadership

Request: Structure according to [Information Request > Cause > User Situation] framework...
Response: "How should I define this to make it a team task?"


"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 struggle with "I can write code, but I don't know what to build."

  • This is especially an essential competency for junior developers from entry-level to 3 years of experience.

Requirements Gathering Questions: Posts asking "How do you gather and analyze requirements?" from newcomers and aspiring developers are often seen on developer forums or 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.

Emphasis on Role: According to advice from experienced developers, the core of software development is "Problem definition", and 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 Need: Korean developer blogs cite problem definition skills as "fundamentals" (medium.com), pointing out that defining the problem to be solved is essential before tools when analyzing data or designing systems (inflearn.com, velog.io). These articles highlight the necessity of problem definition skills for learners.

💡 Course Features

  • Practical thinking methods:

    Structured around real problem cases encountered in actual collaboration

  • Short and Clear Lectures:

    Each lesson is generally structured to be under 10 minutes (with some exceptions), enabling highly focused learning

  • Structured Thinking Training:

    Slide-based lectures that visually organize the 'thought process' of defining problems

  • Practical Examples:

    Includes conversation methods to transform vague feedback and abstract plans into clear problems

📂 Curriculum Preview (Partial)

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

  2. Vague requests: where did it go wrong?

  3. The 5 criteria that make a problem truly a problem

  4. The art of asking "So what's the problem?" differently

  5. Code reviews, planning, scheduling… every moment where problem definition is used

💬 What You'll Gain from This Course

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

  • You can become a developer who pinpoints the core with a single question

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

  • You can transform review feedback into solvable problems rather than just simple criticisms

💬 Why This Course is Practically Beneficial for Developers


1. It addresses the problems you encounter most frequently in actual work

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

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


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

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


3. Directly improves collaboration skills

Requirements analysis, code reviews, communication, discussions with PMs... everything flows smoothly when problem definition is done well. This course trains you in the thinking method of listening and extracting the essence.


4. Provides practical frameworks and tools for real-world application

It's not just theory without practice, but provides problem statement formulas, feedback criteria, questioning techniques, and more that you can immediately apply in real work situations.


In summary, this course helps you become "Why do we need to develop this?", "Is this a real problem?" a developer who doesn't stop in front of these questions but
can make clear judgments and communicate effectively.

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

Now, become a developer who excels at defining problems, not just solving them.

You must be able to see the problem accurately before solutions and growth can begin.

Recommended for
these people

Who is this course right for?

  • A developer who wants to cultivate the ability to think and judge what the real problem is, rather than just implementing given requests as-is

  • Planners, designers, and PM/POs who want to set the team's direction amid ambiguous requirements and opinions, and communicate smoothly with developers

Hello
This is

598

Learners

31

Reviews

2

Answers

4.5

Rating

17

Courses

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

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

Curriculum

All

72 lectures ∙ (17hr 32min)

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

All

3 reviews

5.0

3 reviews

  • paulmoon008308님의 프로필 이미지
    paulmoon008308

    Reviews 111

    Average Rating 4.9

    5

    31% enrolled

    • arigaram
      Instructor

      Thank you.

  • abcd123123님의 프로필 이미지
    abcd123123

    Reviews 327

    Average Rating 5.0

    5

    65% enrolled

    The audio quality isn't great, but it doesn't interfere with studying and the content is good

    • arigaram
      Instructor

      Thank you. I will re-record existing lectures in the future to improve the audio quality.

  • helloworld35님의 프로필 이미지
    helloworld35

    Reviews 2

    Average Rating 4.5

    5

    31% enrolled

$42.90

arigaram's other courses

Check out other courses by the instructor!

Similar courses

Explore other courses in the same field!