30분이면 고칠 것을 석 달 두지 마라

배포가 끝나고 화면을 훑다가 하나가 눈에 걸린다. 항목을 지우는 버튼에 글자가 확인이라고 적혀 있다. 누르면 지워지는데 글자는 확인이다. 바꾸는 데 10분이면 된다.
그래서 티켓을 연다. 어느 화면인지 적고, 왜 문제인지 적고, 재현 순서를 적고, 글자를 뭐로 바꿀지 적는다. 20분이 지났다. 이제 이 티켓은 백로그로 가서 순위를 받고 누군가의 스프린트에 들어가야 한다.
거기까지 생각하고 창을 닫는다. 다음에 하지. 석 달 뒤에 그 버튼은 그대로 있다.
어려워서 안 고친 게 아니다. 쉬워서 안 고쳤다. 사용성에 영향을 주는데 30분이면 고칠 수 있는 것을 남겨 두지 마라. 정말 급한 일로 가득한 날이 아니면 하루 30분을 그걸 고치는 데 쓴다.
낮게 달린 열매라는 말
이런 일을 영어로 low hanging fruit라고 부른다. 나무에서 손만 뻗으면 닿는 높이에 달린 열매다. 사다리를 가져올 것도 없고 나무를 탈 것도 없다. 그래서 딸지 말지 재 볼 것 없이 그냥 딴다. 이 글에서는 그런 일을 금방 고칠 것이라고 부르겠다.
실무에서는 이 말이 대체로 쉬운 일이라는 뜻으로만 쓰인다. 그런데 비유의 절반은 열매다. 낮게 달렸다는 것은 손이 닿는다는 말이고, 열매라는 것은 따 봐야 먹을 것이 있다는 말이다. 손은 닿는데 아무것도 안 달린 가지도 있다. 그건 낮게 달린 열매가 아니라 그냥 낮은 가지다.
그래서 이 일은 축 하나로는 못 고른다. 드는 품과 사용자가 겪는 차이, 두 축으로 봐야 자리가 나온다.
헷갈리는 자리는 왼쪽 아래 하나뿐이다. 나머지 셋은 실무에서 헷갈릴 일이 없다. 오른쪽 둘은 품이 커서 어차피 일감으로 올라가고, 왼쪽 위는 한 번 보면 안다. 그런데 왼쪽 아래는 품이 적다는 것 하나만으로 왼쪽 위와 같아 보인다. 여기에 하루 30분을 쓰면 제품은 그대로인 채 손만 바쁘고, 본인은 습관을 지켰다고 여긴다. 그래서 이 글이 뒤에서 기준을 넷으로 나눠 적는다. 품만 보고 고르면 반드시 이 칸으로 미끄러진다.
쉬운 것만 안 고쳐진다
고치는 품보다 일감으로 만드는 품이 크면 그 일은 어느 목록에도 안 올라간다.
10분이면 끝나는데 티켓을 쓰는 데 20분이 든다. 게다가 티켓을 쓴다고 고쳐지는 것도 아니다. 순위를 받아야 하고, 누군가의 이번 주에 자리가 나야 한다. 그 전체 비용이 수정 자체보다 크면 아무도 시작을 안 한다. 어려운 문제는 오히려 목록에 남는다. 값이 비싸니까 눈에 띄고, 눈에 띄니까 안건이 된다.
주인이 없다는 것도 겹친다. 사용자가 신고한 것도, 기획에서 나온 것도, 스프린트에 잡힌 것도 아니다. 화면을 훑다가 눈에 걸린 사람만 안다. 그 사람이 안 고치면 아무도 모른 채로 남는다.
그리고 하나하나는 다 사소해서 회의에 올릴 만하지 않다. 버튼 글자 하나를 스프린트 계획 회의에서 꺼내기는 민망하다. 그런데 여기에 함정이 있다. 우리는 이것들을 하나씩 세지만 사용자는 하나씩 겪지 않는다. 글자가 어긋난 버튼과 무슨 일이 났는지 안 알려 주는 오류 메시지와 눌러도 반응이 없는 항목을 한 화면에서 한꺼번에 겪는다. 우리 쪽에서 사소한 것 열 개가 사용자 쪽에서는 조잡한 제품 하나다.
무엇이 금방 고칠 것인가
금방 고칠 것은 사소하다는 뜻이 아니다. 네 가지를 동시에 만족한다는 뜻이다.
30분 안에 끝난다. 되돌리기 쉽다. 데이터가 바뀌지 않고, 다른 코드와 주고받는 약속을 안 건드린다는 뜻이다. 남의 합의가 필요 없다. 그리고 사용자가 실제로 겪는다.
넷째가 앞에서 본 열매다. 이게 없으면 왼쪽 아래로 미끄러져서 그날 눈에 거슬리는 것을 취향대로 다듬는 일이 된다. 간격이 2픽셀 어긋난 것은 아무도 못 느끼지만 삭제 버튼에 확인이라고 적힌 것은 누구나 겪는다. 앞엣것은 넷째를 못 넘으므로 이 30분에 안 넣는다.
이 넷을 다 넘는 것들은 대체로 이런 모양이다. 버튼 글자가 실제로 일어나는 일과 다르다. 오류 메시지가 무슨 일이 났는지 안 알려 준다. 누르는 영역이 손가락보다 작다. 탭 키로 옮겨 다니는 순서가 화면에 보이는 순서와 어긋난다. 아무것도 없는 화면에 아무 안내가 없다. 눌렀는데 아무 반응이 없어서 눌렸는지 알 수 없다. 되돌릴 수 없는 동작인데 확인을 안 묻는다.
하나라도 어긋나면 이 30분에 넣지 않는다. 30분을 넘길 것 같으면 그건 티켓으로 갈 일이고, 티켓 비용을 치를 만한 일이다.
지금 손에 든 일감 하나를 두 축에 놓아 보면 어느 자리인지 바로 나온다.
금방 고칠 것 — 오늘 30분에 넣는다.
한쪽만 밀어서는 왼쪽 위에 못 들어간다는 것이 이 판의 요지다. 품을 아무리 줄여도 영향이 없으면 그냥 낮은 가지고, 영향이 아무리 커도 품이 크면 30분짜리가 아니라 제대로 된 일감이다.
하루 30분, 그 이상은 안 쓴다
시간을 못 박는 것이 이 습관의 전부다.
30분은 상한이자 하한이다. 하한이 없으면 안 한다. 늘 더 급한 것이 있기 때문이다. 상한이 없으면 다듬기가 그날을 다 먹는다. 하나 고치면 그 옆에 하나가 더 보이고, 그렇게 오후가 사라진다. 두 쪽 다 이 습관이 죽는 길이라 시간을 양쪽에서 막아 둔다.
정말 급한 일로 가득한 날은 건너뛴다. 이건 규율이지 의무가 아니다. 매일 지키는 것보다 급한 날에 안 하는 편이 낫다. 급한 날에 버튼 글자를 고치고 있으면 그건 다른 이야기가 되는데, 그 이야기는 아래에서 한다.
그리고 이 습관에는 조건이 하나 붙는다. 디자이너가 코드를 직접 고칠 수 있어야 성립한다는 것이다. 못 고치면 10분짜리 수정이 요청과 설명과 리뷰와 남의 스프린트를 거치는 일주일짜리 일이 된다. 그러면 앞의 기준 가운데 30분과 남의 합의가 동시에 깨지므로, 그건 애초에 금방 고칠 것이 아니었다. 디자이너가 어디까지 손을 대야 하는지는 앞서 쓴 글에 따로 적었다. 여기서는 손을 댈 수 있다는 것을 전제로만 쓴다.
여기서 반박이 들어온다
세 군데서 들어오는데 첫째가 제일 크다.
바로 앞 글에서 Drucker를 인용해 이렇게 적었다. 좋은 1순위 목록을 적어 두고 나머지도 조금씩은 해 보겠다고 덧붙이면, 모두가 만족하고 아무것도 끝나지 않는다. 그런데 하루 30분이 정확히 그 조금씩 아닌가.
가르는 것은 크기가 아니라 끝나느냐다. Drucker가 말한 도망은 큰 일 열두 개를 10%씩 건드려 어느 것도 완성에 못 닿는 것이다. 금방 고칠 것은 그 30분 안에 끝난다. 시작한 것이 그날 배포까지 간다. 그리고 이 30분은 1순위와 겨루는 몫이 아니라 따로 떼어 둔 몫이라 순위표를 흔들지 않는다. 앞 글이 경고한 것은 순위표를 매겨 놓고 그 순위를 안 지키는 것이었지, 순위 바깥에 작은 몫을 따로 두는 것이 아니었다.
둘째, 다듬기는 도망이 되기 쉽다. 어려운 일이 앞에 있을 때 눈에 보이는 작은 것을 고치면 일한 기분이 든다. 30분 상한과 급한 날에 건너뛰는 규칙이 그 답이긴 한데, 스스로를 속이기는 쉽다. 그날 30분을 쓰기 전에 오늘 제일 어려운 일이 무엇인지 먼저 답할 수 있어야 한다. 답이 안 나오면 그 30분은 도망이다.
셋째, 이 일은 아무 데도 안 남는다. 티켓이 없으니 기록이 없고, 한 일을 팀이 모른다. 제품만 조용히 나아진다. 이걸 감수할지는 각자 정할 일이고, 감수 못 하겠으면 티켓을 쓰는 게 맞다. 다만 그때는 이 글이 말하는 30분이 아니라 보통의 일감이 된다.
마무리
쉬운 것만 안 고쳐진다. 고치는 품보다 일감으로 만드는 품이 커서 어느 목록에도 안 올라가기 때문이다. 금방 고칠 것은 사소한 것이 아니라 30분 안에 끝나고 되돌리기 쉽고 남의 합의가 필요 없고 사용자가 실제로 겪는 것이다. 하루 30분을 거기 쓰되 그 이상은 안 쓴다.
오늘 할 것은 하나다. 지금 만드는 화면을 열어 30분만 훑고, 기준 넷을 다 넘는 것 하나를 골라 고쳐서 내보낸다.
목록을 만들지 마라. 목록을 만들면 그것도 결국 티켓이 되고, 이 글이 말한 자리로 도로 돌아간다.
이 글, 어떠셨어요?
이 글에 오류가 있나요?
사실이 틀렸거나 오탈자, 깨진 링크를 발견하셨다면 알려주세요. 확인하고 고치겠습니다.