한 달이면 만들 수 있을 것 같다는 착각
클라이언트가 말합니다. "이거 기획이 필요 없을 정도로 간단해요. 한 달이면 충분하죠?"
AI도 한 달 만에 만들 수 있을 것처럼 이야기합니다. 입력창에 질문을 입력하면 답이 나오는 단순한 구조라고 ChatGPT를 생각하는 착각입니다.
조금 아는 것의 위험
전혀 모르는 사람은 예상조차 하지 않습니다. 반대로 많이 아는 사람은 복잡성을 압니다. 문제는 중간에 있습니다. 조금 아는 사람은 전체를 본 것처럼 착각합니다.
"로그인 기능만 넣으면 되잖아요." 이렇게 말하는 순간, 보안 처리는, 비밀번호 찾기는, 소셜 로그인 연동은, 세션 관리는 어디로 갔을까요. 보이는 화면 하나 뒤에는 보이지 않는 수십 개의 작업이 있습니다.
YouTube를 보면 동영상이 재생됩니다. 그 뒤에서는 CDN 배포, 인코딩, 썸네일 생성, 추천 알고리즘, 댓글 시스템, 광고 플랫폼이 돌아갑니다. 화면은 단순해 보여도 시스템은 복잡합니다.
상상 속 속도와 실제 속도
머릿속에서는 모든 것이 순조롭습니다. 개발자가 앉아서 코드를 치면 기능이 완성됩니다. 하지만 실제로는 요구사항 정리, 설계, 개발, 테스트, 수정, 재테스트가 반복됩니다.
"이 화면 하나 추가하는 데 왜 일주일이나 걸려요?" 화면은 하나지만 데이터베이스 구조 변경, API 수정, 기존 기능과의 충돌 검토, 다양한 기기에서의 테스트가 필요합니다.
상상 속에서는 직선으로 달립니다. 현실에서는 장애물을 피하고, 멈췄다가, 다시 방향을 잡으며 갑니다.
피로도를 계산하지 않는 일정
하루 8시간씩 20일 일하면 160시간입니다. 계산상으로는 맞습니다. 그런데 사람은 160시간 내내 같은 속도로 일하지 못합니다.
집중력은 떨어집니다. 예상치 못한 버그가 나타납니다. 라이브러리가 충돌합니다. 클라이언트의 추가 요청이 들어옵니다. 계획했던 방식이 작동하지 않아 다시 설계합니다.
최대치로 달리면 무너집니다. 2주 동안 야근하고 주말에 일하면 3주 차에는 생산성이 반으로 떨어집니다. 4주 차에는 실수가 늘어납니다. 서두르다가 놓친 버그는 나중에 더 큰 시간을 잡아먹습니다.
간단해 보이는 것의 함정
"이 정도면 기획 없이도 만들 수 있어요"라는 말은 위험합니다. 간단해 보이는 서비스일수록 디테일이 성패를 가릅니다.
로그인 버튼 하나도 질문이 생깁니다. 로그인 실패 시 어떻게 할까요. 비밀번호를 3번 틀리면 어떻게 할까요. 계정이 없으면 어디로 안내할까요. 로그인 후 어느 화면으로 갈까요.
간단한 게시판도 마찬가지입니다. 글 작성, 수정, 삭제는 기본입니다. 그런데 이미지 첨부는요. 동영상은요. 댓글은요. 신고 기능은요. 관리자 권한은요. 질문은 끝이 없습니다.
예상이 빗나가는 순간
한 달 일정으로 시작한 프로젝트가 두 달째 접어듭니다. 클라이언트는 답답합니다. "왜 이렇게 오래 걸려요?" 개발자도 답답합니다. "처음 말씀하신 거랑 다른데요."
초기 예상은 빗나갑니다. 조금 아는 상태에서 세운 계획은 현실과 부딪힙니다. 사람의 속도를 고려하지 않은 일정은 모두를 지치게 합니다.
속도와 피로도를 계산하지 않으면 일정은 무너집니다. 조금 안다는 자신감이 프로젝트를 망치는 가장 빠른 길입니다.