Skip to main content

4장. 독자 관점에서 릴리스 문서와 장애 보고서 쓰기

1. 체인지 로그를 분류, 요약, 종합하는 법#

체인지 로그의 양과 만족도의 관계#

  • 일을 하고 상사나 고객에게 글로 보고해야 할 때가 있습니다. 이때 글을 줄이면 일을 안한 것처럼 보입니다.
  • 반대로, 너무 많이 쓰면 이또한 좋지 않습니다.
  • 적절한 양으로 쓰는 것이 중요합니다.

1단계: 선정하기#

  • 체인지 로그 중에서 쓸 것과 없앨 것을 구분하는 것이 중요합니다.
개발자가
노력을 많이 들인것노력을 덜 들인 것
독자가관심 있는 것1순위2순위
관심 없는 것3순위4순위
  • 관심에 따라, 체인지 로그 선정에 큰 영향을 끼칩니다.
  • 회사의 순위까지 고려하면 다음과 같이 나타낼 수도 있습니다.
회사가 말하고 싶다개발자가 말하고 싶다독자가 듣고 싶다순위수준예시
OOO1순위자세히인공지능 추천 추가
OOX2순위간단히대용량 네트워크 증설
OXO3순위간단히UI 개선
OXX4순위주석면책 조항, 정책 변경
XOO5순위참조작업 과정, 레퍼런스
XOX삭제-성과가 낮은 오류 수정
XXO삭제-경쟁력 없는 기능 추가
XXX삭제-사소한 오류 수정

2단계: 분류하기#

  • 비슷한 체인지 로그를 선정했으면 비스한 체인지 로그까지 묶어야 합니다.
  • 첫번째 방법은 개발 관점에서 비슷한 작업을 묶는 방법입니다.
- 새로운 기능 추가
- 닉네임 만들 때 특수 문자를 입력하는 기능 추가
- 빈 게임방을 자동으로 검색하는 기능 추가
- 기능 개선
- 용량 큰 사진 추가시, 휴대전화 메모리를 최소화하도록 등록 방식을 개선
- 최근 기록이 상위에 올라오도록 개선
- 게임 종료 후 바로 순위를 볼 수 있도록 개선
- 오류 수정
- 고해상도 폰에서 아이콘이 찌그러지는 오류 수정
- 가로/세로 화면 전환 시 하단 메뉴가 사라지는 오류 수정
- 애니메이션 스티커가 갑자기 멈추는 오류 수정
- 미리 보기에서 간혹 리부팅되는 문제를 해결
  • 두 번째 방법은 독자가 일반 사용자인 경우에 유용하며, 사용자 관점에서 비슷한 것끼리 묶는 방법입니다.
- 게임 준비
- 미리 보기에서 간혹 리부팅되는 문제를 해결
- 빈 게임방을 자동으로 검색하는 기능 추가
- 닉네임 만들 때 특수 문자를 입력하는 기능 추가
- 게임 중
- 고해상도 폰에서 아이콘이 찌그러지는 오류 수정
- 가로/세로 화면 전환 시 하단 메뉴가 사라지는 오류 수정
- 애니메이션 스티커가 갑자기 멈추는 오류 수정
- 게임 종료
- 최근 기록이 상위에 올라오도록 개선
- 게임 종료 후 바로 순위를 볼 수 있도록 개선
- 용량 큰 사진 추가시, 휴대전화 메모리를 최소화하도록 등록 방식을 개선

3단계: 요약하기#

  • 체인지 로그르 분류하면 문장 단위로 요약합니다.
  • 요약 방법 중에서 서술식 문장을 개조식 문장으로 만들면 더 자연스럽습니다.
