Showing Posts From

장애대응

배포 없이 무사히 지난 하루, 혼자 안도했다

배포 없이 무사히 지난 하루, 혼자 안도했다

오늘 배포 없었다 출근했다. 슬랙 확인. 배포 일정 없음. 오늘은 조용한 날이구나. 혼자 안도했다. 13년 했는데 아직도 이런다. 배포 없는 날이 제일 편하다. QA 팀장으로 8년 차인데, 배포일만 되면 여전히 긴장한다. 새벽에 장애 전화 올까봐, 모니터링 알람 뜰까봐. 오늘은 그냥 일상적인 업무만. 팀원들 진행 상황 체크하고, 다음 주 배포 준비하고, 리포트 작성하고. 이게 정상이다. 근데 왜 이렇게 편한 건지. QA는 이상하다. 잘 되면 당연하고, 안 되면 우리 탓. 오늘 같은 날이 성공이다.아침 미팅은 루틴 9시 출근. 팀원들 스탠드업 미팅. "어제 진행 상황은?" "오늘 할 일은?" "블로커 있나?" 다들 순조롭다고. 큰 이슈 없다고. 좋다. 이게 좋은 거다. 개발팀 리드한테 메시지 보냈다. "다음 주 배포 준비 상황 공유 부탁합니다." 답장 왔다. "넵, 오후에 정리해서 드릴게요." 평화롭다. 10시에 기획팀이랑 미팅. 다음 분기 기능 논의. 테스트 리소스 얼마나 필요한지 계산해야 한다. 자동화 커버리지 올려야 한다는 얘기 또 꺼냈다. "예산이 문제죠." 맨날 듣는 소리다. 알고 있다. 그래도 말은 해야 한다. 미팅 끝났다. 회의록 정리했다. 액션 아이템 할당했다. 다들 확인했다고 이모지 달았다. 점심시간까지 2시간. 테스트 전략 문서 검토. 신입 팀원이 작성한 거다. 꼼꼼하다. 피드백 몇 개 남겼다. 칭찬도 추가했다. "접근 방법 좋습니다. 리스크 기반으로 우선순위 잘 잡았어요." 이런 날이 좋다. 불 끄러 다니지 않아도 되는 날.점심은 혼밥 구내식당 갔다. 제육볶음. 혼자 먹었다. 팀원들이랑 먹을까 했는데 1on1 준비해야 해서. 오늘 오후에 주니어 개발자 출신 QA랑 면담 있다. 성장 계획 얘기해야 한다. 밥 먹으면서 슬랙 확인. 개발팀에서 버그 하나 올렸다. 우선순위 Medium. 다음 주 배포 전에 고치면 된다. 담당자 할당했다. "확인 부탁드려요." "네, 오후에 볼게요." 이게 정상이다. 급한 거 아니고, 패닉 아니고, 그냥 일상적 업무. QA 13년 하면서 깨달은 거. 비극적이지 않은 게 최고의 성공이다. 장애 없이 배포 끝나면 아무도 우리 치하 안 한다. 당연한 거니까. 근데 장애 터지면? 왜 못 잡았냐고 묻는다. QA가 뭐 했냐고. 그래서 우리는 조용한 날을 좋아한다. 아무 일 없는 게 최고다. 밥 다 먹었다. 커피 한 잔. 오늘 두 번째다. 사무실 돌아왔다. 오후 일정 확인. 1on1 하나, 리포트 작성, 다음 주 테스트 계획 리뷰. 배포 없으니까 여유롭다. 이런 날이 귀하다.1on1은 성장 대화 2시. 막내 팀원이랑 1on1. 개발자에서 QA로 전환한 지 6개월. 코드는 잘 읽는데 테스트 설계는 아직 어려워한다. "요즘 어때요?" "음... 아직 테스트 케이스 짜는 게 어렵습니다." "어떤 부분이?" "경계값 테스트는 알겠는데, 비즈니스 로직 조합이..." 알고 있었다. 코드 리뷰는 잘하는데 사용자 관점 테스트는 약하다. "개발자 관점에서 벗어나야 해요. 사용자가 실수하는 경우를 상상해봐요." "네... 연습하겠습니다." 성장 계획 같이 짰다. 다음 달까지 탐색적 테스트 강화. 시나리오 기반 테스트 케이스 작성 연습. 내가 리뷰해줄 거다. "질문 있으면 언제든 물어보세요." "감사합니다." 1on1 끝났다. 30분. 매번 느끼는 건데, QA 키우는 게 제일 어렵다. 툴은 배우면 되는데, 사고방식은 시간이 필요하다. 리스크 기반 사고, 우선순위 판단, 비즈니스 이해. 13년 걸렸다. 나도. 팀원들 잘 크고 있다. 천천히 가도 된다. 배포 없는 날엔 여유가 생긴다. 오후는 리포트 3시부터 품질 리포트 작성. 지난주 배포 회고. 배포 3건, 장애 0건, 평균 테스트 커버리지 78%, 자동화 비율 62%. 숫자로 보면 나쁘지 않다. 근데 경영진은 자동화 비율 더 올리라고 할 거다. 알고 있다. 테이블 정리했다. 그래프 그렸다. 트렌드 분석 추가했다. "지난 분기 대비 장애율 15% 감소" 이런 거 어필 안 하면 아무도 모른다. 컨플루언스에 올렸다. CTO한테 멘션 걸었다. 읽어보라고. 4시. 커피 또 마셨다. 세 번째다. 카페인 과다인 거 알지만 오후엔 필요하다. 다음 주 배포 테스트 계획 리뷰. 개발팀이 공유한 변경사항 체크. API 3개 수정, UI 개선 2건, 버그 픽스 5건. 리스크 평가 시작. API 변경이 제일 위험하다. 연동된 서비스 많으니까. 우선순위 High. 회귀 테스트 범위 넓혀야 한다. 팀원들한테 할당했다. "다음 주 월요일까지 계획 세워주세요." 답장들 왔다. 알겠다고. 이해했다고. 조용하다. 슬랙도 조용하다. 장애 알람 없다. 오늘은 정말 평화롭다. 저녁엔 혼자 정리 6시. 팀원들 하나둘 퇴근한다. "수고하셨습니다." "팀장님도요." 나는 7시까지 남는다. 관리자니까. 마무리할 게 있다. 메일 확인. 타 부서에서 QA 협업 요청 왔다. 신규 프로젝트 품질 검토 부탁. 일정 조율 필요하다. 내일 답장하기로. 슬랙 정리. 읽지 않은 메시지 0개로 만들었다. 중요한 건 스레드에 답글, 나머지는 이모지. 컨플루언스 업데이트. 팀 위키 정리. 신입이 참고할 문서들 정돈. Jira 티켓 상태 확인. In Progress 5개, To Do 12개, Done 23개. 괜찮다. TestRail 체크. 다음 주 테스트 케이스 준비 완료. 자동화 스크립트도 돌렸다. Pass. 7시 됐다. 퇴근 시간이다. 가방 챙겼다. 노트북 끄고. 불 껐다. 오늘 하루 되돌아봤다. 장애 없었다. 긴급 이슈 없었다. 평범한 하루였다. 이게 최고다. 퇴근길 생각 지하철 탔다. 분당선. 앉았다. 오늘 같은 날이 일주일에 하나만 있어도 감사하다. QA는 이상한 직업이다. 위기관리가 일상이다. 품질 지키는 게 당연한 의무고, 장애는 우리 책임이다. 성공하면 조용하고, 실패하면 시끄럽다. 13년 했다. 팀장 8년 차다. 여전히 배포일엔 긴장한다. 새벽 2시에 전화 올까봐, 모니터링 알람 뜰까봐. 근데 오늘은 없었다. 배포도 없고, 장애도 없고, 패닉도 없었다. 혼자 안도했다. 남편한테 메시지 보냈다. "오늘 일찍 와. 밥 뭐 먹을래?" "치킨?" "좋아." 딸한테도. "엄마 곧 도착해. 숙제 다 했어?" "네!" 이런 날이 소중하다. 비극적이지 않은 게 최고의 성공이다. 집 도착했다. 현관문 열었다. 딸이 뛰어왔다. "엄마!" "응, 다녀왔어." 치킨 시켰다. 가족이랑 먹었다. TV 봤다. 평범한 저녁이다. 밤 10시. 슬랙 한 번 더 확인했다. 버릇이다. 장애 없다. 알람 없다. 폰 내려놨다. 오늘은 끝났다. 무사히.배포 없는 날이 제일 좋다. 13년 했는데 아직도 그렇다.

