MicroAd Developers Blog

マイクロアドのエンジニアブログです。インフラ、開発、分析について発信していきます。

開発チームのスプリント密着とツール紹介

システム開発部アプリケーションエンジニアの EDO です。

マイクロアドでは各チームがプロダクトや領域 (画面, 配信など) に分かれての機能開発を行っています。案件によっては複数プロダクトにまたがることもあり、その場合は複数チームでの合同の開発となります。

各チームの役割についてはdevelopers.microad.co.jpのシステム開発部の組織構成をご覧ください。

今回の記事では、僕が所属するチームで取り入れているスクラム開発に触れながら、リモート環境下で利用しているツール類について紹介していきます。スクラム、アジャイル開発における用語や役割の具体的説明については本記事では割愛します。

スプリントプランニング

【スプリントプランニングのざっくり説明】

  • 達成できるバックログアイテム (案件) を定める
  • 開発チームとスクラムマスター(SM) で話し合い、プロダクトオーナー (PO) に報告する
  • 案件の内容について実装をどのように進めていくのかを検討する

スプリントプランニングは、チームのリソーススケジュールを決めるスクラム開発の重要なミーティング (MTG) となります。僕のチームでは 1 スプリントを 2 週間で設定しています。MTG ではスプリント内で対応する案件を決めます。MTG は Google Meet、案件調整については Jira Software を利用しています。

Jira Software

対応案件の調整については、ソフトウェア開発ツール「Jira」で提供されるスクラムボードを有効活用しています。参加メンバーへのチケット割り振り、案件開発にかかる工数の見積もり設定など他種な機能が提供されています。詳しくは前記した過去の記事をご覧ください。

developers.microad.co.jp

Google Meet, スプレッドシート

スプリントプランニングは Google が提供する会議サービス「Google Meet」を利用してオンライン開催しています。弊社では個々人が Google Calendar を利用してタイムスケジューリングしていることに加え、会議へのアクセスの容易性も踏まえ、こちらを積極的に利用しています。

また、組織体系の上位層のプロダクト開発グループとしても 1 ヶ月単位でのスプリント開発が採用されています。こちらについてはプランニングをスプレッドシートで行っています。(案件自体のチケット管理については変わらず Jira Software になります。)

ですので、体系的には以下のようなフローでのチームスクラムが行われています。

  1. グループとしてプランニングを行い、各チームに案件を割り振る
  2. チーム内でスプリント A, B に割り振られた案件を配分する

スプリントプランニング

デイリースクラム (朝会)

【デイリースクラムのざっくり説明】

  • 開発チームで行う定時報告会
  • 案件の進捗具合、質問、相談などを行う

デイリースクラムはチームで定めた任意の時間帯で毎日、軽めの MTG を行います。現在では、午前中の 15 分間で行うように設定しています。MTG 開催方法は Discord, 進捗の確認や報告については Jira Software, スプレッドシートを利用します。また、突発的に案件が発生することもあり、その際は MTG 後に対応コストの見積もりなどをそのまま行ったりもします。

Discord

案件に関する MTG においては Google Meet を利用していますが、デイリースクラムのような比較的ラフな MTG においては Discord を利用しています。コミュニケーションを快適に取ることができ、画面共有などの機能も提供されていることもあり、使い勝手の良さから今後も採用し続ける予定です。Discord の弊社利用については以下をご覧ください。

developers.microad.co.jp

Jira Software

スプリントプランニングで紹介した Jira Software を同じく利用しています。案件の進捗度合いや遅れなどの確認をします。

スプレッドシート

スプレッドシートに関しては、各メンバーの昨日、今日の作業内容、共有事項などを記載する方針をとっています。リモート環境下においてはコミュニケーション不足が問題点として挙がりやすく、認識齟齬が出ないようにデイリースクラムの口頭参加に加えて文字で書き出すことも行っています。

スプリントの全体的な流れ

開発

【開発のざっくり説明】

  • スプリントプランニングで定めた案件の開発を行なっていく
  • 開発の具体例としては、案件完了を判断するための受け入れ項目の作成やコーディング、ステージング環境による検証などが挙げられる

