"합시다. 스크럼."
소설 전문이 출판사 홈페이지에 공개되자 홈페이지가 다운되는 등 온라인에서 큰 화제가 되었던 장류진 작가의 단편소설 ‘일의 기쁨과 슬픔’은 이렇게 시작합니다.
스크럼은 스타트업에서 많이 활용하고 있는 개발 방법론입니다. 큰 목표(서비스 개발)를 이루기 위해 작은 단위로 할 일을 쪼개고, 일을 완료하는 데 필요한 시간을 고려해서 우선순위를 정합니다. 그리고 1-4주 정도의 짧은 주기마다 정해둔 일을 처리합니다. 계획한 모든 일을 완료하는 주기를 ‘스프린트’라고 하는데 이 스프린트는 반복됩니다. 그동안 끊임없이 프로그램을 개선하고 수정하죠.
기술연구팀은 전문 개발자 집단은 아니지만 책이나 인터넷, 지인을 통해 알게된 애자일(Agile) 방법론을 활용해 합정 프로젝트를 진행하고 있습니다. IT 업계에서 많이 활용하는 방식인 만큼 이를 지원해주는 도구도 있는데 저희는 Atlassian의 Jira라는 소프트웨어를 사용하고 있습니다.
위의 화면처럼 생긴 것을 칸반(kanban)이라고 부르는데 칸반은 일본어로 간판이라는 뜻이라고 합니다. 칸반은 보통 3-5개 정도의 영역으로 나뉘는데 저희는 할 일, 진행 중, 코드 리뷰, 완료 이렇게 4가지로 구분했습니다. 스크럼 회의에서 할 일과 담당을 정하면 진행 중으로 카드를 옮기고, 코드 작성이 완료되면 코드 리뷰 단계로 넘기고 내가 짠 코드를 다른 팀원들과 함께 살펴봅니다. 코드 리뷰까지 완료되어야 비로소 일이 끝납니다.
저희는 한 달에 한 번 인디스쿨 공간에서 정기모임을 해서 일반 회사처럼 매일 스크럼 회의를 하지는 못합니다. 대신 온라인 채팅으로 수시로 이야기를 주고받고 할 일을 정하고 있어요. 처음에는 스프린트 기간을 2주로 정해서 그 안에 주어진 일을 모두 처리하려고 했는데 학교 업무와 병행하기가 너무 어려웠습니다. 그래서 지금은 스프린트 방식을 이용하지 않고 개발을 할 수 있는 여유가 있을 때 다음 할 일을 가져와 코드를 짜고 있습니다. 심적 부담이 덜하다는 장점이 있지만 일 처리가 무한정 늘어질 수도 있다는 단점도 있습니다.
코드 리뷰는 코드의 품질을 높이고 구성원 모두가 성장할 수 있는 중요한 단계입니다. 위 그림처럼 코드를 작성하고 리뷰 요청을 하면 팀원 누구나 코드를 보고 의견을 남길 수 있습니다. 코드를 이렇게 작성한 의도는 무엇인지 물어볼 수도 있고, 좀 더 효율적인 코드가 있다면 제안을 할 수도 있죠. 이렇게 같이 리뷰하고 합의해서 코드를 작성하면 다른 사람은 어떻게 코드를 작성하는지 살펴볼 수 있고 그 과정에서 새로운 것들을 많이 배우게 됩니다. 마치 글쓰기 연습 할 때 다양한 친구의 글을 읽어보면 도움이 되는 것처럼요.
사람은 언제나 실수를 해서 프로그램에는 버그가 존재합니다. 보통 회사에서는 이렇게 버그가 발생하면 원인이 되는 코드를 작성한 사람을 찾아내고 때로는 그 사람을 비난하기도 합니다. 하지만 코드 리뷰를 하게 되면 누가 잘못을 했는지를 찾기보다 왜 문제가 발생했고 어떻게 문제를 해결할 수 있는지에 더 집중하게 됩니다. 함께 코드를 리뷰했기 때문에 코드를 작성한 사람과 리뷰한 사람 모두에게 책임이 있기 때문이죠.
기술연구팀에서 이렇게 일을 하다 보니 실제 회사에서는 ‘창의성, 비판적 사고력, 의사소통 능력, 협업 능력과 같은 미래 학습자 역량이 정말 중요하겠구나.’ 생각하게 됩니다. ‘학교에서는 어떻게 교수 학습을 설계해야 아이들이 이런 경험을 더 많이 할 수 있을까?’하고 고민도 하게 되고요.
11월에는 게시물과 댓글의 표시/작성/수정/삭제 기능을 구현하겠다고 말씀드렸는데 모두 개발하지는 못했고 그 중 게시물 관련 기능을 완료했습니다. 파일 첨부 기능이 인디스쿨에는 중요하기 때문에 여기에 많은 시간을 투자하느라 다른 작업이 좀 늦어졌습니다.
벌써 12월이 되었네요. 매월 글을 쓰겠다 다짐해놓고 바로 다음 호도 마감을 지키지 못했다는 자괴감과 함께 ‘그냥 11월-12월 호를 합쳐서 낼까?’, ‘이 기회에 그냥 계간지로 슬쩍 이름을 바꿔버릴까?’ 하는 꼼수도 떠올려 보았지만 조금 더 부지런히 움직여보려고 합니다. 앞으로도 기술연구팀의 ‘읽고 짜는 삶’ 응원해 주세요.