Split View: "느려요"를 엔지니어링 문제로 옮기는 법 — FDE 고객 커뮤니케이션
"느려요"를 엔지니어링 문제로 옮기는 법 — FDE 고객 커뮤니케이션
고객의 말은 버그 리포트가 아니라 고통 리포트다
엔지니어끼리라면 "p95가 두 배로 뛰었어요"라고 말할 것을, 고객은 "느려요"라고 말합니다. 이 차이를 고객의 잘못으로 여기는 순간 FDE의 일은 꼬입니다. 고객은 증상을 정확히 기술할 의무가 없는 사람이고, 고통을 보고하는 것만으로 자기 몫을 다한 것입니다. 측정 가능한 문제로 바꾸는 것은 전적으로 이쪽의 일입니다.
이 블로그의 FDE 엔지니어 키우기 RPG의 미션 제목들이 정확히 이 형태입니다. "느려요", "접속이 안 돼요", "가끔 로그인이 안 돼요". 진짜 현장의 신고가 대부분 이렇게 도착하기 때문입니다. 이 글은 그 문장을 엔지니어링 문제로 옮기는 기술을 다룹니다. 아래 등장하는 대화는 전부 설명을 위해 구성한 예시입니다.
번역 질문법 — 다섯 개의 축
"느려요"는 다섯 개의 축으로 자르면 측정 가능한 문제가 됩니다. 순서대로 물으면 심문이 되니, 대화 속에 섞되 다섯 칸이 채워졌는지를 머릿속으로 점검하는 방식이 좋습니다.
- 언제부터 — 시작 시점이 나오면 그 시각의 배포·설정 변경·트래픽 변화와 교차시킬 수 있습니다. "원래 그랬는지, 어느 날부터인지"가 첫 갈림길입니다.
- 누가, 어디서 — 전원인지 일부인지, 사무실 안인지 밖인지, 특정 권한의 사용자만인지. 범위가 곧 용의 계층을 좁힙니다.
- 무엇을 할 때 — 로그인할 때인지, 검색할 때인지, 저장할 때인지. 재현 경로의 재료입니다.
- 얼마나 — 몇 초가 걸리는지, 열 번 중 몇 번인지. 형용사를 숫자로 바꾸는 칸입니다.
- 무엇과 비교해서 — 어제보다 느린 것인지, 기대보다 느린 것인지. 기준선이 없으면 고쳐졌는지도 판정할 수 없습니다.
다섯 칸이 채워지면 "느려요"는 이렇게 바뀝니다. 지난 화요일부터, 본사 외부 접속 사용자만, 보고서 내보내기에서, 평소 3초가 30초로, 그 전 주까지는 정상. 이 문장은 이미 진단 계획의 절반입니다. 장애 진단 플레이북의 재현 단계로 바로 이어집니다.
나쁜 답변, 좋은 답변
같은 상황에서 신뢰를 깎는 문장과 쌓는 문장이 갈립니다. 세 장면으로 대비합니다. 모두 구성한 예시입니다.
| 상황 | 나쁜 답변 | 좋은 답변 |
|---|---|---|
| 원인을 아직 모를 때 | "저희 쪽 문제는 아닌 것 같은데요." | "지금까지 네트워크와 인증은 정상으로 확인했고, 데이터 계층을 보는 중입니다. 30분 뒤에 중간 결과를 공유드리겠습니다." |
| 언제 고쳐지는지 물을 때 | "곧 될 겁니다." | "지금은 원인 후보를 두 개로 좁힌 단계라 완료 시각은 약속드리기 어렵습니다. 대신 매시 정각에 진행 상황을 보고드리겠습니다." |
| 고객이 틀린 원인을 확신할 때 | "그건 관계없습니다." | "그 가능성도 검증 목록에 넣겠습니다. 방화벽 가설이 맞다면 사무실 밖에서도 같은 증상이어야 하니, 그것부터 같이 확인해 보시죠." |
패턴이 보일 것입니다. 나쁜 답변의 공통점은 방어입니다. 책임의 경계를 먼저 긋고, 근거 없는 낙관으로 자리를 피하고, 고객의 가설을 문전에서 기각합니다. 좋은 답변의 공통점은 확인된 사실, 지금 하는 일, 다음 보고 시각의 세 요소입니다. 특히 세 번째 장면이 중요합니다. 고객의 가설은 틀렸더라도 기각이 아니라 검증 대상으로 대접해야, 다음에도 고객이 관찰을 계속 말해 줍니다.
기대치 관리 — 약속의 단위를 바꾼다
기대치 관리의 실패는 대부분 약속의 단위가 잘못되어서 생깁니다. 원인을 모르는 단계에서 "오후까지 해결하겠습니다"라고 말하는 것은 약속이 아니라 도박입니다. 약속할 수 있는 것은 해결 시각이 아니라 다음 보고 시각입니다. "한 시간 뒤에 아는 것과 모르는 것을 정리해 보고드리겠습니다"는 언제나 지킬 수 있고, 지켜질 때마다 신뢰가 쌓입니다.
범위로 말하는 습관도 같은 원리입니다. 확실하지 않은 일정은 하나의 시각이 아니라 낙관과 보수의 범위로 말하고, 범위가 좁혀질 때마다 갱신합니다. 그리고 나쁜 소식일수록 일찍 말합니다. 지연을 마감 직전에 알리는 것은 지연 자체보다 더 큰 신뢰 손실입니다. 나쁜 소식을 이틀 먼저 말하는 FDE는 일정을 어긴 사람이 아니라 일정을 관리하는 사람으로 기억됩니다.
장애 한복판의 커뮤니케이션
장애 중에는 평시의 규칙이 뒤집힙니다. 평시에는 완성된 분석을 보고하지만, 장애 중에는 미완성이라도 주기를 지키는 보고가 우선입니다. 규칙은 네 줄로 요약됩니다.
- 주기를 먼저 고정합니다. "복구까지 30분마다 보고드리겠습니다"가 첫 메시지에 들어가야 합니다. 무소식 20분은 고객의 상상 속에서 장애를 두 배로 키웁니다.
- 영향부터 말합니다. 원인 분석은 궁금해도 참습니다. 지금 누가 무엇을 못 하는지, 우회로는 있는지가 먼저입니다.
- 전문용어를 번역합니다. "파드가 재시작 루프에 빠졌습니다"가 아니라 "서버가 반복적으로 꺼졌다 켜지는 상태라 접속이 끊깁니다"로 말합니다.
- 사람을 주어로 쓰지 않습니다. "누가 설정을 잘못 바꿔서"가 아니라 "설정 변경 이후"로 말합니다. 비난 없는 화법은 장애 중의 정보 흐름을 지키는 안전장치입니다.
그리고 에스컬레이션은 실패의 자백이 아닙니다. 30분 안에 진전이 없으면 올린다는 자기 규칙을 미리 정해 두면, 올리는 결정이 감정이 아니라 절차가 됩니다. 고객 앞에서 "전문 인력을 붙였습니다"는 무능의 신호가 아니라 대응의 신호로 읽힙니다.
직접 연습하기
커뮤니케이션은 문장을 외운다고 늘지 않고, 압박 속에서 말해 봐야 늡니다.
- FDE 엔지니어 키우기 RPG — 8개 도메인 중 고객 커뮤니케이션 레벨이 낮으면 진단이 맞아도 미션이 실패하는 구조입니다. 보고 시점을 고르는 선택지들이 이 글의 내용 그대로 나옵니다.
- FDE 커리큘럼 로드맵 — 고객 커뮤니케이션 도메인의 자가 점검 기준을 확인해 보세요.
FDE 완전 가이드 시리즈
Translating "It Is Slow" into an Engineering Problem — FDE Customer Communication
- Customer Words Are Pain Reports, Not Bug Reports
- The Translation Questions — Five Axes
- Bad Answers, Good Answers
- Expectation Management — Change the Unit of Promise
- Communication in the Middle of an Incident
- Practice by Doing
Customer Words Are Pain Reports, Not Bug Reports
What one engineer would tell another as "p95 doubled," a customer says as "it is slow." The moment you treat that difference as the customer's fault, the FDE job goes sideways. Customers are under no obligation to describe symptoms precisely; by reporting their pain, they have done their part. Turning it into a measurable problem is entirely your job.
The mission titles in this blog's FDE Career RPG have exactly this shape: "it is slow," "we cannot connect," "sometimes login fails." Real field reports mostly arrive that way. This post covers the craft of moving those sentences into engineering. Every dialogue below is a constructed example built for illustration.
The Translation Questions — Five Axes
Cut "it is slow" along five axes and it becomes a measurable problem. Asking them in strict order feels like an interrogation, so weave them into conversation while mentally checking whether all five boxes are filled.
- Since when — once a start time exists, you can cross it against deploys, config changes, and traffic shifts at that time. "Has it always been this way, or did it start one day" is the first fork.
- Who, and where — everyone or some users, inside the office or outside, only users with a certain role? Scope narrows the suspect layer.
- Doing what — when logging in, when searching, when saving? This is the raw material of the reproduction path.
- How much — how many seconds, how many times out of ten? The box that turns adjectives into numbers.
- Compared to what — slower than yesterday, or slower than expected? Without a baseline you cannot even judge whether it got fixed.
With all five filled, "it is slow" becomes: since last Tuesday, only users connecting from outside headquarters, on report export, from the usual 3 seconds to 30, normal until the week before. That sentence is already half a diagnosis plan — it feeds straight into the reproduction step of the incident diagnosis playbook.
Bad Answers, Good Answers
In the same situation, some sentences drain trust and others build it. Three scenes, contrasted. All constructed examples.
| Situation | Bad answer | Good answer |
|---|---|---|
| Cause still unknown | "I do not think this is on our side." | "So far network and auth check out healthy; I am on the data layer now. I will share interim results in 30 minutes." |
| Asked when it will be fixed | "It should be fine soon." | "We have narrowed to two candidate causes, so I cannot promise a completion time yet. Instead I will report progress at the top of every hour." |
| Customer certain of a wrong cause | "That has nothing to do with it." | "Let me add that to the verification list. If the firewall hypothesis is right, the symptom should appear outside the office too — shall we check that together first?" |
The pattern shows. What bad answers share is defense: drawing the liability line first, escaping the room on groundless optimism, rejecting the customer's hypothesis at the door. What good answers share are three elements: facts confirmed so far, what is being done now, and the time of the next report. The third scene matters most. Even when the customer's hypothesis is wrong, treat it as something to verify rather than dismiss — that is what keeps customers telling you their observations next time.
Expectation Management — Change the Unit of Promise
Most expectation-management failures come from promising in the wrong unit. Saying "we will have this resolved by the afternoon" while the cause is still unknown is not a promise; it is a gamble. What you can promise is not a fix time but the time of the next report. "In one hour I will summarize what we know and what we do not" can always be kept, and every time it is kept, trust compounds.
Speaking in ranges follows the same principle. Give uncertain timelines as an optimistic-to-conservative range rather than a single time, and update the range as it narrows. And the worse the news, the earlier it should be said. Announcing a delay right before the deadline costs more trust than the delay itself. The FDE who delivers bad news two days early is remembered not as the person who slipped the schedule but as the person who managed it.
Communication in the Middle of an Incident
During an incident, peacetime rules invert. In peacetime you report finished analysis; mid-incident, an unfinished report on schedule beats a polished one late. The rules fit in four lines.
- Fix the cadence first. "I will report every 30 minutes until recovery" belongs in the very first message. Twenty minutes of silence doubles the outage inside the customer's imagination.
- Lead with impact. Save the cause analysis, however interesting. Who cannot do what right now, and is there a workaround — that comes first.
- Translate the jargon. Not "the pod is in a restart loop" but "the server keeps turning off and on, so connections drop."
- Do not make people the subject. Not "someone changed the setting wrong" but "after a configuration change." Blameless language is the safety device that keeps information flowing during an incident.
And escalation is not a confession of failure. Set yourself a rule in advance — no progress in 30 minutes means escalate — and the decision becomes procedure rather than emotion. To the customer, "we have brought in a specialist" reads as a signal of response, not incompetence.
Practice by Doing
Communication does not improve by memorizing sentences; it improves by speaking under pressure.
- FDE Career RPG — among its 8 domains, a low customer-communication level makes missions fail even with a correct diagnosis. The choices about when to report are this post's content in playable form.
- FDE Curriculum Roadmap — check the self-check criteria of the customer-communication domain.
FDE Complete Guide series