-
Notifications
You must be signed in to change notification settings - Fork 5
사용자 스토리 활용하기
무엇이든 핵심부터! 생활코딩에서도 자주 이야기 하는 것입니다. 미지의 세상에 대해 알아갈 때 핵심부터 배워 나가는 것은 효과적인 성과를 가져올 수 있습니다.
5주라는 짧은 기간, 그리고 익숙하지 않은 주제. 상세하지 않은 요구 사항. 이러한 미지의 세상에서 무엇부터 시작해야 효과적으로 개발을 진행할 수 있을까요? 소프트웨어 개발에 있어 핵심은 무엇일까요?
사용자입니다. 소프트웨어는 결국 사용자가 없으면 존재 이유도 없을 테니까요. 사용자가 이 소프트웨어를 통해 무엇을 얻고자하는가 이것이 바로 소프트웨어의 핵심입니다. 그리고 사용자가 소프트웨어를 통해 얻고자하는 것을 정의하는 것, 이것이 바로 사용자 스토리입니다.
우리는 5주라는 짧은 기간, 그리고 익숙하지 않은 주제. 상세하지 않은 요구 사항. 이러한 미지의 세상을 헤쳐나가기 위해 사용자 스토리를 적극 활용해보기로 했습니다.
사용자 스토리를 만드는 방법에 표준은 존재하지 않습니다. 하지만 널리 사용되는 방법은 있습니다.
"(역할) 로서, (기능)을 할 수 있다. 그 결과 (가치)를 얻을 수 있다."
바로 위 문장을 채워 넣는 것입니다. 우리 프로젝트에서는 다음과 같은 사용자 스토리를 작성해볼 수 있을 것입니다.
"<서비스 사용자>로서 <TOTP로 Two Factor Authentication>을 할 수 있다. 그 결과 아이디와 비밀번호를 유실하더라도 계정을 안전하게 보호할 수 있다."
이러한 문장을 적는 것만으로도 사용자가 우리가 만드는 서비스로부터 어떠한 가치를 원하는지 알 있었고 또한 어떤 기능을 제공해야 하는지 알 수 있게 되었습니다.
하지만 사용자 스토리만으로는 프로젝트의 계획을 수립하는 데 부족한 점이 많습니다. 더 구체적인 목표를 수립하기 위해선 기준이 더 필요합니다.
AC는 사용자가 원하는 가치를 실현시켜주는 우리 서비스의 기능이 제대로 동작하는지 여부를 결정하는 기준점입니다. AC를 만족한다면 우리가 제공해주는 기능이 잘 동작하고 있다고 볼 수 있습니다.
AC는 테스트 케이스가 되기도 합니다. AC를 만족하는 것이 곧바로 기능을 검증하는 것이기 때문입니다. 물론 테스트를 작성할 때에는 더 구체적인 기준점이 필요할 것입니다.
미지의 세계와 같았던 우리의 프로젝트를 사용자 스토리를 사용하여 빠르게 이해해보고 계획을 수립해 보았습니다.
앞서 이야기했던 AC까지 작성하는 것만으로는 우리가 무엇을 해야하는지 명확해지지 않다고 생각되었습니다. 그래서 Tasks라는 항목을 추가하여, AC를 만족시키기 위해 우리가 해야 할 일을 적어보았습니다. Tasks에는 기능 구현 뿐 아니라, 학습해야하는 것, 테스트, 디자인과 같이 실제 업무로서 해야할 일들을 포함하였습니다.
그 결과 다음과 같은 계층 구조가 도출되었습니다.
- User Story: 사용자가 기대하는 것
- Feature: 사용자의 요구사항을 만족시키는 기능
- Acceptance Criteria: 이 기능이 제대로 동작했다고 이야기 할 수 있는 최소 조건
- Tasks: 이 조건을 만족시키기 위해 우리가 해야할 일(학습, 테스트, 구현, 디자인...)
그리고 이 계층 구조를 그대로 백로그에 적용해보았습니다.
👉 백로그 바로가기
아직까지는 매우 만족스럽습니다. 우리가 만들 소프트웨어에서 사용자는 무엇을 기대하는 것일까를 고민하니 기능들을 빠르게 생각해낼 수 있었습니다. 또한 동료와 이것에 대해 자유롭게 이야기 하는 과정에서 프로젝트에 대한 이해도가 함께 상승할 수 있었습니다.
무엇이든 핵심부터. 이것은 진리입니다.
How to Write Great User Stories
애자일의 모든 것
Acceptance Criteria
© Boostcamp