관리자 작업 일정표를 봤는데 항목이 스무 개 남짓이었다. 각 항목의 내용 칸을 정렬해 diff를 떠 보니 서로 상당히 비슷했다.
Table of contents
Open Table of contents
상황 — 내용은 같고 위치만 다른 항목들
diff에 걸린 것은 어느 화면에 붙이는지뿐이었다. 붙이는 대상 자체는 세 종류로 모였다.
그러니까 스무 개의 작업이 아니라 세 종류를 스무 곳에 붙이는 일이었다. 항목 수가 작업량을 그대로 보여 주는 것이 아니었다.
화면이 스무 개인 이유
왜 CodeIgniter 컨트롤러가 스무 개로 나뉘어 있는지도 생각해 봤다. 기능만 보면 몇 개로 합칠 수 있어 보인다.
다만 화면마다 쓰는 부서가 다르면 그것이 나뉘어 있는 이유가 된다. MySQL의 권한 표에서 부서별로 갈리는 항목이기도 하다. 기능이 같다는 것만으로 합칠 수 있다고 판단하면 안 되는 자리였다.
겹치는 부분을 공통으로 뺀다
화면을 합치지 않더라도 붙이는 코드는 공통으로 뺄 수 있다. 세 종류를 CodeIgniter 라이브러리로 한 번씩 만들고 스무 개 컨트롤러가 그것을 부르면 된다.
그러면 나중에 그 기능을 고칠 때 한 곳만 손대면 된다. 스무 곳에 각각 만들면 grep으로 스무 곳을 다시 찾아 고쳐야 하고 그중 몇 개가 빠진다. 일정표에는 스무 줄이지만 실제로 만들 것은 셋이라는 점이 이 정리의 요지였다.
비고 칸에 반복된 말
비고 칸도 diff를 떠 보니 같은 말이 여러 항목에 반복되고 있었다. 확인이 필요하다거나 담당자에게 물어봐야 한다는 문구였다.
이런 항목은 우리가 아무리 일해도 그 확인이 안 오면 시작할 수 없다. 그러니 우리 손에 달린 항목과 남에게 받아야 하는 항목은 성격이 다르다. 일정표에 그 구분이 표시돼 있으면 무엇부터 요청해야 하는지가 바로 나온다.
미결을 그대로 적어 두는 편이 낫다
아직 안 정해진 것이 비고에 그대로 적혀 있는 항목도 몇 개 있었다. 정리해서 감추는 것보다 이렇게 두는 편이 낫다고 봤다.
읽는 사람이 그것을 보고 물어볼 수 있기 때문이다. 감추면 안 정해졌다는 사실 자체를 모른 채로 진행하게 된다. 다만 일정 단위가 전부 하루로 통일돼 있어서 작업 크기의 차이는 안 드러났다.
정리
- 노출 위치가 스무 곳인데
diff를 떠 보면 붙일 것은 세 종류다 - 항목 수가 작업량을 그대로 보여 주지 않는다
- 화면이 나뉜 이유에 담당 부서와
MySQL의 권한 표가 있을 수 있다 - 기능이 같다는 것만으로 합칠 수 있다고 보면 안 된다
- 겹치는 부분을
CodeIgniter라이브러리로 빼면grep으로 다시 찾을 일이 없다 - 남에게 받아야 하는 항목은 우리가 노력해도 안 된다
- 그 구분이 일정표에 표시돼 있어야 한다
- 미결을 그대로 적어 두는 편이 낫다