3월은 통째로 알파 테스트였다
신기능 개발도 했지만, 체감상 3월의 대부분은 고치는 데 썼다.
직원들이 조금씩 적응해 가고, 행정적인 흐름도 바뀌고 있었다. 엑셀로 하던 걸 시스템에서 하기 시작하니 질문이 올라오고, 질문이 올라오면 고칠 게 보이고, 고치면 또 다른 게 보이고.
이게 끝이 없다.
재고관리가 제일 어려웠다
여러 모듈 중에서 가장 고전한 건 재고관리였다.
"우리 병원에서 하는 것만 하자. MVP니까." 내가 한 말이다.
근데 문제가 있었다. 나도 직원들이 재고를 어떻게 관리해 왔는지 정확히 몰랐다.
나는 원장이지 창고 관리자가 아니다. 약품이 언제 들어오고, 어디에 쌓이고, 누가 세고, 언제 세는지. 큰 그림은 알지만 디테일은 몰랐다.
6편에서 "도메인 전문가라서 행정을 안다고 생각했지만, 실제로 행정을 하는 사람은 내가 아니었다"고 썼는데, 재고관리에서 그게 가장 심하게 터졌다.
편했던 건 편했던 이유가 있었다
거꾸로 보면, 직원들이 너무 편하게 해왔던 것도 있었다.
수량을 대충 세거나, 실사를 나중에 하거나, 기록을 안 남기거나. 그동안은 그래도 돌아갔다. 소규모 의원이니까, 기억으로 어느 정도 커버가 됐으니까.
그런데 시스템을 만든다는 건 그 "대충"을 "정확하게"로 바꾸는 일이다. 직원 입장에서는 일이 늘어나는 거다. 당연히 저항이 생긴다.
시스템적으로 얽매여야 할 부분이 있다는 걸 만들면서 알게 됐다. 편했던 건 관리를 안 해서 편했던 거지, 잘 돌아가서 편했던 게 아니었다.
테스트가 안 되는 모듈
재고관리는 테스트하기도 어려웠다.
재고 실사를 매일 하는 게 아니다. 주 1회, 길면 2주에 한 번. 그 사이에 코드를 고쳐도 확인할 수 있는 건 다음 실사 때다.
로직을 바꿨는데 맞는지 틀린지 2주를 기다려야 안다. UI를 바꿨는데 직원이 쓰는 걸 보려면 또 2주를 기다려야 한다.
다른 모듈 — 연차 관리, 물품 요청 같은 건 매일 쓰니까 피드백이 바로 온다. 재고관리는 그게 안 됐다. 고치고, 기다리고, 확인하고, 또 고치고. 속도가 안 나는 게 당연했다.
개발자의 함정
그리고 나도 함정에 빠졌다.
내가 편할 거라고 생각하고 만든 기능들이 있었다. "이거 있으면 좋겠다" 싶어서 넣은 것들.
실제로 돌려보니 세 가지로 나뉘었다.
안 쓰는 것. 만들어놨는데 아무도 안 누른다. 나도 안 누른다. 그냥 거기 있을 뿐이다.
오버 테크놀로지. 기능은 되는데, 그 기능을 쓰려면 사전 조건이 너무 많다. 데이터를 먼저 채워야 하고, 설정을 해야 하고, 이해를 해야 한다. 10명짜리 의원에서 그걸 누가 하나.
병목. 이게 제일 아팠다. 효율을 높이려고 만든 기능이 오히려 일의 흐름을 막고 있었다. 승인 단계를 추가했더니 승인 대기가 쌓이고, 자동 분류를 넣었더니 분류가 안 맞아서 수동으로 다시 하고.
좋은 의도로 만든 기능이 현장에서는 짐이 되는 경우가 생각보다 많았다.
깎여야 쓸 수 있다
이런 것들을 하나하나 고쳤다. 안 쓰는 건 빼고, 과한 건 줄이고, 막히는 건 풀고.
신기능 추가보다 기존 기능을 빼거나 줄이는 커밋이 더 많은 달이었다.
그런데 이상한 건, 기능이 줄어들수록 프로그램이 더 쓸 만해졌다는 거다.
조각상 깎듯이. 붙이는 게 아니라 깎아내야 형태가 나온다. 3월은 그런 달이었다.
만들기는 혼자 할 수 있는데, 깎기는 현장을 봐야 한다. 6편에서 "옆에서 지켜보는 시간이 더 중요해졌다"고 했는데, 7편에서는 그걸 몸으로 배운 셈이다.
다음 편에서 계속.