7시 퇴근 후 남편이 '요즘 슬랙 더 많이 본다'고 했을 때

7시 퇴근 후 남편이 '요즘 슬랙 더 많이 본다'고 했을 때

7시 26분 퇴근했다. 정시보다 26분 늦었다. 엘리베이터에서 슬랙 확인했다. 개발팀에서 멘션 3개. 집 앞 편의점에서 우유 사면서도 슬랙 봤다. 현관문 열면서도 슬랙 켜져 있었다. 남편이 부엌에서 파스타 끓이고 있었다. "왔어?" "응. 고마워." 식탁에 앉았다. 슬랭 알림 또 왔다. QA 팀원이 프로덕션 버그 리포트 올렸다. 심각도 체크하면서 답장 썼다. "요즘 슬랙 더 많이 보는 것 같은데." 남편 목소리였다. 고개 들었다. 파스타 면 건지고 있었다. "...응?" "예전엔 집에서는 안 봤잖아." 맞다. 예전엔 안 봤다.팀장 되기 전 QA 5년차까지는 칼퇴했다. 7시 되면 노트북 닫았다. 슬랙 로그아웃. 주말엔 회사 전화 안 받았다. "제 업무는 제 시간 안에 끝냈어요." 그게 자랑이었다. 8년차에 시니어 됐다. 그때부터 달라졌다. 조금씩. 신입 멘토링하면서 저녁에 질문 답변했다. 주말에 테스트 시나리오 검토해줬다. "선배니까"라고 생각했다. 10년차에 팀장 제안 받았다. 고민했다. 3주. 남편이 말했다. "해봐. 후회 안 할 거 같은데." 승진했다. 팀원 8명 맡았다. 연봉 1200만원 올랐다. 그날부터 슬랙이 24시간이 됐다. 책임의 무게 팀장 책상에 앉은 첫날. 선임 팀원이 말했다. "팀장님, 프로덕션 장애 나면 제일 먼저 연락 갑니다." 웃으면서 말했지만 농담 아니었다. 실제로 그랬다. 새벽 2시 전화 왔다. 결제 장애. 3시까지 개발팀이랑 원인 파악했다. QA에서 놓친 시나리오였다. 경영진 보고서 썼다. 재발 방지책 세웠다. 다음 날 아침 출근. 눈 아래 다크서클. 커피 두 잔. 9시 임원 보고. "품질 관리 체계 점검하겠습니다." 팀원들한테 미안했다. 내가 놓쳤는데. "팀장이 책임지는 거지. 당연한 거야." 그 뒤로 슬랙 알림 끌 수가 없었다.8명의 시간표 팀원 A는 신입. 매일 질문 10개. 저녁 8시에도 물어본다. "이거 어떻게 해요?" 답해줘야 한다. 내일까지 기다리면 일정 밀린다. 팀원 B는 3년차. 테스트 자동화 담당. 주말에 스크립트 짜다가 에러 나면 슬랙 멘션. "급하진 않은데요." 근데 월요일 데모인데. 토요일 오후에 코드 리뷰 해준다. 팀원 C는 육아휴직 복귀. 6시 칼퇴. 당연한 권리. 근데 C 담당 프로젝트 이슈는 7시 이후에도 터진다. 내가 본다. 내가 판단한다. 내가 에스컬레이션한다. 팀원 D는 8년차. 내 다음 서열. "팀장님 쉬세요. 제가 볼게요." 고맙다. 진심으로. 근데 D가 판단 못 하는 이슈도 있다. 결국 내가 본다. 8명. 각자 다른 프로젝트. 다른 일정. 하나라도 놓치면 장애. 장애 나면 내 책임. 슬랙을 어떻게 안 봐. 저녁 8시의 멘션 파스타 먹으면서 슬랙 봤다. 남편이 접시 치우면서 한숨 쉬었다. 들었지만 못 들은 척했다. 딸이 숙제 검사해달래서 방 갔다. 수학 문제집. 틀린 거 체크하면서. 슬랙 알림 또 왔다. "엄마 집중 안 해." "미안, 다시 볼게." 씻으려고 욕실 갔다. 폰 두고 가려다가 들고 들어갔다. 샤워 중에 슬랙 확인은 안 했다. 나올 때 봤다. 긴급 멘션 2개. 남편이 침대에서 책 읽고 있었다. 누워서 슬랙 답장 썼다. "자기야." "응?" "그거 지금 해야 돼?" 해야 한다. 내일 아침 배포인데. 말 안 했다. "거의 다 했어." 10분 더 걸렸다. 불 끄고 누웠다. 남편 등 돌려져 있었다.일과 가정의 균형이라는 말 회사에서 매년 한다. 워라밸 교육. "건강한 조직문화를 위해." 1시간짜리 온라인 강의. 배속으로 듣는다. 다들 그렇다. 강의 내용 알고 있다. "업무 시간과 개인 시간 구분." "불필요한 야근 지양." "주말엔 업무 연락 자제." 맞는 말이다. 전부. 근데 현실은 다르다. 우리 팀 주요 서비스 MAU 500만. 장애 나면 기사 난다. 주말에도 배포 있다. 고객은 24시간 쓴다. 누군가는 지켜봐야 한다. 그게 팀장이다. 나다. "업무 시간 안에 끝내면 되잖아요." 예전의 나한테 듣고 싶은 말. 지금의 나는 대답 못 한다. 남편의 말 다음 날 아침. 남편이 커피 내려주면서 말했다. "어제 그 말, 서운했어?" 아니라고 하려다가 멈췄다. "...조금." "미안. 근데 진짜로." 남편도 개발자다. 안다. "자기 요즘 표정이 안 좋아." "...그래?" "응. 집에 있어도 여기 없는 것 같아." 할 말 없었다. 맞는 말이니까. "나도 야근 많이 하잖아. 근데." 남편이 말 이었다. "집에선 폰 잘 안 봐. 의식적으로." "네 일이 더 중요해서 그런 거 아니야." "근데 자기는 항상 연결돼 있어야 하는 것처럼 보여." 또 맞는 말이다. "팀장이라서 그래." 겨우 나온 대답. "팀원들이 물어보면 답해줘야 하고." "이슈 놓치면 내 책임이고." "그래. 알아." 남편이 고개 끄덕였다. "근데 그게 매일 밤 10시까지여야 해?" "주말에도?" 대답 못 했다. 아니라고 할 수 없었다. 필요하다고도 확신 못 했다. 필요와 불안 사이 솔직히 모르겠다. 슬랙 확인이 꼭 필요한 건지. 아니면 내가 불안한 건지. 팀원이 7시에 멘션했다. 답장 안 하면 어떻게 될까. 내일 아침에 답해도 되는데. 근데 혹시 급한 거면? 혹시 내일까지 기다리면 문제 생기면? 그래서 답한다. 즉시. 그게 쌓인다. 매일. 어느 순간부터 슬랙이 기본값이 됐다. 출근 전 체크. 점심시간 체크. 저녁 먹으면서 체크. 자기 전 체크. 안 보면 불안하다. "내가 모르는 사이에 뭔가 터지면?" 그 생각이 자동으로 든다. 팀장 되기 전엔 안 그랬다. 내 일만 잘하면 됐다. 이젠 8명 일 다 신경 써야 한다. 8개 프로젝트 흐름 알아야 한다. 경계가 없어졌다. 업무 시간과 개인 시간의. 그게 팀장의 숙명인가. 아니면 내가 못 그어서인가. 어제 밤 통계 자기 전에 슬랙 히스토리 봤다. 어제 하루 슬랙 사용 시간. 출근 전: 15분. 업무 시간: 4시간 20분. 퇴근 후: 1시간 40분. 총 6시간. 하루의 4분의 1. 받은 멘션: 27개. 보낸 메시지: 84개. 읽은 채널: 12개. 퇴근 후 1시간 40분을 쪼개보면. 저녁 먹으면서: 20분. 딸 숙제 봐주면서: 15분. 씻으면서: 10분. 침대에서: 55분. 55분. 거의 한 시간을 침대에서 슬랙 봤다. 남편 옆에서. 통계 보고 웃었다. 웃긴데 안 웃긴 웃음. 선택이라는 착각 "팀장 안 하면 되잖아요." 후배 QA가 한 말. 맞다. 관리자 싫으면 안 하면 된다. 근데 그게 선택인가. 13년 했다. QA를. 더 올라가거나. 여기 머물거나. 둘 중 하나다. 전문가 트랙도 있다. QA 아키텍트. 테스트 전문가. 근데 우리 회사는 그 자리가 1개다. 이미 차 있다. 다른 회사로? 옮기면 연봉 내려간다. 아마. 팀장 경력 3년인데 다시 시니어로? 아니면 계속 여기서. 팀장으로. 슬랙 보면서. "선택의 문제"라고 말하는 사람들. 다 자기 상황에서 하는 말이다. 나한테 진짜 선택지는 별로 없다. 경계 긋기 실험 지난주에 시도해봤다. "저녁 9시 이후엔 슬랙 안 본다." 팀원들한테도 말했다. "급한 건 전화 주세요." 첫날. 9시에 슬랙 껐다. TV 봤다. 남편이랑. 10시쯤 불안해졌다. "혹시 뭐 놓친 거 아냐?" 참았다. 11시에 켰다. 멘션 5개. 다 급한 거 아니었다. "내일 답변 부탁드려요" 수준. 둘째 날. 9시에 껐다. 근데 8시 50분에 미리 확인했다. "9시까지는 봐야지." 9시 5분에 또 켰다. "마지막 체크." 셋째 날. 저녁 7시에 프로덕션 장애. 9시까지 해결 안 됐다. "오늘은 예외." 11시까지 봤다. 넷째 날. 그냥 포기했다. 경계 긋기. 말은 쉽다. [PROMPT_THUMBNAIL: anime style illustration, Korean female QA team lead sitting at desk late evening, smartphone with Slack notifications glowing, laptop open, exhausted but focused expression, warm office lighting transitioning to cool evening tones, Studio Ghibli inspired aesthetic, work-life balance struggle visualized, professional manga style] 8500만원의 값 연봉 8500만원. 세전이다. 실수령 650 정도. 관리자 수당 월 80 포함. 시급 계산해봤다. 심심해서. 월 평균 근무 200시간 기준. 시급 32,500원. 근데 실제론? 퇴근 후 슬랙 1시간 40분. 주말 슬랙 체크 1시간. 새벽 장애 대응 월 2회. 실근무 시간 월 240시간쯤. 시급 27,000원. QA 5년차 때 연봉 4800. 근무 시간 월 180시간. 시급 26,600원. 거의 같다. 8년 더 일했는데. 물론 돈만이 아니다. 팀 꾸리는 경험. 의사결정권. 커리어. 근데 남편 말 듣고 생각했다. 이게 맞나. 어제와 오늘 어제 남편이랑 얘기 더 했다. "당신 얘기 들으니까." "나도 모르게 연결돼 있었던 것 같아." "꼭 필요한 건 알아." 남편이 말했다. "근데 경계는 필요해." "자기 건강도 생각해야지." 맞다. 요즘 두통 잦다. 허리도 아프다. 수면 시간 6시간 안 된다. "이번 주는 해보자." 약속했다. "10시 이후엔 진짜 긴급 아니면 안 본다." 오늘이 월요일. 지금 저녁 8시. 슬랙 알림 12개 쌓였다. 하나씩 본다. 긴급: 0개. 중요: 3개. 내일 해도 됨: 9개. 중요한 것 3개만 답했다. 나머지는 내일. 남편이 거실에서 드라마 보고 있다. "다 했어?" "응." 폰 엎어놓고 소파에 앉았다. 드라마 줄거리 모르겠다. 그래도 본다. 알림 또 왔다. 안 봤다. 손이 근질근질하다. 참는다. 10시까지는 참아보는 거다.슬랙 없이 하루를 보낼 수 있을까. 아직 모르겠다. 근데 시도는 해봐야겠다.

