⌚ 2021/3/29 (Mon) 🔄 2024/3/20 (Wed)
Large Scale Scrum (LeSS)とマイクロサービスについて
本日のブログではLarge Scale Scrum (LeSS)とマイクロサービスについて話をさせて
頂きます。
逆輸入的に増え始めたアジャイル開発、近年では耳にするだけではなく実際に案件に参画
している人も増えてきていることかと思います。
弊社でもアジャイル開発に力を入れており、アジャイル案件への客先常駐だけではなく
自社開発にもアジャイルの手法を取り入れております。
そういった状況の中、私は大規模スクラム開発、通称「LeSS」と呼ばれるフレームワークを
採用したプロジェクトで働いております。
未経験からIT業界に飛び込んだ私にはついていくのに精一杯、といった話は置いといて...
現場での貴重な体験を皆様に共有したいと思います。
■スクラムという少人数チームをスケールアップするにはどうするか
そもそもスクラムは人数が3人~9人までとされており、
それを超えるとスクラムとしての利点がなくなってしまいます。
私の常駐している現場では、機能ごとにマイクロサービス(以下MS)として分割し
別のプロジェクトとして動くことで大規模スクラム開発を実現しています。
さらにMSの中で要件定義チーム、サーバチーム、モバイルチームと別れてスクラムを
組んでいます。
※そもそもスクラムとは何かという方はネット上のスクラムガイドを見ていただくか、
書籍(スクラム・ブートキャンプ・ザ・ブックやアジャイルサムライ)を読んでください。
■他スクラムとの関わりはどうなの?
さてMS化することで普段我々は他のMSを意識せず働くことができます。
MS間のコミュニケーションは偉い人たちが取って平仄を合わせてくれますから大丈夫です。
具体的には週一の定例会で各MSのスクラムマスターと開発チームのリーダー達が集まりウェブ
会議を行っています。
ただ私のような開発メンバーでも他MSと全くコミュニケーションを取らないわけでは
ありません。
例えばこちらのMSで取得したデータを別MSのAPIのリクエストとして渡す場合、
向こうと認識合っているのかどうか確認するとします。
※一応各MSのAPIやバッチの設計書はまとめてあるので見ることはできますが、
認識合わせは必要です。
そんなときはslackを通して他MSとコミュニケーションを取ります。
slackではMSごとにチャンネルが用意されており、主に内部での議論に使われておりますが
それは他のMSからも見れます。
(内部用のprivateチャンネルもありますが一旦置いておきます。)
議題が上がったスレッドで他MSメンバーへ向けてメンションし呼び寄せることで
スレッド上にて擦り合わせをします。擦り合わせが足りないとバグとして顕在化し、
結合テスト以降は特にMS同士のやり取りが増えたりします。
■スクラムイベントはどのスケールで実施しているの?
- スクラムイベントはその目的によってそれぞれスケールが違います。
- ・デイリースクラム、夕会...毎日MS内で行います。
・スプリントレビュー...全MSが集まり各MSごとに時間を決めて順にMVP内の画面の動きを
プロダクトオーナーに見てもらいます。
・レトロスペクティブ...Redmineのチケット起票でKPTを実施します。まずMS内で実施後、
他MSへ横展したい内容を全体のレトロで共有しています。
・スプリントミーティング...MS内の要件定義チームが実施していると思われます。
私は開発チームなので参加していません。
■まとめ
以上、えいやっと全体像とイベントだけなぞってみましたがいかがだったでしょうか。
要約すると大規模スクラム開発ではスクラムとして無理のない人数まで何層にも分割することで
実現しているということです。が、あくまで私の所感です笑
問題点をあげるなら分割できているからこそMS間やMS内チーム間のコミュニケーションロスが
起きやすいこと、それを埋めるためのやり取りやウェブ会議が多く作業時間が少なくなってしまい
残業が増えることでしょうか。。。
そんなときは文句を言いながら楽しくやっていきましょう。
以上、ご愛読ありがとうございました。