TOPICS

TECH BLOG

【TECH BLOG #15】スクラム開発の手法を取り入れたタスク管理について

#タスク管理 #オンラインオフィス

こんにちは!
ファンプレックス株式会社において「NARUTO -ナルト- 忍コレクション 疾風乱舞」(通称:ナルコレ)の運営を担当しているMです。
ナルコレチームの中ではアソシエイトチーフエンジニアを任されております。

今回はナルコレチームのエンジニアメンバーが実践しているタスク管理の手法を紹介していきたいと思います。

ナルコレの運営体制

ナルコレチームの中にも、昨今の新型コロナウィルス対策としてオンラインオフィス勤務で自宅からリモートで業務しているメンバーや、交通機関の混雑時間帯を避けて時差勤務をしているメンバーもいるため、以前よりも1人ひとりのタスク状況の可視化をする必要性が高まっています。

また、ナルコレの運営におけるエンジニアの業務には、日々リリースされるイベントなどの開発と月1〜2回のアプリバージョンアップの開発という、2本の開発業務を並行して進める必要があります。
そこでナルコレチームではスクラム開発の手法を取り入れて開発のタスク管理を行っています。

スクラム開発とは

スクラム開発とはアジャイル開発の一種で、ラグビー用語であるスクラムからもイメージできる通りチームが一丸となって開発を進めるためのプロジェクト管理のフレームワークです。

ワンチームとなるために、密にコミュニケーションを取りながらメンバーそれぞれが主体性を持って課題の解決に取り組み、アジャイル開発の特徴でもある反復的な開発や振り返りを短いサイクルで繰り返してチームが目指すゴールに向かっていく事を目指しています。
スクラム開発は以下のような要素を持っています。

・タイトルへの要望について優先順位を決めて並べ替えて、優先度の高い順に開発を行う
・固定された短い期間(1〜4週間程度)の単位で区切り、その期間の中で開発計画を立てる
・毎日メンバー同士で開発状況や開発の支障になっている課題がないかどうかの確認を行う
・開発した機能が正しいかどうか定期的に確認する場を設ける

ゲームアプリ運営特有とも言える月1〜2回のアプリのバージョンアップを行うサイクルが、スクラム開発の短い期間ごとに区切って開発計画を立てるという特徴とマッチしていると感じて、ナルコレチームではスクラム開発のスタイルを採用しています。

スプリントについて

スクラム開発の特徴のひとつとして紹介した「固定された短い期間(1〜4週間程度)の単位で区切り」の部分ですが、この区切られた期間の単位の事をスプリント(Sprint)と呼びます。
スクラム開発では、区切った期間を1つのスプリントとして、繰り返し開発を行っていきます。
ナルコレチームでは10営業日をひとつのスプリントと定義して運営しています。

営業日ベースのため、祝日などでスプリントの切れ目の曜日は変わりますが、開発に使える時間が固定されるので、スプリントごとに取り組める工数が一定になり、開発可能な作業量の見通しが立てやすいというメリットがあります。

一般的なスクラム開発ではスプリントの長さを1週間に定義する事も多いようですが、ナルコレチームで定義した10営業日というのはカレンダー上では半月程度の期間になっており、ナルコレのバージョンアップサイクルとの親和性を優先した設定になっています。

ナルコレチームにおけるタスク管理

ファンプレックスでは課題管理ツールとして「JIRA」というプロジェクト管理ツールを導入しています。
ナルコレチームのエンジニアはこのJIRAを使ってタスクを管理しています。
ひとつのタスクをひとつのチケットとして定義してスプリントに紐付けると、JIRA上でカンバン形式のUIで表示することができます。
各メンバーは割り当てられたタスクチケットを「本日対応予定」「進行中」「対応完了」のステータスを移動させながら開発を進めていきます。
このボードを確認すれば、現在のスプリント期間で開発する予定のタスクの進行状況が誰でもわかるようになっています。

また、もうひとつ重要な役割を持っているのがバックログというボードです。
プランナーなどからのエンジニアに対しての開発依頼はこのバックログにタスクを追加していくのですが、私達はこれを「バックログに積む」と呼んでいます。
バックログにはスプリントでの開発予定にまだ載っていないタスクがリストになっていて、このバックログから優先順位が高いものからスプリントに載せていき開発を行う、という流れになっています。

スクラム開発を行うにあたり、スプリントごとに実施する内容として以下のようなものがあります。
・スプリント設計
・毎朝のタスク確認
・タスク完了確認
・スプリント振り返り

この先は、ナルコレチームでスクラム開発を取り入れるにあたって実践している内容について紹介していきたいと思います。

スプリント設計

スプリントを始めるための準備として、スプリント開始日までにスプリント設計を行います。
スプリント設計では、あらかじめ依頼等が積まれたバックログの中で優先度の高いタスクを中心に、次のスプリントで開発したい内容を抽出していきます。
次のスプリントでやりたいタスクのリストアップが終わった後に行うのが、各メンバーへのタスク割り振りです。

