members

members

巨大プロジェクトで5年以上成果を出し続ける方法とは?-設計編 ②プロジェクトの進め方(スクラム開発)-

Tweet

我々のユニットでは、領域も多岐にわたる巨大プロジェクトにおいて、5年以上に渡ってクライアントとともに確かな成果を創出してきました。
プロジェクト参画に際して試行錯誤しながら改良した進め方やチームに蓄積した学びを、「設計編」「チームビルディング編」の2つのテーマに分けて紹介したいと思います。

今回は、「設計編」の第2章として「スクラム開発」についてご紹介します。

 

目次

 

1.スクラムとは

本プロジェクトは2015年冬から始まり、2017年春にスマホサイトの全面リニューアルをしてリリースしました。
この時はいわゆる「ウォーターフォール」の開発方法をとっていましたが、2017年春以降、バックエンド・スマホ・PCサイトスマホも含めた大規模な全面リニューアルのプロジェクトが始まりました。
人員数百人、予算数百億※ という大規模なプロジェクトということもあり、「スクラム」という開発手法を導入しました。今回はそのスクラムについて解説します。

※すべてがメンバーズの受注額ではありません。

 

では、スクラムとはいったい何でしょうか?
一言でいえば、「チームで仕事を進めるためのフレームワーク」

スクラムはアジャイル開発手法の一つなのですが、メンバーの自主性を尊重して計画と振り返りによってチームを成長させ、複雑で変化の激しい問題や課題に対応するためのフレームワークです。

 

スクラム概要

膨大な仕事量をスプリントという小さい単位に分解して小さいチームで仕事を行います。

  1. 要求はバックログという優先順位付けされた一覧表に保管されます。
  2. 優先順位の高いバックログの項目をもとに、スプリント内で開発できる目標を設定します。
  3. スプリントごとにバックログへの追加したり優先順位を付けたり、最終的に開発したものの評価はプロダクトオーナーが行ないます。

ウォーターフォールとスクラムの違いですが、ウォーターフォールは検討、設計、実装、テストを基本的には1回ずつ行いますが、スクラムは小さい単位で検討、設計、実装、テストを繰り返しながら進んで行きます。
この1つの工程をスプリントと呼び、1スプリントごとにリリースしていくことも可能ですが、本プロジェクトではいくつかのスプリントをまとめてリリースする場合が多くありました。

 

2.スクラムの全体像

スクラムの全体像

先ほど説明したスプリント内の詳細がこちらになります。
まず先方のビジネスチームからビジネスリクワイヤメントという、こういうことをやりたい!という要求を受ける所からスプリントがスタートし、グルーミングやプランニングをはさみながら、それぞれのチームがやるべき作業を進行し、テストやレビューを行った後、最後にレトロスペクティブという反省会を行い1スプリントが完了します。
それとは別にデイリースクラムというミーティングも毎日行います。
これらを繰り返しながら、すべてのビジネス要求を完了させます。

 

スケジュールの詳細

小さいプロジェクトでは、1スプリントは1週や2週くらいで回すこともありますが、本プロジェクトでは規模が大きかったため1スプリントは1ヵ月で行いました。
(デザインフェーズが2週、開発フェーズが2週)

3.スプリントの詳細

スプリントの詳細1

図に番号を振っていますので、併せてご覧ください。
まず、ビジネス要求を精査しエピックという単位に分類します。

1番のロードマップでは今回スプリントで何のエピックをいくつのやるかを検討します。
2番ではユーザーストーリー、要件定義、詳細設計を行い、それをもとにUIデザインを行います。
3番のグルーミングは2番のワイヤーフレームやインタラクションなどの仕様をデベロップメントチームに共有する場です。この案件は海外の開発ベンダーのため、ドキュメントはすべて英語で作成し、大きい部屋に30名ほど集められ、どのような画面になるのか、挙動の期待値などを英語で説明をしました。
4番のバックログは2番で作成したユーザーストーリーをもとに各チームはタスクを作成します。
5番のプランニングは3番のグルーミングで持ち帰った実装ができるかとか、今回のスプリントではタスクが多すぎるから次回に回したいなどのやりとりを行います。
6番のデベロップメントでは、これまでに出揃った要件定義やワイヤーフレーム、インタラクション、UIデザインなどをもとに実際に開発を行います。

 

スプリントの詳細2

7番ではAPIを設計し、各画面から必要な情報を呼び出せるように準備します。
8/9番ではテストを行い、デモを内部公開し、メンバーでチェックをします。
10番のレトロスペクティブではこのスプリントでは何が問題だったのか、完了できなかったタスクはあるか、などを確認し次のスプリントにその反省点を活かせるように進行します。
11番のデイリースクラムですが、チーム単位で毎日定例会を設けて、その日のタスクや問題点を確認していく場になります。基本は立った状態で5分、10分程度のスタンドアップミーティングを行います。

4.メリットとデメリット

メリットとデメリット

メリット

  1. フィードバックが早くできること。短期間で動作するプロダクトを制作するため、定期的に役員や上層部のフィードバックを得ることができます。
  2. リリースが早くできること。こちらもスプリントごとに動作するプロダクトが作られるため、最低限リリースに必要な機能が揃った段階でリリースすることが可能になります。
  3. 開発の手戻りが最小限に抑えられること。同じくスプリントごとに動作するプロダクトが作られるため開発の手戻りを少なくすることができる。

