아뿔싸! 장애가 발생했다.


시스템을 개발하고 운영하는 사람들이라면 장애나 오류는 어찌보면 필연적인 존재다. 이 때 어떻게 대응을 해야 하는가에 대한 고민은 대기업 시절에 보고 배운 것과 현재 직장인 스타트업에서 보고 배운 것절충안이라는 나름의 결론을 바탕으로 이 글을 쓰게 되었다.

절충안이라고 생각한 까닭은 양쪽 다 문제가 있었기 때문인데,
대기업은 지나치게 보수적이며 절차적이고,
스타트업은 지나치게 스타 플레이어, 히어로가 등장해야만 해결이 되는 상황이었기 때문이다.

나는 두 가지 경험 가운데에 이상적인 무언가 있을 것이라 생각해 봤으며, 개발 업계와 유사한 분야는 건설이 아니라 예술이라는 지론 바탕으로 예술계에서 협업의 사례를 찾아봤다.
그 결과 나는 개발 현장의 협업을 하나의 협주로 볼 수 있다는 걸 깨달았으며, 아래와 같은 정리를 하게 되었다.


협주로 예시를 드는 협업의 방법

오케스트라(주로 대형 조직): 절차를 준수하며 체계를 온전히 따른다. 반복적 발생, 위계적 조직 구조에 효율적이다.

dr.strangelove-_the_war_room오케스트라의 단점:

  1. 실무자 입장에서 빡빡한 프로세스는 늘 관료주의를 불러 일으키는데, 주요 보고자들이 조치하기도 바쁜 시간에 진행 상황에 대해서 자꾸 물어보는 증상이 발생한다.
  2. 예견 못한 사태가 발생하면 모두가 혼란에 빠진다.
  3. 후속 행정 작업(문서화, 보고 등)의 양도 막대한 편이다.

잼 세션(개인적인 이상향): 상황을 조치하는 개인을 중심으로 주변에서 숙련 된 동료들의 서포트.

8396945416_b9295abc6d_b-2
잼 세션의 단점:

  1. 숙련된 개개인으로 구성 된 팀을 만들기 어렵다.
  2. 모두가 이해할 수 있는 지표수단이 평소에 존재해야 한다.
    (즉, 이 정도 구성원을 갖추고 준비하는게 어렵다.)

애드립(주로 스타트업): 상황에 따라서 개인이 즉흥적으로 알아서 대응.

images애드립의 단점:

  1. 영웅 격이었던 해당 인물이 평소에 문서화를 잘 안 해두고 멀리 휴가를 떠나거나, 퇴사 시에 매우 치명적이다. (슈퍼맨이 자리 비웠다고 외계 종족이 쳐들어왔던 영화를 생각해보자.)

그렇다면 어떻게 잼 세션을 해야 하는가?

---------
0. 대화방법

  • 자신이 무엇을 보고 말하는지 구체적인 이미지(근거)를 제시하며 대화 해야 한다.
  • 분명한 용어를 이용해 대화를 시도한다. 보통 기술/업무 스택이 다르면 동일한 단어가 다른 의미를 갖는 경우가 허다하다.

images

  1. 집중 방해 요소 제거
  • 장애를 조치중인 담당자의 집중을 방해하는 요소를 배제한다.
  • 중복된 질문은 대신 응답해준다.
  • 오해를 부를 수 있는 질문이나 잘못된 대답은 즉시 바로 잡는다.

-----------1-
2. 조치 사항 전달 및 대화 로깅

  • 확인 된 사항, 확인되지 않은 사항, 가설 등을 공통 된 문서에 실시간 취합한다.
  • 어떤 대화가 오갔는지가 매우 중요하다. 반드시 중요 대화는 로깅을 한다.
  • 담당자도 무엇을, 언제 했는지 잘 모른다. 조치사항을 시간대별로 설명 가능하게 기록한다.
  • 반드시 액션 아이템을 만들어서 임시 조치 사항의 원복 또는 향후 대응 방안을 관리한다.

figure_rpg_characters-1
3. 기술적 확인 필요 사항 및 일부 조치 대행

  • 로그 확인 또는 서비스 재기동
  • 경험 또는 데이터 바탕의 가설 제시 및 폐기 조치: 아니면 즉시 확인 필요 대상에서 아니었음을 명확히 해준다.
  • 유관 지표 분석

마치며

안정적인 시스템을 만드는 것과 안정적인 상태로 가둬 두는 것은 다르다. 신중함을 요구하는 것도 중요하지만 그것이 주저하게 되는 원인이라면 그건 신중함이 아닌 두려움일 뿐이다.