2016년 7월 25일 월요일

사용자 스토리 워크샵 사례 연구

이번 사례 연구는 솔루션을 개발하는 중견 기업을 대상으로 한다.

A기업은 사용자 스토리 작성을 자체적으로 진행하였으나 회사 내에서도 만족스럽지 못한 결과를 나타냈다. 사용자 스토리 단위로 도출하는 것도 어려웠고 사용자 스토리에서 사용하는 용어 자체도 모호한 말이 많아 이해하기가 어려웠다. 결국, A기업의 경영진은 해외의 애자일 전문 기업에게 요청하여 사용자 스토리 워크샵에 대한 교육을 실시하였다. 교육에서 사용된 프로젝트는 A기업에서 만들고자 하는 솔루션의 일부를 발췌하였고, 영어 사용이 어려워 동시 통역이 가능한 인력을 함께 투입하였다.


사용자 스토리 워크샵의 참여도 향상

[현상]

교육 프로젝트에 참여하는 개발자들은 대부분 영어를 하지 못하는 경우가 많았다. 동시 통역이 가능한 인력이 있었지만 짧은 시간은 많은 커뮤니케이션이 오가는 미팅에서는 동시 통역 시간이 부족했다. 교육 초기에는 많은 사람들의 참여도가 저조했고 교육 분위기는 침체되어 있었기 때문에 본 목적인 사용자 스토리 정의는 불가능해 보였다.

[해결]

강사로 참여한 해외 기업의 애자일 강사는 복잡한 기술 용어나 설명보다는 평상시에 사용하는 간단한 단어로 대화를 유도하였다. 이러한 대화 방식은 개발자들의 참여율을 높일 수 있었고 짧은 미팅 시간에도 많은 대화가 오갈 수 있었다. 또한, 강사는 화이트 보드와 포스트잍에 그림이나 쉬운 단어를 사용해 부족한 대화를 보충하였다.

[결과]

애자일은 구성원들의 참여가 매우 중요한 부분이다. 만약, 강사가 동시 통역을 통해 내용을 전달했다면 딱딱한 원어민 기술 교육과 다를 바 없었을 것이다. 하지만, 강사와 개발자는 충분한 대화를 할 수 있었고, 부족한 부분은 화이트 보드와 포스트잍으로 그림을 그려 보충했다. 여기서 중요한 점은, 강사는 프로젝트에 대한 이해도가 높지 못하기 때문에 개발자나 사용자와 직접적인 대화를 통해 많은 정보를 얻어낼 수 있었고 결국 사용자 스토리까지 도출할 수 있었다. 개발자들은 교육 후에 설명이 아닌 커뮤니케이션이 필요했기 때문에 어렵지 않게 참여할 수 있었다고 말했다.

사용자 스토리 정의

[현상]

A기업의 개발자들은 사용자 스토리를 작성한 경험이 거의 없었기 때문에 사용자 스토리의 각 항목에 어떤 내용을 작성해야 할지 난감해 했다. 강사도 사용자 스토리에 대한 정보가 전혀 없는 상태였기 때문에 사용자 스토리 카드를 작성하는데 어려움을 겪고 있었다.

[해결]

강사는 사용자 스토리 작성을 위해 작성해야 할 항목을 먼저 보여주지 않았다. 강사와 개발자들은 사용자 스토리에 대한 주요 흐름에 대해서만 커뮤니케이션을 진행하였고, 중요 단어나 토픽이 나올 때는 포스트잍에 작성하여 화이트 보드에 붙여 나갔다. 하나의 사용자 스토리에 대한 커뮤니케이션이 끝나자 강사는 붙여 놓은 포스트잍을 개발자들과 함께 다시 정리해 나갔다. 토론해야 할 범위가 포스트잍에 적힌 것들로 줄어들면서 개발자들은 토론에 참여하기가 쉬워졌다. 결국, 포스트잍은 어느 정도 정리가 되었고, 강사는 포스트잍 앞에 사용자 스토리에서 필요한 항목 이름을 쓰기 시작했다. 중구난방으로 붙었던 포스트잍이 사용자 스토리로 바뀌는 순간이었다.

[결론]

처음부터 사용자 스토리를 작성하자는 목표였다면 작성하기가 쉽지 않았을 것이다. 이전에도 직급이 높거나 경험이 많은 일부 개발자에 의해 작성되는 경우가 많았기 때문이다. 작성해야 하는 항목에 맞춰 작성할 것을 찾아내는 것이 아니고, 사용자 스토리 자체에서 중요한 부분을 발췌 하여 항목을 붙이는 방법을 사용한 것이다. 이런 방법은 위에서 보았던 복잡성, 완벽성, 변동성을 미리 알 수 없기 때문에 바로 중요 단어나 토픽을 찾아내기가 쉽지 않다. 전반적인 사용자 스토리 토론 후에 중요 부분을 찾아내는 것도 방법일 수 있다.



사용자 스토리 구성 항목



사용자 스토리에 작성해야 하는 항목은 사용자와 개발팀 간 상의하면서 정하면 되지만, 일반적으로 그림3과 같은 항목을 가지면 좋다. 그림3을 살펴보면, 사용자 스토리에 대한 설명을 설명(Description)에, 누가 사용하는지 역할(Role), 사용자 스토리의 목표와 가치를 목표(Goal)과 가치(Value)에 작성한다. 사용자 스토리를 테스트 하기 위해 가정(Assumptions)과 추정(Estimate)을 작성하여 테스트 결과를 예측한다.


<그림3> 사용자 스토리 작성 항목의 예

출처: Thoughtworks


그림3 외에 사용자 스토리는 아래 세가지 항목을 작성하는 경우가 많은데 사용자 스토리의 난이도와 완성도를 미리 파악하여 개발자에게 가이드 하기 위해서이다. 이 외에도 위험도나 예상되는 이슈를 작성해도 된다.



더보기

사용자 스토리 작성



개발 프로젝트를 진행하기 위해 사용자 스토리를 중심으로 단위가 구성된다. 한 개의 사용자 스토리가 되고, 5 ~ 10개의 사용자 스토리가 구성되면 이터레이션(Iteration) 단위가 되고, 30 ~ 50개의 사용자 스토리가 구성되면 릴리이즈(Release) 단위가 구성된다.


<그림2> 사용자 스토리의 활용


사용자 스토리 정의

사용자 스토리 작성을 위해서는 기억해야 할 사항이 몇 가지 있다. 사용자 스토리는 사용자와 개발팀 간 대화가 원활하게 하는 것에 첫 번째 목표가 있기 때문에 하나의 사용자 스토리는 아래와 같은 가이드를 지키는 것이 좋다.

시작과 끝이 있는 하나의 일 단위여야 함

하나의 이터레이션으로 완성 가능해야 함

진행상황이 추적 가능해야 함

개발자 관점이 아닌 사용자 관점이어야 함

추정할 수 있어야 하고, 테스트할 수 있어야 함

인덱스를 매길 수 있어야 하고, 스토리 리스트를 만들 수 있어야 함

프로덕트 백로그로 만들 수 있어야 함