정산 시즌마다 엑셀을 거꾸로 채웠습니다
공공 용역을 하면 사업이 끝날 때 투입 인력 명세를 냅니다. 누가 몇 월에 몇 M/M 들어갔는지. 저희는 그걸 끝나고 나서 기억으로 채웠습니다. 근태에는 몇 시에 왔다 갔는지가 있고, 프로젝트방에는 무슨 일을 했는지가 있는데, 둘이 연결돼 있지 않아서요. 열세 명짜리 회사도 사업이 동시에 서너 개면 그 표는 늘 거꾸로 채워집니다.
그래서 베일리온에 투입 공수 기록을 넣었습니다. 만들기 전에 저희 회사 두 달치 기록부터 재 봤습니다.
하루 한 줄 모델은 틀렸습니다
처음 설계는 "하루에 프로젝트 하나"였습니다. 사람·날짜 한 줄에 프로젝트를 고르는 모델. 단순하고 입력도 빠릅니다.
실제 기록은 달랐습니다. 두 달 동안 사람이 활동한 날 644건 중 316건(49.1%)이 두 개 이상의 프로젝트방에서 활동한 날이었습니다. 하루 최대는 11개. 분포는 1개 50.9%, 2개 27.0%, 3개 10.1%, 4개 이상 12.0%였습니다.
그래서 모델을 바꿨습니다. 하루에 프로젝트마다 한 줄, 단위는 시간. 같은 날 세 프로젝트를 만졌으면 세 줄입니다. 저장소에는 "같은 사람·같은 날·같은 프로젝트는 한 줄"이라는 제약만 걸었습니다. 프로젝트에 속하지 않는 간접 업무(회의·교육·영업)도 한 줄로 들어갑니다.
- 하루 합계는 근태 시간을 기본값으로 제안만 합니다. 초과 입력은 막지 않고 경고만 띄웁니다. 야근과 재택은 근태와 어긋나기 마련이고, 막으면 거짓 입력을 유도합니다. 24시간만 저장소가 거부합니다.
- 입력 자리는 새로 만들지 않았습니다. 업무보고를 쓸 때 "오늘 공수도 함께 기록" 블록에 적습니다. 이미 있는 습관에 붙이는 쪽이 새 화면보다 오래갑니다.
고백 하나. 이 블록은 처음 배포에서 빠져 있었습니다. 표와 API 는 있는데 적을 자리가 없어서 운영 공수가 0건이었고, 대표가 "왜 아무도 안 적느냐"고 물어서 드러났습니다.
1 M/M 은 며칠인가
가장 오래 다툰 결정입니다. 영업일로 나누면 2월과 5월의 1 M/M 이 다르고, 공휴일 동기화가 끊기면 숫자가 흔들립니다.
결론은 업계 공표값에 맞추는 것이었습니다. 한국소프트웨어산업협회가 매년 내는 「SW기술자 평균임금 공표」가 일평균을 월평균 ÷ 20.6일, 시간평균을 일평균 ÷ 8시간으로 산정합니다. 발주처 정산 서식이 대사하는 쪽이 이 값입니다. 그래서 기본값을 20.6일 × 8시간 = 164.8시간 = 1 M/M 으로 두고, 출력물마다 환산식을 명기합니다.
공휴일은 따로 빼지 않습니다. 공표값이 이미 휴일과 법정공휴일을 뺀 근무일 평균이라, 또 빼면 두 번 빼는 것입니다. 공표는 해마다 바뀌니 상수로 박지 않고 워크스페이스 설정에 둡니다.
누가 무엇을 보나
- 본인은 자기 기록 전체.
- 프로젝트방 구성원은 그 프로젝트의 집계만. 다른 프로젝트에 누가 몇 시간 들어갔는지는 보이지 않습니다.
- 관리자는 전사 집계.
- 게스트(발주처 등 외부 인원)는 공수 화면 자체가 없습니다.
미입력 알림은 월요일 한 번 "지난주 미입력 N일"만 보냅니다. 매일 보내면 무시당하고, 무시당하는 알림은 진짜 신호까지 묻습니다.
월 마감이 있습니다. 관리자가 닫으면 그 달의 입력과 정정이 잠기고, 다시 여는 것도 관리자만 됩니다. 정산에 낸 숫자가 나중에 바뀌면 그게 더 큰 문제라서요.
출력
PDF·XLSX·CSV 세 형식이 같은 계산에서 나옵니다. 프로젝트별·사람별·월별 합계와 M/M 환산, 환산식, 출력 시각이 함께 찍힙니다. 발주처가 요구하는 서식은 사업마다 다르니 저희는 서식을 만들지 않고 XLSX 로 드립니다. 거기서 옮기시는 게 빠릅니다.
정직하게
- 금액은 없습니다. 단가와 인건비는 회계 쪽 일이라 공수(시간·M/M)까지만 합니다.
- 발주처 제출 서식은 없습니다. 위에 적은 이유입니다.
- 프리미엄 요금제 기능입니다. 무료 요금제는 입력만 잠기고, 이미 적은 기록의 열람과 출력은 됩니다. 적은 것을 못 보게 하는 건 압류라서요.
- 프로젝트방을 닫아도 공수 행은 남습니다. 정산 증빙이기 때문입니다.
써 보시려면
90일 무료 링크로 시작하시고, 업무보고 쓸 때 공수 블록에 오늘 시간을 나눠 적어 보세요. 월말에 표를 거꾸로 채우는 일이 없어집니다.
— (주)디엑시트 대표 장성민
