‘애자일로 빅픽처를 그리다’
빅픽처인터렉티브가 애자일 문화와 실천법으로 일하면서 프로덕트를 만들어 나가는 여정에 대한 이야기를 담고 있습니다.
빅픽처인터렉티브는 프로덕트 중심으로 크루를 구성하여, 하나의 개발팀은 하나의 프로덕트를 담당합니다. 게임 코칭을 서비스 하는 프로덕트의 개발팀은 다음과 같은 고민이 있었습니다.
어떻게 하면 게임 코칭 서비스를 더 많은 게이머들이 이용할까?
게임 코칭 서비스는 지속적으로 게이머들이 이용하고 있는 프로덕트 입니다. 서비스가 더 많은 유저가 재미있게 게임을 즐길 수 있도록 도움을 주는 서비스로 발전하고 싶었습니다. 우리는 관성적으로 프로덕트를 개발하는 것이 아니라, 유저 공감을 바탕으로 한 문제와 해결책 발견이 선행되어야 한다는 것에 동의했습니다. 이에 유저의 문제를 효과적으로 해결하면서 지속적으로 발전해 나가는 애자일 Agile 을 기반으로 일 하기 위해 열의가 있는 팀원들이 모였습니다.
프로덕트 개발팀은
1. 유저와 팀에 맞는 것을 개발하고 ‘Do the right thing’,
2. 할 일을 품질 기준과 의도한 바에 맞게 하고 ‘Do the thing right’,
3. 개발된 프로덕트를 적시에 유저에게 전달하는 것 ‘Do it fast’
을 잘 해야 합니다.
그러기 위해서
1. 유저 공감을 바탕으로 Why, How, What 을 고민하는 디자인 씽킹 Design thinking,
2. 효과적으로 할 일을 관리하는 스크럼 프레임워크 Scrum framework 또는 칸반 Kanban 을 기반으로
3. 스프린트 Sprint 를 반복하는
업무 흐름을 설계했습니다.
1) 무엇을 개발할 것인가?
무엇을 개발해야 유저가 사랑하는 프로덕트가 될 수 있을지를 개발팀이 잘 이해하고 결정하기 위해서, 유저 페르소나 User persona 에 대한 공감으로 부터 문제와 해결책을 결정하는 디자인 씽킹 프로세스를 추가했습니다. 프로덕트 오너 PO 와 프로덕트 매니저 PM 는 유저 리서치와 사용 데이터를 기반으로 유저가 가지고 있는 문제(불만 사항 Pain point, 원하는 것 Need)들을 찾습니다. 여러 문제들을 가장 효과적으로 정의한 핵심 문제들을 에픽 Epic 으로 정의합니다.
에픽은 우리가 해결해야 하는 문제이므로, 팀은 이 문제를 어떻게 하면 해결할 수 있을지를 아이데이션 하여 다양한 해결책을 찾습니다. 여러 해결책을 종합하여 하나의 유저 여정으로 정리하고 이것을 가시화 한 디자인을 포함해서 스토리 Story 로 정의합니다. 스토리를 실제 개발할 프로덕트의 일부에 대한 프로토타입으로 보고, 리뷰를 하여 이해관계자의 피드백을 반영합니다. 아이데이션을 하는 과정은 디자인 스프린트 Design sprint 방법을 압축한 워크숍으로 구성해서 진행하고 있습니다.
여기까지는 우리가 프로덕트에 적용할 ‘무엇’을 유저 공감으로 부터 얻은 아이디어를 바탕으로 디자인하는 비즈니스 전략적 해결 영역입니다. 그 결과로 개발팀은 무엇을 개발할 것인지에 대한 답을 얻어, 프로덕트 백로그에 등록하고 우선순위에 따라 관리합니다. 이것이 우리의 ‘할 일’ 입니다.
2) 어떻게 개발을 할 것인가?
스토리에 정의한 내용을 바탕으로 개발팀은 실제 프로덕트 개발을 하는 일이 남았습니다. 개발팀은 가지고 있는 할 일을 개발할 때 완료 기준을 준수하고, 명시된 인수 기준 Acceptance criteria 을 충족하여 동작하도록 스토리를 구현해야 합니다. 우리는 스토리가 의도하는 바를 정확히 이해하면서 인수 기준을 기반으로 개발하기 위해서 예시 매핑 Example mapping 을 먼저 진행합니다. 예시 매핑에서 프로덕트 매니저가 정의한 동작 규칙과 정책을 확인하고, 정확한 이해를 위해 상황에 대한 예시를 들어 설명합니다. 프로덕트 매니저, 개발자, 테스트 담당자 간의 대화를 통해 스토리의 상세 내용과 범위를 명확히 이해하고 빠진 사항도 쉽게 찾을 수 있습니다.
개발팀은 스토리를 개발하면서 지속적으로 진행 사항과 이슈에 대해 대화를 합니다. 개발을 마친 후에는 코드 리뷰, UI/UX 리뷰, 인수 기준 테스트를 거쳐서 스토리가 의도한 사항에 맞게 정확히 구현이 되었는지 확인합니다. 개발자들은 프로덕트의 코드에 대한 품질 향상과 더 나은 아키텍처 및 기술 변화에 대응을 하기 위해 리팩토링 Refactoring 을 지속합니다. 개발자들은 팀이 정의한 프로덕트에 개발할 ‘무엇’을 어떻게 잘 개발할 것인지에 초점을 두고 할 일을 완료합니다. ‘무엇’이 목표로 하는 의도에 맞는 정확한 개발을 옳은 방식으로 지속하면, 이것이 곧 우리가 가지고 있는 비즈니스 가치를 유저에게 전달하는 것입니다.
3) 개발된 제품을 얼마나 적시에 유저에게 전달할 것인가?
유저 공감을 통해 효과가 있는 프로덕트 개발 사항을 정의하고, 이것을 정확하게 개발하였습니다. 이제 중요한 것은 얼마나 적절한 시점에 개발된 프로덕트를 유저에게 제공할 것인가 입니다. 시장 환경은 계속해서 변화하고 있습니다. 유저가 갖는 불만 사항과 원하는 것은 변화하고 있는 동시에 다양한 방식으로 해소되고 있기 때문에, 적절한 시점에 필요한 서비스를 제공하는 프로덕트가 유저의 사랑을 받습니다. 우리는 1번과 2번 질문에 대한 답을 갖추고 있으므로, 이제 이것을 반복해서 빠르게 개발을 완료하는 것이 관건입니다. 완료된 할 일이 생기면 프로덕트 오너, 프로덕트 매니저가 이해관계자와 협력하여 원하는 기능을 원하는 릴리스 Release 시점에 유저에게 전달할 수 있습니다.
짧은 주기 내에 빠르게 스토리를 완료하기 위해서는 개발 사항이 업무 흐름을 따라 진행되는 동안 발생할 수 있는 불필요한 대기 시간을 줄여야 합니다. 우리는 이러한 문제를 가시화하고 자주 이야기하는 것이 중요하다고 생각합니다. 스크럼 프레임워크를 기반으로 스프린트를 반복하면서 스크럼 이벤트들이 주는 협업의 장점들을 얻고 있습니다. 특히 데일리 스크럼을 통해서 문제가 되는 사항, 필요한 도움, 어려운 점을 이른 시기에 드러내서 잘 해결할 수 있도록 함께 일을 하고 있습니다. 지라 Jira, 미로 Miro, 물리적인 화이트 보드 등을 활용해서 진행 사항이 잘 보여지게 표현하고, 내용을 잘 추적할 수 있도록 도구를 활용합니다.
최근에는 End to End 테스트를 도입하고, 적용 범위를 확대하는 것을 진행하고 있습니다. 개발된 사항을 자주 빠르게 만들어 내기 위해서는 테스트가 용이한 것이 큰 도움이 되기 때문입니다. 테스트가 믿을 수 있고 빠르게 실행된다면, 개발자들은 검증하는 과정에 대한 부담과 추후에 발생하는 장애를 최소화하고, 스토리 개발에 더 집중할 수 있습니다.
애자일은 지속적으로 실행하고 향상시켜 나가는 여정입니다.
우리가 정의한 업무 흐름 모델은 유저에게 효과적인 프로덕트를 개발하기 위해 개발팀이 고민하고 실행해야 하는 요소들을 융합하고 있습니다. 모든 에픽들이 해결하기 쉽지 않고, 매 번의 스프린트가 매끄럽지 만은 않습니다. 중요한 것은 발생하는 문제를 잦은 소통 주기를 통해 최대한 이른 시점에 찾아내고 함께 해결해 나가는 여정을 지속하는 것입니다. 이 글에 공유된 업무 흐름 모델도 우리팀이 업무를 해나감에 따라 유저에게 효과적인 프로덕트를 개발할 수 있는 더 적합한 형태로 변화해 나갈 것입니다.
빅픽처인터렉티브에서 이 업무 흐름 모델을 실행하는 개발팀은 현재까지 3개월 가까이 이것을 실천하면서 협업 수준을 향상시키고 있습니다. 각 활동들에 대한 수준도 높여 나가야 하고, 프로덕트의 성장도 더 지켜보아야 합니다. 그것을 평가하기 앞서, 지금 팀이 느끼는 긍정적인 효과는 우리가 주도적으로 우리의 프로덕트를 개발하고 있다는 점 입니다. 함께 문제를 찾아서 해결책을 고민하고 자주 소통하며 빠르게 프로덕트를 개발하는 팀에서 매일 매주 매스프린트가 끝나면 내가 한 일에 만족할 수 있다는 점 입니다. 이 느낌이 앞으로도 우리 팀이 유저에게 효과적인 방향으로 프로덕트를 만들어 나갈 것이라는 믿음을 갖게 합니다.
김영민 ( 스크럼 마스터 / 애자일 코치, francis@bigpi.co )
유저에게 가치가 있는 프로덕트를 효과적으로 개발하는 협업 업무 흐름을 설계합니다.
애자일의 근본은 업무 문화에 있다고 믿습니다. 생각부터 말과 행동으로 점차 성숙해지는 과정을 팀과 함께 실천합니다.
'레벨업의 테크노트' 카테고리의 다른 글
[프론트엔드]구글 시트로 현지화 문자열 업데이트 자동화하기 (0) | 2022.03.04 |
---|---|
[더 나은 서비스를 위한 고민] 모달.. 어떻게 사용해야할까? (0) | 2022.01.26 |
[프론트엔드]Node.js 메모리 누수 탐지하기 (0) | 2022.01.17 |
[애자일로 빅픽처를 그리다] 데이터 대시보드 (0) | 2022.01.17 |
[프론트엔드/디자인]디자인이 프론트엔드와 figma로 대화하는 법 (0) | 2022.01.14 |
댓글