XY Problem이란?
XY Problem은 실제 문제보다는 문제를 해결하기 위해 시도한 해결방안에 대해 묻는 것이다.
XY Problem은 도움을 요청하는 사람과 도움을 제공하는 사람 모두에게 많은 시간과 에너지를 소모하게 만든다.
이 상황에 빠지게 되면, 사람들은 해결방안이라고 믿는 것에 집착하게 된다. 그래서 한발짝 물러서서 그 문제를 설명하지 못하게 만든다.
XY Problem이 발생하는 순서
- 요청자는 X를 하고 싶어 한다.
- 개발자는 X는 모르겠지만, Y를 하면 문제를 해결할 수 있다고 생각한다.
- 요청자는 Y도 할 줄 모른다.
- 요청자는 다시 Y에 대한 도움을 요청한다.
- 다른 개발자가 Y로 요청자를 도와주려고 하지만, Y가 해결하고자 하는 것이 이상해보이기 때문에 혼란스러워한다.
- 많은 커뮤니케이션과 시간 낭비가 있은 후, 요청자가 사실 X를 원했다는 것을 알게 된다.
- 그리고 Y는 X에 대한 적합한 솔루션이 아니였다는 것이 명백해진다.
예시 상황
요청자: "image.png" 파일명을 입력하면, png가 출력되게 해주세요.
개발자A: 넵넵. 파일명의 세글자만 출력해줄게요.
def extract(filename):
return filename[-3:]
print (extract('image.png'))
요청자: 엇. 이상해요~ @개발자B
print (extract('image.jpeg'))
개발자B: 😳? 이게 뭐에요?
요청자: jpeg가 나와야해요~
개발자B: 🤔? @개발자A 왜 이전에는 세글자만 잘랐어요?
개발자A : png가 나와야해서요~
개발자B : 🤔? @요청자 확장자가 필요한거에요?
요청자 : 넵
개발자B: 😫?? 여기요.
import os
def extract_ext(filename):
root_ext = os.path.splitext(filename)
return root_ext[1]
개발자B: 🤯🤯🤯🤯🤯🤯
어떻게 질문해야하는가?
- 질문을 할 때에는 시도한 해결 방안뿐만 아니라 큰 관점에서 설명해야한다.
- 도움을 주는 사람이 추가 정보를 요구하는 경우, 상세한 내용을 설명해줘야한다.
- 배제한 해결 방안이 있다면, 왜 이를 배제했는지 공유해야한다.
어떻게 들어야하는가?
- 요청받은 해결 방안이 필요했던 상황과 불편했던 점을 묻는다.
- 그리고 해결 방안을 결론지은 이유를 묻는다.
자신이 원하는 것을 모르기 때문에 요청자가 잘못된 요청을 하는 경우가 있다. 때문에 해결방안의 목표를 묻는 경우, 해결방안의 Output(결과값)을 답하는 경우가 있다. 그래서 XY Problem에서 벗어나기 위해서는 해결방안이 나오기 이전의 상황을 살펴봐야한다.
그리고 한발짝 물러서서, 진짜 문제가 무엇인지 검토하고, 단 하나의 해결 방법만 있다는 관점에서 벗어나고자 하는 의식이 필요하다.
참고
'소프트웨어-이야기 > 소프트스킬' 카테고리의 다른 글
[다이어그램툴] excalidraw (0) | 2022.12.25 |
---|---|
ADR: Architecture Decision Record (0) | 2022.03.19 |
(Google) 개발자를 위한 구글 스프레드 시트 팁 (0) | 2019.06.02 |
티스토리 에디터처럼 코드 하이라이트 변경하기 (0) | 2019.05.04 |
(디버깅) Google Chrome 개발자콘솔로 프론트 통신상태 조절하기 (1) | 2019.02.24 |