- 게임 준비
- 미리 보기 리부팅 문제 해결
- 빈 게임방 자동 검색 기능 추가
- 닉네임 만들 때 특수 문자 입력 기능 추가
- 게임 중
- 고해상도 폰에서 아이콘이 찌그러지는 오류 수정
- 가로/세로 화면 전환 시 하단 메뉴가 사라지는 오류 수정
- 애니메이션 스티커 멈추는 오류 수정
- 게임 종료
- 최근 기록이 상위에 올라오도록 개선
- 게임 종료 후 바로 순위를 볼 수 있도록 개선
- 용량 큰 사진 등록할 때 휴대전화 메모리 최소화

4단계: 종합하기#

  • 위의 릴리스 내용 전체를 종합해서 한 문장으로 만들어서, 작성해야 합니다.
  • 전체를 종합하는 방법은 분석과 반대입니다.
  • 위를 종합하면 다음과 같은 형태로 만들 수 있습니다.
    • 시간 절감, 다양한 닉네임, 정확한 사용, 결과를 쉽게 확인, 결과를 빠르게 확인, 편안한 마음으로 서비스 이용
  • 이를 한 문장으로 만들려면, 핵심이 되는 것을 발췌해야하며 앞의 1순위 방법을 사용해야 합니다.
    • 게임방에 더 빨리 입장하고 게임 결과를 바로 확인할 수 있도록 다음과 같이 변경
사용자 편리성 개선
- 게임방에 더 빨리 입장
- 게임 결과 바로 확인
[세부 내용]
- 게임 준비
- 미리 보기 리부팅 문제 해결
- 빈 게임방 자동 검색 기능 추가
- 닉네임 만들 때 특수 문자 입력 기능 추가
- 게임 중
- 고해상도 폰에서 아이콘이 찌그러지는 오류 수정
- 가로/세로 화면 전환 시 하단 메뉴가 사라지는 오류 수정
- 애니메이션 스티커 멈추는 오류 수정
- 게임 종료
- 최근 기록이 상위에 올라오도록 개선
- 게임 종료 후 바로 순위를 볼 수 있도록 개선
- 용량 큰 사진 등록할 때 휴대전화 메모리 최소화

2. 고객에게 유용한 정보를 쓰자#

개발자 관점과 고객 관점#

  • 체인지 로그는 개발자가 변경한 내용을 적은 것입니다.
  • 외부 개발자나 일반 사용자가 보는 체인지 로그를 쓸 때는 개발자 관점이 아니라 고객 관점에서 써야합니다.
  • 좋은 예시는 다음과 같습니다.
네이버 밴드 변경사항
채탕 답장 기능이 추가되었어요!
상대방 메시지를 꾹 눌러 답장쓰기를 해보세요.
밴드의 일정 참석 요청을 놓치지 않으려면,
가입 밴드의 일정 푸시 알림을
[참석확인과 미리알림 받기]로 설정해보세요
변경사항
[멜론 v.4.8.4 업데이트]
- 검색: 새롭게 개편된 검색 홈에서는 주제별 검색 키워드를 한눈에 모아보고, 실시간 인기 검색어도 시간대별로 확인할 수 있습니다. OST, 방송, 키즈 캐릭터명을 검색하여 원하는 음악을 쉽게 찾고, 상황, 분위기, 장르명 검색을 통해 듣고 싶은 음악을 발견해보세요.
- 오픈 소스 라이브러리 업데이트를 통해 앱 안정성을 강화했습니다.
  • 이러한 관점은 정해져있는 것은 아닙니다.

과거를 리뷰하고 미래를 보여주자#

  • 체인지 로그에는 '한 일'을 적습니다.
  • 다만, 고객이 요구하거나 불평한 것이 있다면 기약없이 기다림을 주지않기 위해 다음 릴리스 항목으로 검토하는 것이 있다면 중요한 것은 공개하는 것도 좋습니다.
// 카카오맵 2018년 5월 11월 체인지 로그
[주요 개선 항목]
- 지도 축소 상태에서 도로 굵기 개선, 지역 명칭 컬러 개선
- 국도, 지방도 컬러 구분
- 지하철 예정 노선 컬러 개선
- 등산로 선 두께 조절(5월 24일 적용 예정)
[검토 중인 항목]
- 건물 가독성 개선 검토
- 색각이상자 대응 검토
- 심볼 상세화 검토