先述した通り、ナルコレチームでは10営業日でひとつのスプリントと定義しているため、各メンバーごとにそのメンバーが作業した場合の工数が合計して10日分になるようにタスク割り振りの調整を行います。

当然メンバーごとに得手不得手はあるので、同じタスクでもそれぞれ必要になる日数が異なりますが、スプリントを重ねることで溜まった実績をベースに見積もり精度が上がるのも、期間を固定したスプリントのメリットのひとつです。タスクを割り振った後は、メンバー自身に割り振られたタスクについて改めて見積もりを実施してもらうようにしています。また同時に、3日以上かかるタスクについては、サブタスクを作成し細分化をしてもらっています。

なぜサブタスク化をしているかというと、カンバン方式で大きなタスクをそのままにしてしまうとステータスが「進行中」のまま数日止まってしまい、タスクが順調に進んでいるのか停滞しているのかが判断できないため、サブタスクとして1日程度の粒度に分けることで日々の進捗を可視化するのが目的です。作業するメンバー自身が見積もる事でタスク完了目処の精度が上がりますし、見積もりをした結果を基に割り振り時に想定した工数と乖離がある場合は、タスク割り振りの調整を実施してスプリント完了時に割り振ったタスクがすべて完了することを目指します。
そのため、スプリント設計が終わりスプリント期間が開始した後は、新たにタスクを進行中のスプリントには追加しないというのが基本的なルールです。

毎朝のタスク確認

ナルコレチームのエンジニアメンバーは毎日15分間の朝会をZoomで実施し、前日にやったこと、今日やることの確認や、タスクを進めるために支障が出ている事がないかを確認しています。アプリのバージョンアップ開発では複数人で開発する事がほとんどのため、毎日エンジニアメンバーが全員集まる場でタスクの確認をして、相互にタスク状況を把握することが一番の目的です。チームのメンバー同士がお互いにタスク状況を把握することで、タスクが思うように消化できていない場合に周りが柔軟にサポートできるような体制構築が理想です。
スプリントの期間が進むにつれて、スプリントの残り日数でタスクが消化できる見込みで進んでいるかどうかが主な確認ポイントになります。

タスク完了確認

タスクのステータスを「対応完了」にする場合は、第三者から結果が確認できるような成果物の添付を行います。
例えば、プログラム開発であればソースコードのPull Request、資料作成ならドキュメントへのリンクなどが成果物の代表的なものです。対応完了したタスクの成果物をチーフが確認して問題なければタスクのクローズを行い、完了となります。

スプリントの振り返り

スプリントの期間が終わったタイミングで行うのが、チームのエンジニアメンバー全員でスプリントの振り返り実施です。
スクラム開発においてはスプリントの境目がマイルストーンになるので、このタイミングで振り返りを実施するようにしています。
スプリントの振り返りでは、全体的な開発成果の確認を行うのですが、もし完了できなかったタスクがあった場合は、完了できなかった要因のヒアリングを行い、次以降のスプリントではどのように進めたらよりスムーズに進行できるようになるかの意見を出し合い、改善を進めていきます。

スクラム開発の手法を取り入れてみて

スプリント単位で開発を行うようになって、エンジニアの様々な業務についてタスクチケット化を進めた結果、メンバー同士やチームの他職種のメンバーからもタスク状況の可視化が実現できてきていると感じています。
ナルコレチームでは開発ではない細かい作業、例えば時々ある社内アンケートの回答などについてもタスクチケットを作成するようにしていて、タスク化することで完了確認やリマインドをする手間が省けるので、色々な場面でタスク化する文化がチームに根付いてきました。
また、スプリントが開始した後は基本的にタスクを追加しないので、プランナーから開発依頼があった場合にも、一旦バックログにタスクとして積んでおくよう実施中です。
これによって差し込みでタスクが増えることを避けられるので、エンジニアメンバーの業務負荷が高くならないようにする効果があります。
さらに、依頼したプランナーに対しても、今後のタスクがバックログに集約されているおかげで得られたもうひとつのメリットが、いつ頃のスプリントで着手できそうかという情報を精度高く伝えられるという点です。
今後も改善を続けながら、ナルコレチームとしてより良いタスク管理体制を模索していきたいと思います。

最後に

今回はナルコレチームのエンジニアメンバーのタスク管理の手法を紹介させていただきました。
スクラム開発を取り入れてみたいと思っている方の参考になっていたら嬉しいです。

「NARUTO -ナルト- 忍コレクション 疾風乱舞」も5周年を迎え、6年目に突入しています。
ナルコレチームとしても、お客様にナルコレをより楽しんでもらえるように日々のイベントに加えて、バージョンアップでの新機能開発にも積極的に取り組んでまいります。
最後までお読み頂き、ありがとうございました。

ファンプレックス株式会社

グリー株式会社の100%子会社で、ゲーム運営事業を行う。
公式サイト: https://funplex.co.jp/
公式Facebook:https://www.facebook.com/funplexInc

[本件に関するお問い合わせ先]
ファンプレックス株式会社 広報担当
東京都港区六本木6-10-1 六本木ヒルズ森タワー
E-mail: info.funplex@funplex.co.jp