Review: 소프트웨어 개발의 지혜 - 3장_계획 세우기

백근영·2020년 3월 25일
0
post-thumbnail

이번 장에서는 XP에서 일을 계획하는 방식에 대해 자세히 다룬다.

초기 탐구

프로젝트 초기에 개발자 팀은 사용자 스토리를 추정하기 위해 고객과 함께 일해야 한다. 이 단계에서의 추정은 절대적이 아닌 상대적으로 이루어져야 한다. 사용자 스토리의 상대적인 비용을 표현하기 위해서 '스토리 포인트'를 기록한다. 예를 들어 우리는 8개의 포인트를 가진 사용자 스토리가 절대적으로 얼마만큼의 비용이 들지는 모르지만, 4개의 포인트를 가진 사용자 스토리에 비해 2배의 비용이 들 것이라고 생각할 수는 있다.

스파이크, 분할, 속도

너무 큰 스토리는 과소평가하기 쉽고, 너무 작은 스토리는 과대평가하기 쉽다. 그러므로 사용자 스토리에 포인트를 세우기 전에 그 스토리의 크기가 적절한 지 생각해보아야 한다.

어쨋거나 스토리 포인트를 수단으로 한 상대적인 추정은 절대적인 비용을 알려주지 못한다. 그래서 우리는 속도라는 요소를 필요로 한다. 우리는 프로젝트 초기에 포인트 하나를 완료하는 데에 얼만큼의 시간이 걸리는 지 시행착오를 거쳐 알아낼 필요가 있다. 따라서 처음에는 최선의 결과를 낳을 것으로 생각되는 모든 것을 이용해 첫 번째 추측을 해야 한다. 이러한 초기 견본 조사 단계를 '스파이크'라고 한다.

릴리즈, 반복, 태스트 계획 세우기

릴리즈는 반복의 집합으로, 반복은 태스크의 집합으로 이루어져 있다. XP 팀은 릴리즈를 반복해 나가면서 하나의 릴리즈에 몇 개의 반복이 있으면 적당한 지, 또 하나의 반복에 몇 개의 태스크가 있어야 적당한 지를 알아갈 것이다.

반환점

반복이 반쯤 진행되었을 때 팀은 미팅에 참여해 진행 상황을 확인한다. 이 때 정상적인 경우라면 반 정도의 태스크, 반 정도의 스토리 포인트, 반 정도의 사용자 스토리가 완성되어 있어야 한다. 태스크는 90프로를 완료했는데 스토리 포인트는 하나도 완료가 되어있지 않은 경우는 최악이다. 이런 경우 개발 팀은 이 미팅에서 책임을 재분배하여 반복이 끝날 때 까지 모든 스토리를 완료시켜야 한다.

profile
서울대학교 컴퓨터공학부 github.com/BaekGeunYoung

0개의 댓글