XP에서의 계획수립 by 황순삼

XP에서의 계획수립은 장보기에 비유된다. 10만원을 들고 마트에 간다. 상품의 가격표를 보면서 구입할 물품을 카트에 넣게 된다. 간혹 필요하지 않으면서도 충동적으로 마트에 넣게 되고 혹은 꼭 필요한데도 예산이 부족할 수도 있다. 최종적으로 물건을 계산대에 올려놓고 합계를 넘지 않도록 몇 가지 물건은 다시 제자리로 돌려 놓게 된다. 장보기의 목표는 주어진 예산 한도 내에서 중요하고 꼭 필요한 것을 되도록 많이 사는 것이다. (XP:변화를 포용하라 2판에서 내용 인용)

사용자 스토리들이 장을 볼 상품이고 스토리에 따른 추정치가 상품의 가격이다.

사용자 스트리를 어떤 크기로 설정해야 하는가에 대하여 Minimal Marketable Feature (MMF): 최소상품화 기능이라는 개념을 사용할 수 있다고 한다. MMF는 Mark Denne and Jane Cleland-Huang가 2004년 "Software by Numbers"에서 제시하였으며 고객에게 가치를 줄 수 있는 최소 기능 단위 집합으로 정의하였다. 이는 사용자들이 기능을 사용하는데 그 보다 작으면 상품화가 될 수 없는 수준이라는 의미이다. 대략 2-3일 정도에 개발 할 수 있는 규모의 기능 정도로 생각해 볼 수 있다.

MMF는 사용자 스토리 + 제약 사항 + 승인 기준(Acceptance cirteria)+ 비쥬얼 구성 요소(Visual elements)로 구성할 수 있다.

사용자 스토리는 유즈케이즈와 마찬가지로 사용자 관점에서 기능에 대한 범위를 정의하는데 다음과 같은 형식으로 headline을 정하고 이를 수행하는 시나리오 혹은 스텝을 상세하게 기술한다.
 














작성된 사용자 스토리는 독립적으로 검증될 수 있는지 승인 기준으로 확인하도록 한다. 사용자 승인 테스트 케이스 만든다고 생각하면 된다. 사용자 스토리에 제약사항(Constraints)를 포함시키는 것이 필요한데 제약사항은 비기능적 요구사항으로 기술적, 성능적으로 해당 기능(feature)에 필요한 고려사항을 포함하도록 한다. 비쥬얼 구성요소는 일종의 화면 UI로 상세한 것은 점진적으로 구체화하고 구현에 필요한 화면 구성 요인들을 식별하여 구성해 나간다.

XP에서 계획 수립의 주기는 개발 주기에 따라 이루어지지만 매일 진척 과정에 따라 변화를 반영하고 변경할 수 있다. 모호했던 것들이 확실해지면 그때 구체화하도록 한다.

계획 수립에서 해야 할 일의 목록을 도출하고 유저스토리를 만들고 이를 구현하기 위한 작업을 수립하고 작업 시간을 추정한다. 주어진 개발 시간 내에서 수행 가능한 업무 범위를 결정하는 것이 중요하다. 애자일에서는 타임박스(timebox)를 통하여 반복 개발을 수행하므로 자원과 기간이 고정되고 업무가 변경되는 것이다. 계획 수립 과정은 시간이 걸리더라도 모든 팀원들의 참석하도록 하고 추정 시간을 줄이거나 강요하지 않도록 한다. 아울러 추정에서 작업 완료의 기준이 테스트가 완료된 배치 가능한 제품이라는 것을 모두가 인지하도록 한다. 

추정 시간이 처음에는 크게 빗나갈 수 있지만 몇 번 반복 주기를 거치면서 안정화되기 마련이다. 팀의 경험에 기반하여 추정치의 정확도가 점점 정확해지게 된다.




덧글

댓글 입력 영역