Semantic Versioning(유의적 버전)#

  • 체인지 로그는 버전 번호와 항상 같이 사용됩니다.
    • 버전 1.2.2 -> 1.2.3 / 간단한 패치를 의미, 이전 버전과 호환를 의미합니다.
    • 버전 1.2.2 -> 1.3.0 / 새로운 기능을 추가했을 때입니다.
    • 버전 1.2.2 -> 2.0.0 / 전면적인 업데이트이며 이전 버전과 거의 호환되지 않는다고 볼 수 있습니다.
  • 다만, 버전 번호를 올리는 단일 표준이 없습니다.
  • 유의적 버전에 대한 상세 내용은 다음과 같습니다.

3. 릴리스 문서는 문제 해결 보고서처럼 쓰자#

문제와 문제점을 구별하자#

  • 체인지 로그는 몇 줄로 간단히 쓸 때가 많습니다. 그러나 기업에서 하는 사업에 따라 고객에게 제공해야할 때도 있습니다.
  • 버그를 잡거나 새로운 기능을 추가하거나 성능을 개선하는 것은 모두 어떤 문제를 해결하기 위해서입니다.
  • 문제를 해결한다는 것은 목표에 다다르지 못하는 문제를 해결함을 의미하며 발생형, 탐색형, 설정형으로 구분됩니다.
    • 발생형 문제는 당장 발생해 해결하기 위해 고민하는 문제입니다.
    • 탐색형 문제는 현재 상황을 개선하거나 효율을 높이는 문제입니다.
    • 설정형 문제는 미래 상황에 대응하는 문제입니다.
  • 버그를 수정하는 것, 기능과 성능을 개선, 새로운 기능을 만드는 것 모두 문제를 해결하는 것입니다. 이때 문제와 문제점을 구별해야 합니다.

문제, 문제점, 해결책, 후속 계획 순으로 적자#

  • 하나의 문제에 문제점은 여러 가지고, 여러 가지 문제점을 모두 해결하기에는 예산과 인력이 부족하므로 특정 문제점을 선택할 수 밖에 없습니다.
  • 릴리스 문서는 결국 개발자가 문제점 하나를 선택해서 해결한 결과입니다.
- 문제: 사용자가 급증하면 서버가 정지
- 문제점: 잘못된 시스템 설정, 프로그램 비 최적화, 잘못된 DB 설계
- 해결책: 시스템 설정 변경
- 후속 계획: 프로그램 최적화, DB 재설계

법적인 문제를 고려해서 쓰자#

  • 릴리 노트의 핵심은 문제 해결의 과정과 결과를 고객에게 알려주는 것입니다.
- 문서 정보: 제품명, 필리스 이름, 릴리스 버전, 릴리스 날짜 등
- 개요: 릴리스 노트의 주요 내용을 종합한 글
- 새로운 기능: 이번 릴리스에 새롭게 추가한 기능
- 개선 사항: 기존 기능을 향상하거나 안정성 등을 강화한 내용
- 버그 수정: 버그 내용과 수정 사항
- 영향과 주의사항: 릴리스로 인한 영향과 개발자의 주의사항
- 연락처: 문의나 의견 접수를 위한 담당자 이름과 연락처 번호
- 면책: 변경 사항이나 릴리스 문서로 인한 법적 문제 발생 시 책임의 한계에 관한 내용
  • 릴리스 노트를 통해 거래 개발자에게 어떤 행동을 유도할 때는 그 행동이 필수인지, 권장인지, 선택인지를 명확히 알려줘야 합니다.

필수#

  • ~해야 한다, ~하지 않으면 안된다, ~하면 안된다, ~해서는 안된다

