01 체인지 로그를 분류, 요약, 종합하는 법
체인지 로그의 양과 만족도의 관계
간단히 쓰면 한 일이 없어 보이고 자세히 쓰면 아무도 읽지 않아 쓸모가 없다.
애플리케이션의 새 버전을 릴리스할 때 변경사항에 다음과 같이 썼다면?
‘사소한 오류 수정’
일을 열심히 하고도 체인지 로그를 제대로 작성하지 않으면 인정도 못 받고 보람도 없다.
그렇다면 일주일 동안 한 일을 모두 다 적으면?
‘고해상도 폰에서 아이콘이 찌그러지는 오류를 수정했습니다.’
‘가로/세로 화면 전환 시 하단 메뉴가 사라지는 오류를 수정했습니다.’
‘애니메이션 스티커가 갑자기 멈추는 오류를 수정했습니다.’
….
잘못하다간 버그 많은 걸 자랑하는 꼴이 되어버린다.
체인지 로그를 잘 작성하려면 밑의 순서를 기억하자.
- 선정하기
- 분류하기
- 요약하기
- 종합하기
1단계: 선정하기
개발자는 보통 자기가 오랜 시간 들여 노력한 것을 쓰고, 그렇지 않은 것은 빼는 경향이 있다.
하지만 체인지 로그를 보는 독자와 기업의 입장은 다를 것이다.
다음 표와 같이 8가지 경우로 분류해 체인지 로그를 선정하고 순위, 수준을 결정할 수도 있다.
2단계: 분류하기
이제 비슷한 체인지 로그끼리 묶어야 한다.
크게 두 가지 방법이 존재한다. 개발 관점에서 비슷한 작업으로 묶기와 사용자 관점에서 비슷한 것끼리 묶는 방법이다.
1) 개발 관점에서 비슷한 작업으로 묶기
독자가 개발자인 경우 유용하며, 보통 소프트웨어 릴리스 문서에서 사용하는 새로운 기능 추가, 기능 개선, 오류 수정으로 묶을 수 있다.
1. 새로운 기능 추가
- 닉네임을 만들 때 특수 문자를 입력하는 기능을 추가했습니다.
- 빈 게임방을 자동으로 검색하는 기능을 추가했습니다.
2. 기능 개선
- 최근 기록이 상위에 올라오도록 개선했습니다.
...
2) 사용자 관점에서 비슷한 것끼리 묶기
독자가 일반 사용자인 경우에 유용하다.
1. 게임 준비
- 미리 보기에서 간혹 리부팅되는 문제를 해결했습니다.
- 빈 게임방을 자동으로 검색하는 기능을 추가했습니다.
2. 게임 중
- 고해상도 폰에서 아이콘이 찌그러지는 오류를 수정했습니다.
3. 게임 종료
- 최근 기록이 상위에 올라오도록 개선했습니다.
3단계: 요약하기
분류를 했다면 이제 문장 단위로 요약할 차례다. 서술식 문장을 개조식 문장으로 바꾸면 내용이 자연스럽게 축약되고 의미는 더 분명해진다.
불필요한 부사나 형용사, 조사, 어미를 없애고, 정확하고 적절한 단어로 대체하자
1. 게임 준비
- 미리 보기 리부팅 문제 해결
- 빈 게임방 자동 검색 기능 추가
2. 게임 중
- 고해상도 폰에서 아이콘 찌그러지는 오류 수정
3. 게임 종료
- 최근 기록이 상위에 올라오도록 개선
4단계: 종합하기
체인지 로그를 하나씩 뜯어보기 전에 이번 릴리스가 이전과 비교해서 뭐가 다르고 핵심과 컨셉이 무엇인지
한마디로 알려줘야 한다. 내용 전체를 종합해서 한 문장으로 만들고 그것을 첫 줄에 적어야 한다.
1. 게임 준비
- 미리 보기 리부팅 문제 해결 -> 게임 준비 시간 절감
2. 게임 중
- 고해상도 폰에서 아이콘이 찌그러지는 오류 수정 -> 정확한 사용
3. 게임 종료
- 최근 기록이 상위에 올라오도록 개선 -> 게임 결과를 더 쉽게 확인
이렇게 ‘시간 절감’, ‘다양한 닉네임’, ‘정확한 사용’과 같은 특성과 결과를 정리해 한 문장으로 만든다.
게임방에 더 빨리 입장하고 게임 결과를 바로 확인할 수 있도록 다음과 같이 변경했습니다.
[세부 내용]
...
종합 문장을 개조식으로 바꾸고, 내용이 두 가지 이상이면 줄을 나누자.
그리고 이 두 내용을 분석해 사용성, 안정성, 편리성 같은 추상적 상위 개념을 만들자.
사용자 편리성 개선
- 게임방에 더 빨리 입장
- 게임 결과 바로 확인
02 고객에게 유용한 정보를 쓰자
개발자 관점과 고객 관점
댓글에서 애니메이션 스티커 때문에 화면이 멈추는 문제를 해결했습니다.
상위의 사항은 고객의 불편이 아니다.
고객의 불편은 화면이 멈춰서 애니메이션 스티커를 포함한 댓글을 쓸 수 없다는 것이다.
- 개발자의 문제: 화면이 멈춘 것
- 고객의 문제: 애니메이션 스티커를 댓글에 사용할 수 없는 것
댓글에서 애니메이션 스티커 때문에 화면이 멈추는 문제를 해결했습니다.
이제 애니메이션 스티커를 정상적으로 댓글에 사용할 수 있습니다.
고객의 문제 해결을 앞쪽으로 옮기자.
이제 애니메이션 스티커를 정상적으로 사용할 수 있습니다. 댓글에서 애니메이션 스티커 때문에 화면이 멈추는 문제를 해결했습니다.
이제 개발자의 문제는 짧게 줄이고, 개조식으로 바꾸자.
애니메이션 스티커를 댓글에 정상 사용 가능(화면 멈춤 문제 해결)
개선사항에 대해선 고객이 얻는 혜택이 무엇인지 분명히 얘기해줘야 한다.
확인/취소 버튼 및 서로이웃 맺기 ui를 개선했습니다.
→ 확인/취소 버튼이 커져서 찾기가 더 쉬워졌습니다.
변경사항
채팅 답장 기능이 추가되었어요!
상대방 메시지를 꾹 눌러 답장쓰기를 해보세요.
밴드의 일정 참석 요청을 놓치지 않으려면,
가입 밴드의 일정 푸시알림을
[참석확인과 미리알림 받기]로 설정해보세요.
기능 추가만 얘기하는 것이 아닌, 사용법과 행동을 유도한다.
참석확인과 미리알림 받기 기능을 추가하면서 고객의 문제 (일정 참석 요청 놓치는 것)를 먼저 얘기하고
해결책(가입밴드의 일정 푸시알림 - 설정)을 제시한다.
이 외에도, 멜론의 변경사항처럼
첫 번째 체인지 로그는 일반 사용자 관점으로 쓰고, 두 번째 체인지 로그는 개발자 관점으로, 세 번째 체인지 로그는 그다지 중요하지 않은 것을 묶어서 기타로 처리해도 괜찮다.
과거를 리뷰하고 미래를 보여주자
고객의 입장에서 고객이 요구하거나 불평한 것이 이번 릴리스에 다 반영되지 않으면 다음 릴리스를 기다릴 수 밖에 없다. 그래서 다소 귀찮기는 하지만 다음 릴리스 항목으로 검토하는 것이 있다면 중요한 것은 공개하는 게 좋다.
[주요 개선 항목]
- 지도 축소 상태에서 도로 굵기 개선, 지역 명칭 컬러 개선
- 지하철 예정 노선 컬러 개선
..
[검토 중인 항목]
- 건물 가독성 개선 검토
- 심볼 상세화 검토
..
Semantic Versioning(유의적 버전)
1.0.0
- 세 번째 자리는 간단한 패치를 의미한다. 그래서 이전 버전과 호환된다.
- 두 번째 자리에서 버전을 올리면 그 다음 세 번째 자리는 0으로 초기화된다. 새로운 기능을 추가했을 때다. 1.3.0은 1.2.x와 일부 호환 가능하지만 새로운 기능을 1.2.x에서 사용할 수 없다.
- 첫 번째 자리에서 버전을 올리면 전면적인 업그레이드여서 이전 버전과는 거의 호환되지 않는다고 볼 수 있다.
03 릴리스 문서는 문제 해결 보고서처럼 쓰자
문제, 문제점, 해결책, 후속 계획 순으로 적자
- 문제: 사용자가 급증하면 서버가 정지
- 문제점: 잘못된 시스템 설정, 프로그램 비 최적화, 잘못된 DB설계
- 해결책: 시스템 설정 변경
- 후속 계획: 프로그램 최적화, DB 재설계
릴리스 노트에 다음과 같이 서술 가능
(문제) OO 서비스에 사용자가 급증하면 OO 서버가 정지하는 문제가 있었습니다.
(문제점) 우리가 파악한 문제점은 잘못된 시스템 설정, ... 이었습니다.
(해결책) 그중에서 시스템 재설정으로 .. 문제를 해결했습니다.
(후속 계획) 보다 안정적인 서비스를 위해 .. 검토하겠습니다.
내용이 길면 짧게 요약 가능
OOO 서비스에 사용자가 급증하면 OO 서버가 정지하는 문제는 시스템 재설정으로 해결했습니다.
추후 프로그램 최적화와 DB 재설계도 검토하겠습니다.
04 비즈니스를 이해하는 장애 보고서 쓰기
질문에 대답하는 신속한 글쓰기
글을 빨리 쓰는 방법 중에 대화를 글로 옮기는 방법이 있다.
사용자가(주어) 결제를(목적어) 할 수 없다(서술어).
이 문장에 동료가 같이 질문 한다고 생각하고 말로 대답하듯 쓰자.
그 후에 개조식으로 간단히 정리한다.
이제 항목과 내용을 서식에 맞춰 쓰면 장애 보고서가 완성된다.
장애 보고서
제목: 서버 모듈 변경 문제로 사용자 결제 불가(10~11시)
Ref.
개발자의 글쓰기 - 김철수
'Etc.' 카테고리의 다른 글
혼자하는 <모던 자바스크립트 딥 다이브> 스터디 #프롤로그 (0) | 2023.04.15 |
---|---|
개발자의 글쓰기 7장 - 기술 블로그 쉽게 쓰고 운영하기 (0) | 2023.01.15 |
개발자의 글쓰기 3장 - 사용자와 소통하는 에러 메시지 쓰기 (0) | 2023.01.15 |
개발자의 글쓰기 2장 - 개발 시간을 줄여주는 이름 짓기와 주석 쓰기 (0) | 2023.01.15 |
개발자의 글쓰기 1장 - 개발자가 알아야 할 글쓰기 기본 (0) | 2023.01.15 |