'QA는 왜 항상 일정을 늘려달라고 해?' - 경영진과의 대화

'QA는 왜 항상 일정을 늘려달라고 해?' - 경영진과의 대화

또 이 대화 경영진 회의실이다. 에어컨 온도는 22도. 나는 노트북을 연다. "QA 기간 2주 더 필요합니다." CPO가 한숨을 쉰다. "왜 항상 QA는 일정을 늘려달라고 해?" 13년 했다. 이 질문 100번은 들었다. 개발은 3주 늦어도 "기술 부채"라고 하면 넘어간다. QA가 2주 요청하면 "일정 지연"이 된다. 이게 현실이다. 오늘도 숫자 싸움이다.준비한 무기들 회의 30분 전. 자료를 다시 확인했다. 지난 3개월 장애 리포트. 배포 후 긴급 핫픽스 12건. 고객 클레임 48건. CS 처리 비용 2400만원. "테스트 기간 부족이 원인"이라고 적힌 포스트모템이 7건이다. 이번 릴리즈는 결제 모듈 개편이다. 리스크가 다르다. 리그레션 범위만 1200개 케이스다. 자동화로 커버되는 건 40%. 나머지는 수동이다. 팀원 8명. 계산하면 최소 15일이다. CPO는 "10일 안에"라고 했다. 불가능한 숫자다. 근데 "불가능"이라고 하면 끝이다. 숫자로 말해야 한다.대화의 기술 "10일로 줄이면 어떻게 되는지 보여드리겠습니다." 스크린에 표를 띄운다.시나리오 테스트 커버리지 예상 누락 결함 배포 후 장애 확률15일 (요청) 92% 2-3건 15%10일 (현재안) 67% 8-12건 45%7일 (최악) 48% 15건+ 75%CFO가 몸을 앞으로 기울인다. "45% 장애 확률이면 비용이 얼마죠?" 준비한 슬라이드다. "지난 분기 결제 장애 1건당 평균 처리 비용 320만원입니다. 개발 긴급 투입, CS 대응, 보상 비용 포함입니다. 10건 터지면 3200만원입니다." "QA 2주 연장 비용은 팀 인건비 기준 480만원입니다." CPO가 펜을 내려놓는다. 숫자는 거짓말을 안 한다. 근데 이 숫자를 만들려고 새벽 2시까지 엑셀 돌렸다는 건 말 안 한다. 그들이 듣고 싶은 말 "대안은 있습니까?" 이 질문이 나오면 절반은 이긴 거다. "세 가지 옵션 준비했습니다." "첫째, 테스트 범위 축소. 결제 코어만 집중. 주변 기능은 스모크 테스트만. 리스크는 남지만 12일로 가능합니다." "둘째, 외부 QA 인력 투입. 3명, 1주일. 비용 900만원. 일정은 10일로 맞출 수 있습니다." "셋째, 스테이지 배포 후 모니터링 강화. 실사용자 5% 먼저 오픈. 문제없으면 전체 배포. 초기 대응 리소스 확보 필요합니다." CPO가 고개를 끄덕인다. "셋째로 가죠. 대신 QA팀이 배포 후 3일간 온콜 가능합니까?" "가능합니다. 대신 다음 스프린트 계획 조정 부탁드립니다." "OK." 회의는 40분 만에 끝났다. 이게 정치다. 내가 원하는 15일은 못 받았다. 근데 10일에 무리한 범위 떠안는 것도 막았다. 타협이다. 매번 이렇다.회의실을 나와서 슬랙에 팀원들한테 메시지 보낸다. "스테이지 배포 방식으로 결정. 코어 시나리오 집중. 배포 후 3일 온콜 체제. 다음주 월요일 킥오프 미팅." 답장이 바로 온다. "또요?" "네..." "알겠습니다ㅠ" 미안하다. 근데 이게 최선이었다. 자리로 돌아와서 커피를 마신다. 세 번째다. 다음 회의는 1시간 후다. 개발 리드랑 테스트 범위 협의. 거기서 또 싸워야 한다. "이건 QA 범위 아니지 않냐", "개발에서 체크했으면 됐지", "왜 이걸 또 테스트해야 하냐." 경영진한텐 일정 늘려달라고 하고, 개발팀한텐 범위 줄이자고 한다. QA 팀장이 하는 일이다. 아이러니하다. 품질 책임자인데 품질 타협을 제일 많이 하는 사람이 나다. 숫자로 말해야 산다 신입 때는 몰랐다. "품질이 중요합니다", "리스크가 있습니다", "장애 날 수 있습니다." 이렇게 말하면 될 줄 알았다. 안 먹힌다. 경영진은 숫자를 본다. 확률, 비용, ROI. 그래서 나는 엑셀을 판다. 지난 1년간 모든 장애를 분석했다. 원인별, 비용별, 테스트 커버리지와의 상관관계. 피봇 테이블을 20개는 만들었다. "테스트 커버리지 10% 감소 시 장애 발생률 1.8배 증가" 이런 문장 하나 만들려고 3개월 데이터를 긁는다. 근데 이게 있으면 회의실에서 산다. CFO는 비용으로 말하면 듣는다. CPO는 일정 대안 주면 듣는다. CTO는 기술 부채 연결하면 듣는다. 같은 이야기를 세 가지 언어로 준비한다. 관리자가 되고 나서 배운 거다. 나는 QA 전문가인데 경영 통역사가 됐다. 팀원들한텐 못 보여주는 것 팀원들은 모른다. 내가 회의실에서 얼마나 싸우는지. "QA는 왜 항상 시간 더 달라고 해?"라는 말을 몇 번이나 듣는지. 그냥 "일정 조정됐어, 이렇게 하자"고 말한다. 왜냐면 팀원들은 테스트에 집중해야 하니까. 이런 정치 싸움에 에너지 쓰면 안 되니까. 근데 가끔 후배가 묻는다. "팀장님, 우리가 요청한 거 다 받아들여진 거예요?" 아니다. 절반도 못 받았다. 근데 "응, 최선이었어"라고 답한다. 이게 리드의 역할이다. 밖에서 싸워서 안으로 들어올 땐 방패가 되는 거. 팀원들은 내가 경영진한테 까이는 걸 볼 필요 없다. 나만 알면 된다. 집에 가면 남편한테 푼다. 남편도 개발 리드니까 안다. "QA는 항상 그런 거야, 고생했어." 위로는 안 되는데 그래도 들어주는 사람이 있다는 게 다행이다. 다음 릴리즈는 또 이번에 타협했다. 다음에도 타협할 거다. 근데 완전히 지는 건 아니다. 지난 2년간 내가 쌓은 데이터 덕분에 QA팀 예산은 30% 늘었다. 자동화 인프라 투자도 승인받았다. 팀원 2명 증원도 했다. 회의 한 번에 다 이기는 건 불가능하다. 근데 매번 조금씩 근거를 쌓으면 흐름은 바뀐다. "QA는 왜 항상 일정 늘려달라고 해?" 이 질문을 듣지 않는 날이 올까? 모르겠다. 근데 이제는 이렇게 생각한다. 이 질문을 받는다는 건, 우리가 일정에 영향을 줄 만큼 중요한 존재라는 뜻이다. 10년 전엔 QA는 의견도 못 냈다. 일정은 개발팀이 정했고 QA는 주어진 시간에 맞췄다. 지금은 회의실에 앉아서 숫자로 말한다. 타협은 하지만 무시당하진 않는다. 이게 내가 13년 동안 싸워서 얻은 거다.오늘도 이겼다고 할 순 없다. 근데 지지도 않았다.