권장#

  • ~할 것을 권장한다, ~하는 것이 좋다, ~하는 것이 이상적이다

선택#

  • ~할 수도 있다, ~해도 된다, ~하는 방법이 있다

4. 비즈니스를 이해하는 장애 보고서 쓰기#

장애 보고서의 특징#

  • 첫째, 장애 보고서는 개발자가 원할 대 쓸 수 없습니다.
  • 둘째, 장애의 1차 원인은 대부분 다른 원인의 결과다.
  • 셋째, 장애 보고를 받는 윗사람은 대부분 개발자가 아니다.
  • 넷째, 장애를 해결했다고 해서 100% 해결한 것은 아니다.

장애 보고서를 쓸 때는 다음의 글쓰기 방법이 필요합니다.

  • 질문에 대답하는 신속한 글쓰기
  • 원인과 이유를 찾는 분석적 글쓰기
  • 상사를 고려하는 비즈니스 관점의 글쓰기
  • 원하는 것을 얻는 정치적 글쓰기

질문에 대답하는 신속한 글쓰기#

  • 사용자가(주어) 결제를(목적어) 할 수 없다(서술어) 같은 식으로 단순하게 작성합니다.
  • 이를 일단 적고, 정리를 합니다.
제목 : 서버 모듈 변경 문제로 사용자 결제 불가(10~11시)
- 장애 내용 : 사용자 결제 불가(10:00 ~ 11:00)
- 장애 영향 : 장애 중 결제 시도 100건 -> 1시간 후 결제 비율 10%
- 장애 원인 : 서버 쪽 결제 모듈변경 시 모듈 인터페이스의 함수를 수정했으나 프런트에서는 기존 함수 호출로 에러 발생
- 조치 상황 : 서버 쪽의 바뀐 함수를 호출하도록 프런트 코드 수정
- 조치 결과 : 결제 기능 정상 작동
- 핵심 원인 : 서버 쪽과 프런트 쪽 커뮤니케이션 단절
- 향후 대책 : 서버, 프런트 팀장이 소통 방법 협의하여 보고

원인과 이유를 찾는 분석적 글쓰기#

  • 문제 해결 기법 중에 5Whys가 있으며 이는 어떤 원인을 찾을 대 근본적인 원인을 찾는 기법입니다.
    • 문제의 원인이 되는 인과 관계를 탐색할 때 다섯 번 반복해서 원인이 무엇인지 질문하는 방식입니다.
  • why는 어떤 일 또는 사람을 의미합니다.
  • 대부분의 경우, IT분야에서 장애는 재발합니다.
  • 많은 경우, 개발자 사이의 커뮤니케이션 오류가 바로 핵심 원인입니다.

상사를 고려하는 비즈니스 관점의 글쓰기#

  • 장애 보고서를 비즈니스 관점으로 쓴다는 것은 매출과 비용 관점으로 설명한다는 것입니다.
  • 개발자 관점은 결제 기능이 작동하지 않은 것이지만, 비즈니스 관점은 기대 매출의 손실이 발생한 것입니다.
  • 즉, 장애로 인한 손실을 계산하는 것이 곧 비즈니스 관점으로 장애를 보고하는 방법입니다.

원하는 것을 얻는 정치적 글쓰기#

  • 상사는 모호한 표현을 싫어합니다.
  • 따라서, 이를 퍼센트로 정확하게 말하고 향후 예산 등을 받아내는 방법이 필요합니다.
장애 재발 가능성표현
1%절대 재발하지 않는다
10%재발하지 않는다
20%재발할지도 모른다
30%재발할 수도 있다
40%재발한다고 볼 수도 있다
50%재발할 수 있다
60%재발하지 않는다고 볼 수 없다
70%재발한다고 보여진다
80%재발한다
90%재발할 것이 틀림없다
99%반드시 재발한다
  • 정확한 단어와 문장으로 현상과 사실얼 있는 그대로 표현해야 합니다.
Last updated on