XY 문제를 넘어서: 첫 번째 질문에 답하지 않는 기술

사용자가 기술적인 질문을 하면 대부분의 엔지니어는 가장 효율적인 답변을 즉시 제공하려는 본능적인 반응을 보입니다. 우리는 이 요청을 풀어야 할 퍼즐로 여기고, 사용자가 X를 원한다면 X에 이르는 경로를 제시합니다. 하지만 다른 엔지니어를 위해 복잡한 도구를 구축하는 입장에서는 이러한 즉각적인 대응이 개발자와 사용자 모두에게 놓친 기회가 될 수 있습니다.

Perfetto—성능 디버깅 도구를 개발하는 과정에서 Lalit Maganti는 "골든 룰"을 제시합니다: 첫 번째 버전의 질문에 답하지 마세요. 이는 단순히 "XY 문제"(사용자가 실제 문제 X 대신 시도한 해결책 Y에 대해 묻는 상황)를 피하는 연습처럼 들릴 수 있지만, 이 접근법은 한 걸음 더 나아갑니다. 사용자의 혼란을 극복해야 할 장애물이 아니라, 제품의 정신 모델과 아키텍처를 다듬을 수 있는 귀중한 기회로 바라봅니다.

질문 진단

모든 질문이 깊이 있는 탐구를 필요로 하는 것은 아닙니다. 일상적인 요청이나 간단한 문서 누락은 직접적인 링크와 짧은 감사 인사로 처리하는 것이 가장 좋습니다. "답변을 하지 않는다"는 전략은 질문이 "이상하다"고 느껴질 때, 즉 흔하지 않거나 일반적인 사용 방식에 비해 비현실적으로 들리거나 도구의 기본 아키텍처와 충돌하는 경우에만 적용됩니다.

질문이 더 깊은 대화를 필요로 하는지 판단하기 위해 Maganti는 다음과 같은 정신 체크리스트를 사용합니다:

  • 이게 흔한가? 자주 들어오는 요청이라면 표준 답변이 이미 존재할 가능성이 높습니다. 그렇지 않다면 조사할 가치가 있는 이례적인 경우입니다.
  • 합리적인가? 요청이 어색하게 느껴진다면 그 이면에 더 "정상적인" 질문이 숨겨져 있을 가능성이 있습니다.
  • 도구의 형태에 맞는가? 사용자가 도구가 설계되지 않은 일을 강제로 하려는 건 아닌지 확인합니다.

불일치가 확인되면, 무시하지 않고 누락된 맥락을 드러내는 것이 목표입니다. 즉각적인 답변을 제공하면서 동시에 전제를 질문합니다: "음, 현재 질문에 대한 답은 X이지만, 이유 Y 때문에 꽤 이상한 요청입니다. 해결하려는 더 큰 문제에 대해 좀 더 알려주실 수 있나요?"

사용자가 철학을 놓치고 있을 때

사용자는 종종 도구가 어떻게 작동해야 하는지에 대한 선입견을 가지고 접근합니다. Perfetto의 경우, 사용자는 트레이스를 모든 메트릭에 대한 "성스러운 그릇"으로 여기고 프레임 레이트나 메모리 사용량을 계산하려고 시도합니다. 기술적으로는 가능하지만, 트레이스는 전용 메트릭 수집 시스템에 비해 수집 및 처리 비용이 크게 듭니다.

깊이 파고들면 개발자는 단순한 기술 지원 담당자를 넘어 도메인 교사 역할을 할 수 있습니다. 예를 들어, 사용자가 큰 Perfetto 트레이스를 여러 파일로 나누는 방법을 물었을 때, 실제 필요는 긴 녹화에서 특정 구간을 시각화하려는 것이었습니다. 이를 파악한 Maganti는 "주기적인 트레이스 스냅샷"이라는 기능을 제안했으며, 이는 처음부터 거대한 단일 트레이스를 만들 필요를 없애는 근본적인 해결책이었습니다.

사용자 마찰을 활용한 제품 진화 안내

사용자의 "이상한" 질문이 실제 제품의 빈틈을 드러낼 때, 과제는 무엇을 만들 것인가를 결정하는 것으로 바뀝니다. 기본 소프트웨어에 잘못된 기능을 추가하는 비용은 매우 높으며, 이는 막대한 기술 부채로 이어집니다.

Maganti는 Perfetto 프로젝트에서 두 가지 대조적인 사례를 공유합니다:

  1. 잘못된 길: 팀은 UI를 해킹하기 어려워한다는 사용자 불만을 해결하고자 즉석에서 UI 커스터마이징을 구현했습니다. 이로 인해 모든 새로운 기능이 기존 커스터마이징과 상호 작용해야 하는 거대한 기술 부채가 발생했습니다. 실제 필요가 개인화라는 것이 명확히 이해된 뒤, 적절한 플러그인 API를 구축하는 데 1년이 걸렸습니다.
  2. 올바른 길: 사용자는 지속적으로 트레이스를 "병합"하는 기능을 요구했습니다. 팀은 서두르지 않고 우회 방법을 안내하며 문제 영역을 관찰했습니다. 이러한 인내 덕분에 요구 사항을 완전히 이해한 뒤 코드를 한 줄도 작성하기 전에 유지 보수 가능한 방식으로 기능을 구현할 수 있었습니다.

긴장 관계: 지원 vs. 거만함

이 접근법은 비판도 존재합니다. 경험 많은 사용자가 정확히 원하는 바를 알고 있을 때 이 전략이 답답하게 느껴질 수 있으며, Stack Overflow에서 흔히 볼 수 있는 "답변하기 전에 세 가지 질문에 먼저 답하라"는 식의 거만한 문화와 비슷하다는 지적도 있습니다.

거만하게 보이지 않으려면 높은 수준의 공감과 도메인 전문성이 필요합니다. 이는 정보를 차단하는 것이 아니라 협업적 탐구를 촉진하는 것입니다. 커뮤니티 논의에서도 이 방법의 성공은 여러 요인에 달려 있다고 언급되었습니다:

  • 먼저 답변 제공: 맥락을 묻기 전에 즉각적인 질문에 대한 직접적인 답을 항상 먼저 제공합니다.
  • 청중 판단: 관대하게 대합니다. 사용자가 명백히 해당 분야의 전문가라면 철학적 깊이 탐구가 크게 필요하지 않을 수 있습니다.
  • 사용자에게 양보: 사용자가 반발할 경우, 개발자는 상황에 대한 사용자의 판단을 존중합니다.

결론

즉각적인 반응을 잠시 뒤로 미루면 일상적인 지원 티켓을 제품 인사이트로 전환할 수 있습니다. "어떻게"보다 "왜"를 먼저 묻는 습관을 통해 엔지니어는 사용자의 고통 증상을 단순히 해결하는 것이 아니라 도구의 철학과 제품의 장기적인 생존 가능성을 향상시킬 수 있습니다.

Sources