マイクロアドでは配信システムの開発を筆頭に配信管理画面やログ集計処理のバッチ処理など、他種多様な開発案件が存在します。そのため利用しているツール類が多いですが、ここではチームで利用している代表的なツールに絞って紹介します。

Jira, Confluence

Jira については開発段階でも引き続き利用します。追加される仕様などはチケットに追記され共有が行われます。Confluence については、前項目で挙げた「案件完了を判断するための受け入れ項目」に利用したり、プロダクトの仕様などをまとめるために幅広く利用しています。過去の開発における Tips などもまとめたりと将来における開発時の対応コスト削減のために知見を残すようにしています。

Slack, Discord

Slack は開発段階に限らずオールラウンドで活用されています。開発段階に注目すると開発チームとディレクター間の質問や相談に利用されています。また仕様追加などの際は Jira へ追記が行われますが、Slack での連絡も併せて行い、仕様更新による齟齬が起きないように努めています。

GitHub Enterprise

コード管理は GitHub Enterprise を利用しています。 プルリクエスト (PR) はチームメンバー最低 1 人以上の承認を条件にしています。そうすることにより、担当外案件の仕様やコード理解の促進、レビュアー・レビュイー相互のスキルアップ、コミュニケーションを期待しています。 また、PR のテンプレートも取り入れることで、PR で何をするのかの情報が統一化され、レビュアーの負担軽減と過去を振り返る際の貴重な情報源として利用できています。

Figma

管理画面系の開発ではデザイン開発ツールとして Figma を部分的に利用しています。直近のプロダクトはフレームワークとして Vue を採用していることもあり、初期実装としてモックを作ることも多いです。一方で、Vue を利用していない過去のプロダクトにおいてはモック実装がコストとなるため Figma を活用してのワイヤーフレームやデザイン調整を行っています。

スプリントレビュー

スプリントの終わり頃にはチーム内で対応した案件のコード共有などを行っています。工夫した点や仕様をどのようにコードに落とし込んだかなど、担当外メンバーが対応していない案件についても理解が進むようにしています。そうすることで属人化が少なからず解消されるため、重要な MTG になっています。開催は Google Meet で行い、コードの共有は GitHub Enterprise や統合開発環境の IntelliJ IDEA、Visual Studio Code などを利用しています。

レトロスペクティブ (振り返り)

【レトロスペクティブのざっくり説明】

  • スプリントの振り返りを行う
  • 良かった点や今後の課題について話し合う
  • 次回以降のスプリントにおける改善点を出す

今後のスプリントをより良くするために、スプリントの効果と成果物の品質を上げるために会を行います。会の中では「スプリントの良かった点、悪かった点」を洗い出し、そこから良かった点はどのように継続するか、悪かった点はどう改善していくべきかアウトプットとしていきます。僕のチームでは 2 時間の枠で開催しています。レトロスペクティブは先の洗い出しにかなりの時間がとられてしまうため、以下で紹介するツールなどを利用することでスムーズな進行を行えるようにしています。

Jira, Google スプレッドシート

Jira とスプレッドシートを連携させることにより、スプリント内で達成できた案件数などを視覚化し、洗い出しにむけての参考情報として利用しています。また、これまでのスプリントで上がった課題点などをシートに一覧で残しておくことにより、課題が解決できているのかどうかの振り返りにも利用しています。

Figma (FigJam)

スプリントの良かった点、悪かった点は FigJam (オンラインホワイトボード) を利用して各メンバーが書き出しを行っています。オンラインの現在は FigJam を使うことで付箋による意見だしを実現できています。

終わりに

いかがでしたでしょうか?かなりざっくりなスクラム開発とツール紹介にはなってしまいましたが、チームビルディングやリモート環境下での作業の進め方で苦戦している方の参考、手助けになっていれば幸いでございます。

当ブログには、より技術的な内容の記事が多く公開されています。お時間が許すようならば是非、ご一読ください。