Google의 Gmail, Calendar나 Atlassian의 Confluence서비스를 사용하다보면 사람의 실수를 인정하는 시스템에 대해 경험을 하게 된다.
가령 일정을 삭제했을 때 구글 캘린더는 아래와 같은 살짝 뜨는 UI를 보여준다.
구성 요소는 세 가지로 이루어져 있다.
- Input1: "일정이 삭제되었습니다." (현재 문맥에 대한 설명
- Action1: 실행취소 (롤백에 대한 액션)
- Action2: 무시하기 (닫기 버튼) ×
Confluence 에서도 comment를 해결(resolve)을 해서 사라지게 했을 경우 아래와 같은 화면이 잠시 보여진다.
구글 캘리더와 마찬가지로 "댓글 해결됨 실행 취소"와 같은 수행한 액션에 대해 롤백 기능을 제공한다.
2020년 12월 1일 백오피스에 대해 개선을 위한 회의가 있었다. 후기를 관리하는 상담사들이 이용하는 백오피스였다.
어떤 숙소의 소유권이 제3자에게 넘어갔을 경우 인수자가 해당 숙소의 후기 정보를 초기화하는 기능이 있었다.
당시 후기 목록을 일일이 클릭을 해서 삭제 버튼을 눌러서 초기화를 했는데 후기가 많은 경우 여러 페이지에 걸쳐서 수행을 해야 해서 상담사이 사용하는 시간이 오래걸렸다.
개선방법은 숙소 번호(placeNo)를 입력받아 대량으로 삭제를 하는 것이 백오피스의 기능 핵심이었다.
문제는 해당 개선은 대량의 게시글을 지우는 것이라 사용자의 실수가 많은 데이터에게 영향을 준다는 것이었다.
그래서 나는 위의 구글 캘린더나 컨플루언스 사례처럼 실수를 할 경우 롤백을 하는 기능을 제공하는 것이 어떨까 제안했다.
그런데 제품을 담당하고 있던 PO(Product Owner)는 이렇게 답변했다.
"사용자의 실수는 일차적으로 사용자에게 책임이 있다. 만약 롤백의 기능을 백오피스가 제공하면 상담사가 경각심을 갖지 않고 쓸 것이다. 따라서 (실수가 나면) 일부러 혼도 나봐야 오랫동안 느낄 것이다."
PO는 롤백 기능이 사용자가 부주의하게 사용할 수 있는 기회를 제공할 것이라고 생각한 것 같다.
하지만 나는 시스템이 사용자를 안심하고 쓸 수 있게 해야 한다고 생각하는 사람으로서 해당 의견에 공감을 할 수 없었다.
2년이 넘은 지금 직장의 백오피스라면 행복하게 일하기 위해서는 이런 안전망 기능이 있어야 한다고 생각한다.
결국 롤백에 대한 직접적인 기능을 사용자에게 제공을 하지는 못했다. 하지만 혹시라도 롤백에 대한 요구사항이 있을 경우 고통을 받는 사람은 개발이 될 것으로 생각해서 작업(task) 기반으로 동작하도록 구현을 했다.
그래서 숙소 정보(placNo)와 수행 날짜를 알면 작업 번호(taskId)를 조회할 수 있고, 해당 작업 번호로 어떤 값이 변경되었는지 조회가 되기 때문에 대상에 대해 롤백이 가능한 것이었다.
다만 작업 기반으로 구현을 하면서 개발 시간을 더 사용을 할 수밖에 없었는데 데이터가 쌓이는 것에 대한 클린징 처리를 못했다는 점이 아쉬웠던 점이다. 하지만 이런 작업이 항상 수행하는 것이 아니라서 작업 로그가 많이 쌓인다고 크게 느려지거나 하지는 않을 것이라 생각한다.
'Career' 카테고리의 다른 글
[WIL] Laravel 업데이트 (0) | 2024.11.26 |
---|---|
Google 본인 인증 (0) | 2021.11.03 |
Chrome Web Store에서의 Email Verification (0) | 2021.10.30 |
Garmin 시계가 알려주는 nullable (0) | 2021.05.04 |
[cafe] 무의미한 설득과 논쟁 (0) | 2020.05.19 |