結局すべてのメリットに共通でいえることですが、ウォーターフォールでは、すべてを完成させた後に重大な欠陥がみつかったり、役員が気に食わずすべてをひっくり返えされたり、というリスクを抑えることが最大のメリットになります。

デメリット

何スプリント繰り返すのか決められていないため、終わりが見えず、エンドが決まっている案件には不向きです。

5.バックログ

バックログの詳細

バックログとは、今回の場合ECサイトを構築するという大きなプロジェクトの中で、ビジネスの実現したい要求からエピックを抽出し、そのエピックから複数のユーザーストーリーアクセプタンス・クライテリアを作成します。
(アクセプタンス・クライテリアとは、そのユーザーストーリーをどうしたら完了できるかを記した合否基準のことです。)
その、アクセプタンス・クライテリアに基づいてデザインチーム・デベロップメントチームで行う作業タスクを作成します。
それらに優先順位を設定したリストをバックログと呼んでいます。

6.エピック

エピック

エピックとはビジネス側のやりたいこと・要求を整理・分類したもので、相互関係があるユーザーストーリーを束ねた「機能」の単位のことです。
実際の例をもって説明します。

  • ドローン配送機能を導入したい。
  • 商品をカートに入れる機能を導入したい。
  • クレジットカードを使えるようにしたい。

などのエピックがバックログ内に作成されます。

7.ユーザーストーリー制作

ユーザーストーリーの詳細1

ユーザーストーリーはスクラム開発において一番重要な要素です。
エンドユーザーの観点から作ることが大切で、通常はWho誰が、What何を、Whyなぜ、を使って簡潔に一般的な言葉で説明します。エンドユーザーにどのような価値を提供するかを示すことを目的としています。
このユーザーストーリーが実現できたかどうかを判定するための基準となるアクセプタンス・クライテリアも併せて記載します。
ポイントは以下の4つです

  1. ユーザーに焦点を当てることで、ユーザーが取るべき行動の把握、直面している問題の解決に集中できる。
  2. 最終目標を定義し、ユーザーに最善のサービスを提供することで目標を達成する方法をチームが協力して決定できる。
  3. 最終目標の達成に向けた最善の解決策をチームがクリエイティブに考えられる。
  4. 最後はユーザーストーリーを 1 つずつクリアすることで、チームは小さなチャレンジと成功を味わえ、それが勢いにつながる。

ユーザーストーリーの詳細2

こちらも、例を用いて説明します。
先ほどのエピック、「ドローン配送機能を導入したい。」に対するユーザーストーリーで、

  • Whoは「顧客が」
  • Whatは「ドローン配送を利用して商品を受け取れる」
  • Whyは「急いで商品を受け取りたいから」

を設定します。
このユーザーストーリーを完了させるためのアクセプタンス・クライテリアを以下のように設定します。

8.タスク制作

タスクの詳細1

先ほど決めたアクセプタンス・クライテリアから複数のタスクに分解していきます。
例えば、

  • 顧客は地図から配送場所を選択できる。

というアクセプタンスクライテリアに対し、地図の大きさや配置を検討したり住所・郵便番号から検索できるUX/UIを検討したり現在地や指定場所のアイコンデザインを検討することがタスクになります。

  • 顧客は到着予定時刻がわかる。

に対しては、注文履歴ページに到着予定時刻を表示する際のフォントサイズを検討したり、到着予定時刻が更新できるようにボタンの配置について検討することなどが挙げられます。

タスクの詳細2

  • 顧客は配送中のドローンの現在地がわかる。
  • 顧客は着陸予定場所の写真を送信できる。
  • 顧客は重さに制限があることが理解できる。

加えて、以上のタスクを制作します。
このタスクはデザインチームだけになりますが、実際にはデベロップメントチームはデータベースを設計したり、Javascriptの設計をしたり、CSSフレームワークではコンポーネントを検討したりとさまざまなタスクが紐付いてきます。
以上のタスクの完了させることで、ひとつのユーザーストーリーを終えることができます。

このようにすべてのユーザーストーリーが完了することで、ひとつのエピック、ここでは「ドローン配送機能を導入したい。」という機能を完了することができます。

これで「スクラム開発」についての説明は以上です。

 


関連コラム

巨大プロジェクトで5年以上成果を出し続ける方法とは?-設計編 ①設計者の基本姿勢-
[当記事] 巨大プロジェクトで5年以上成果を出し続ける方法とは?-設計編 ②プロジェクトの進め方(スクラム開発)-
巨大プロジェクトで5年以上成果を出し続ける方法とは?-設計編 ③UX/UI設計のプロセスと成果物-
巨大プロジェクトで5年以上成果を出し続ける方法とは?-チームビルディング編 ①スキル向上-
巨大プロジェクトで5年以上成果を出し続ける方法とは?-チームビルディング編 ②スキル発揮-
巨大プロジェクトで5年以上成果を出し続ける方法とは?-チームビルディング編 ③働き方改革&運営基盤整備-

関連記事

アジャイル開発スクラム運用

 

コラム執筆

野上 弥貢

2019年新卒入社のデザイナー。現在大手アパレル企業さまのWebサイトのUI/UX設計・改善を担当。