새벽 2시, 슬랙 알림음이 울렸다

새벽 2시, 슬랙 알림음이 울렸다

새벽 2시, 슬랙 알림음이 울렸다 핸드폰 화면이 파랗게 켜졌다. 새벽 2시 3분. 슬랙 알림이었다. 개발팀 리드의 메시지였다. "긴급. 프로덕션 배포 후 결제 모듈 오류 발생. 즉시 대응 필요합니다." 침대에 누워있던 몸이 반사적으로 일어났다. 13년을 하면서 이런 순간이 몇 번 있었는데, 체감상 점점 더 자주 터지는 것 같다. 남편은 여전히 깊게 자고 있다. 휴대폰 불 밝기를 낮춰서 침대 옆에 앉았다. 채널에 들어가니 개발팀장도 이미 온라인이었다. QA팀 부리드 신은 5분 전부터 확인 중이라고 했다. 상황은 심각했다. 결제 오류면 매출 직결이다. 우리 회사는 B2C 서비스라 고객 이탈로 직결될 수 있다. 밤 11시 배포였다. 테스트는 완벽하게 했다. 차수별로. 회귀 테스트도 깔끔하게 통과했다. 내가 직접 체크리스트를 짰다. 그런데 났다. 공황 vs. 책임감 30초가 지났다. 충동적으로 팀원들 슬랙을 켜고 싶었다. 그런데 손가락이 멈췄다. 새벽 2시다. 신은 이미 일어났을 거다. 다른 팀원들까지 깨우는 게 맞나? 아니다. 우선 상황을 파악해야 한다. 개발팀 리드에게 물었다. "현상 상세하게 주실 수 있나요? 에러 로그, 재현율, 영향 고객 규모." 너무 비즈니스 톤이었다. 내가 쓴 문장을 다시 읽으니 감정이 뺀져 있었다. 하지만 지금은 감정을 다룰 때가 아니다. 팀원들 수면 시간을 빼앗을지 말지 결정해야 한다. 응답이 2분 뒤에 왔다. 에러 로그 캡처, 재현율 100%, 영향 고객 약 8000명. 지난 1시간. 기술적으로는 간단한 문제였다. 데이터 타입 검증 로직이 배포 때 바뀌었단다. 우리 테스트에는 그 경로가 없었단 얘기다. 테스트 케이스 gap. 내 책임이다. 손이 떨렸다. 화면을 껐다가 다시 켰다. 신에게 메시지를 보냈다. "신. 일어났어? 상황 보자." 응답이 10초 만에 왔다. "이미 보고 있습니다. 개발팀이랑 핫픽스 준비 중." 신은 밤새 깨어있었던 거다. 내 팀원이. 새벽 2시에 홀로.30분 간의 체크리스트 침대에서 일어나 거실로 나갔다. 남편을 깨울 수 없다. 내일 그 친구 회의 많다. 노트북을 켰다. 실시간으로 개발팀과 슬랙 채널을 통해 진행 상황을 체크하기로 했다. 내가 할 일은 명확했다. 첫 번째. 원인 분석 리드. 개발팀이 핫픽스하는 동안 우리는 왜 이걸 못 잡았는지 파악해야 한다. 테스트 케이스 갭? 배포 전 리뷰 미스? 아니면 요구사항 자체에서 놓친 부분? 두 번째. 재발 방지책 수립. 오전 미팅 전에 대안까지 제시해야 한다. 그래야 관리진에게 설명할 수 있다. 세 번째. 팀원 폴로업. 신이랑 다른 팀원들이 이걸로 자책하지 않도록 해야 한다. 이건 내 책임이니까. 노트북 화면에 Jira를 켰다. 해당 스토리를 찾아서 요구사항부터 다시 읽기 시작했다. 오전 2시 26분. 요구사항은 "결제 모듈 타입 검증 강화"였다. 내가 쓴 테스트 케이스는 7개. 스토리 댓글에 개발팀 리드가 남긴 기술 문서를 다시 봤다. "정수, 실수, 문자 타입 모두 검증합니다." 우리 테스트는 정상 케이스 5개, 비정상 케이스 2개였다. 그런데 논리적 결함이 있었다. 비정상 케이스가 "null 값", "공백 문자" 이렇게만 있었다. 부동소수점 오버플로우 테스트는 없었다. 완전히 기술적 경험 부족이었다. 아니다. 나의 경험 부족이었다. 2시 41분. 개발팀이 핫픽스 배포했다고 올라왔다. 고객 영향이 멈췄다. 긴장이 풀렸다. 그 순간 눈시울이 뜨거워졌다. 아니다. 아직도 많이 남았다. 오전 4시, 팀원들을 깨우기 신에게 직통으로 전화를 걸었다. 음성 통화로 했다. 새벽 4시지만 문자로는 안 될 것 같았다. "안녕하세요." 신이 받았다. 목소리가 말끔했다. 안 자고 있었단 얘기다. "신, 고생 많았다. 지금 팀미팅을 하려고 하는데 괜찮겠어?" "예. 준비 중입니다." "다른 팀원들은 깨우지 마. 신, 넌 좀 괜찮아?" 5초간 침묵. 나는 전화기를 귀에 붙인 채 창밖을 봤다. 서울 하늘이 여전히 까맣다. "네. 진짜 죄송합니다." "뭔 소리해. 이건 내 책임이야. 요구사항 분석 단계에서 엣지 케이스를 못 잡은 건 내 책임이다. 넌 정상적으로 테스트 케이스를 실행했어. 반복하는데 이 오류는 나오지 않았어?" "맞습니다. 테스트는 다 통과했어요." "그럼 됐다. 프로덕션에는 시뮤레이션할 수 없는 데이터가 있는 거고, 우리는 그걸 예상할 수 없는 영역이 있는 거다. 오전 9시에 팀 전체가 모이면 어쨌든 얘기하겠지만, 지금은 먼저 자. 부리드가 다음 배포까지 감시할 거니까." "네. 감사합니다." 전화를 끊었다. 시간은 4시 12분. 밖은 여전히 까맣다.포스트모템 문서 작성 4시 30분부터 포스트모템 틀을 만들기 시작했다. 13년 해오면서 학습한 게 있다면, 장애 나면 감정적으로 대처하지 말고 시스템적으로 남겨야 한다는 거다. Root Cause Analysis 섹션을 작성했다. 원인:테스트 설계 단계에서 부동소수점 오버플로우 엣지 케이스 미포함 기술 문서 "타입 검증" 요구사항을 기능 관점에서만 해석 요구사항 검토 시 개발팀 기술 리드와 상세 논의 생략 테스트 케이스 리뷰 프로세스에서 경험 많은 멤버 참여 없음재발 방지책:타입 검증, 수치 연산 관련 스토리는 의무적으로 부리드 리뷰 추가 요구사항 분석 미팅에 개발팀 시니어 1명 참석 기술 요구사항 테스트 케이스에 "엣지 케이스 10개 이상" 체크리스트 추가 일일 빌드 배포 전 핵심 경로 수동 테스트 재강화5시 15분. 문서가 완성됐다. 관리자 슬랙 채널에 올렸다. CEO, CFO, 개발팀장이 받을 거다. 메시지를 달았다. "장애 원인 분석 및 개선안 첨부. 재발 방지를 위해 우리 팀의 테스트 프로세스를 다음 주부터 강화하겠습니다. 고객 영향도 해결되었으며 지속 모니터링 중입니다." 너무 뻣뻣한가? 다시 읽었다. 맞다. 이 정도가 맞다. 새벽 5시 30분, 여전히 깨어있다 침대에 가서 누웠다. 하지만 안 된다. 눈이 떠져 있다. 천장을 본다. 회의 시간까지 3시간 30분이 남았다. 팀원들을 어떻게 안심시킬지 생각했다. 신은 3년차다. 좋은 팀원이다. 하지만 이런 장애가 나면 자책한다. 내 역할은 그걸 다루는 거다. 내가 새벽 2시에 깼을 때 느낀 감정들을 정리해봤다. 처음엔 공황이었다. 그 다음은 책임감이었다. 그 다음은 팀원에 대한 미안함이었다. 공황은 줄었다. 책임감은 여전하다. 하지만 미안함이 문제다. 미안함이 다른 감정들을 잠식하면 안 된다. 내가 관리자가 된 건 5년 전이다. 그때 처음 느꼈던 감정은 "이제부터 내가 책임진다"는 거였다. 장애는 내 책임이다. 팀원 성과도 내 책임이고, 팀원 심리 상태도 내 책임이다. 이 책임감이 13년을 버티게 했나? 처음 회사 들어왔을 때는 "버그를 못 찾은 게 죄책감"이었다. 5년 전부터는 "팀원들이 괜찮게 해줄 수 없어서"가 죄책감이 됐다. 후배들이 가끔 물어본다. "선배님, QA 리드 됐을 때 달라진 점이 뭐예요?" 나는 대답한다. "프로세스 생각이 많아진다. 그리고 동시에 그 프로세스를 깨트리지 않으려고 한다. 왜냐면 프로세스가 팀원을 지켜주니까." 새벽 5시 47분. 노트북을 다시 켰다. 슬랙을 봤다. CEO가 반응했다. 엄지손가락 이모지. 일단 넘겼다.오전 9시, 팀 미팅 모두가 화상 회의 링크를 들어왔다. 신은 물론이고, 3년차 박, 2년차 임, 1년차 신입 이, 그리고 팀원 4명 더. 총 8명이 카메라를 켰다. "좋아. 어제 프로덕션 배포 후 장애가 났으니까 빠르게 공유할 거다. 먼저는 개발팀이랑 빠르게 핫픽스한 우리 팀원 신에게 감사한다. 밤새 깨 있었지?" 신이 고개를 저었다. 카메라 화질에서도 피곤한 얼굴이 보였다. "기술적 원인은 간단했다. 부동소수점 오버플로우. 근데 우리 테스트에는 그 케이스가 없었다. 이게 내 책임이다." 내가 말하는 동안 회의실 카메라가 조용했다. "각 팀원이 테스트 프로세스에서 실수한 게 아니다. 요구사항 분석 단계에서 우리가 엣지 케이스를 충분히 생각 못 했고, 내가 그걸 캐치 못 했다. 이제부터 뭘 할 거냐면..." 포스트모템 문서를 공유했다. 재발 방지책 4가지를 차근차근 설명했다. 특히 "부리드 리뷰 의무화"와 "개발팀 시니어와 요구사항 협업" 부분을 강조했다. "이건 우리 프로세스가 약하다는 뜻이니까, 우리가 보강해야 한다. 그리고 신. 너는 배포 전 수동 테스트 재강화 부분을 리드해 줄래?" 신이 고개를 끄덕였다. "네." "좋아. 다른 질문 있어?" 박이 손을 들었다. "혹시 이건 우리 평가에 반영되나요?" 좋은 질문이었다. 관리자라면 싫어할 질문이었지만, 나는 싫어하지 않았다. "당연히 안 된다. 각 개인의 업무 성과 평가에는 영향 없다. 대신 우리 팀 전체의 품질 메트릭스에는 반영된다. 그리고 경영진 리포트에도 올라간다. 하지만 이게 좋은 신호야. 왜냐면 이런 장애는 우리가 배울 기회이고, 다음부턴 못 잡을 확률이 줄어든다는 뜻이거든." 9시 27분. 회의를 끝냈다. 오전 10시, 남편과 커피 남편이 일어났다. "뭐 있었어?" "프로덕션 장애. 밤 2시에 났어." "그래서 못 자?" "응." "괜찮아?" "응. 이미 해결됐어." 그것보다 더 얘기하지 않았다. 남편도 개발자라 알아듣긴 하지만, 이런 건 일단 자기 책임으로 받는 게 맞는 것 같다. 공유하면 옮겨지거든. 남편이 커피를 만들어줬다. 아메리카노. 원래 세 잔이 평균인데, 오늘은 벌써 다섯 잔을 마셨다. "딸한테는?" "안 말했어. 엄마가 좀 바쁜 줄만 알면 돼." 남편이 웃었다. "13년을 이렇게 했네." "응." 남편이 맞다. 13년을 이렇게 했다. 밤에 깨서 일하고, 아침에 팀을 챙기고, 저녁에 리포트 쓰고, 주말에도 사건이 터지면 뛴다. 그런데 이게 성가신가? 아니다. 이게 일이니까. 게다가 내 팀원들이 안정적으로 일할 수 있게 하는 일이니까. [IMAGE_4] 오후 2시, 현실로 돌아와 사실 이 장애가 내 커리어에 영향을 줄까 생각했다. CEO가 본 건 포스트모템인데, 거기엔 "내 책임"이라고 명시했다. 나쁜 판단이었나? 아니다. 관리자가 책임을 회피하면 팀원들이 먼저 피한다. 팀 분위기가 완전히 달라진다. 우리 팀 문화는 "장애는 성장의 기회"다. 내가 처음 팀장 됐을 때부터 만든 문화다. 그래서 처음엔 이 문화가 안 먹혔다. 다른 팀에서는 장애가 터지면 책임자 찾아가지고, 우리는 "뭘 배우나"부터 시작했다. 5년이 지나니 이제는 팀원들이 오히려 소극적일 수 있다고 지적한다. "리스크 기반으로 테스트하되, 우리가 놓칠 수 있는 부분이 뭐냐"고 자발적으로 물어본다. 이게 좋은 신호다. 오후 2시. 신에게 슬랙을 보냈다. "수고했어. 내일부터 일상 복구하고, 이번 주 목요일까지는 추가 테스트 케이스 작성 시간 좀 갖자." 신이 응했다. "감사합니다." 어제 밤 2시와 오늘 오후 2시. 12시간이 지났다. 밤새 카페인만 했는데도 피곤하지 않다. 왜냐면 이건 내 일이거든. 책임감이 아드레날린인 셈이다. 저녁 7시, 퇴근 준비 리포트를 다시 봤다. 이번 주 테스트 성공률 99.6%. 어제 장애를 제외하면 99.99%다. 아이러니하지만 사실이다. 뭐 이 정도면 충분하다. 완벽한 건 없다. 다만 "다음 번엔 더 잘하자"만 있을 뿐이다. 남편에게 톡 보냈다. "7시에 나와." 퇴근 길에 걸어가면서 생각했다. 13년을 QA에 바쳤다. 몇 번 회사 이직도 고민했다. 개발 쪽으로 전향할 수도 있었다. 5년 전에 경영진 트랙도 제안받았다. 하지만 여기서 남았다. 왜냐면 품질은 협업의 결과라는 걸 알았거든. 그리고 팀원들을 보면서 성장하는 그 느낌이 있거든. 새벽 2시 슬랙 알림음이 싫을 수도 있다. 근데 그 소리가 울리면, 나는 일어난다. 왜냐면 이게 내 일이고, 이게 내 책임이고, 이게 내 팀이니까. 13년 후에도 여전히 같은 느낌이다. 다만 패턴만 달라졌다. 처음엔 "버그를 못 찾아서"였고, 이제는 "팀원들이 안전하게 일할 환경을 못 만들어서"다. 지표는 올라가야 한다. 그런데 지표만으로는 팀을 재지 못한다. 8시 30분. 집에 들어갔다. 딸이 "엄마!"라고 했다. "오늘 뭐 했어?" "학교에서..." 평범한 저녁이었다. 그게 고맙다.장애 없이 끝나는 날도 좋지만, 장애가 터지고 그걸 정확하게 처리하는 날이 더 남는다.