全3254文字
PR

 アジャイル開発の普及に伴い、複数のアジャイルチームを編成し1つのシステムを開発するプロジェクトが増えてきた。複数チームによるアジャイル開発であれば、大規模システムの開発が可能になる。本特集ではこの体制での開発を「大規模アジャイル」と呼ぶ。複数チームで開発をスムーズに進めるには、1チームでの開発とは異なる体制が必要だ。

 アジャイル開発の規模を拡大する手法の採用も増えている。代表例は「Scaled Agile Framework(SAFe)」「Large Scale Scrum(LeSS)」「Scrum of Scrums」などだ。これらは複数チームによる開発、または全社をアジャイルで変革する際に、開発者層や経営層が行う業務が決められており大規模開発に有効だ。

 ミクシィは子どもの写真や動画を共有するスマートフォンアプリ「みてね」の開発プロジェクトでLeSSを採用し、複数チームによる開発を進めている。この取り組みを基に複数チームによるアジャイルの勘所を見ていこう。

プロダクトオーナーの意向を反映

 みてねプロジェクトは主に4~8人程度のチームを編成し、複数のチームで開発を進める。スマホアプリを開発するチーム、人工知能(AI)などを使ったコンテンツを開発するData Engineeringチーム、開発の効率化や自動化、インフラ周りを整備するSREチームである。このうちアジャイル開発をするのは当初、スマホアプリを開発する1つのチームだった。

みてねプロジェクトの体制
みてねプロジェクトの体制
[画像のクリックで拡大表示]

 順調に開発を続けていたが、2019年秋に転機が訪れる。みてねのユーザー数の増加に伴い、新規機能や機能改変の要求が増えたのだ。プロジェクトリーダーを務める酒井篤みてね事業部開発グループマネージャーは、スマホアプリチームの開発者を10人に増やし、開発生産性の向上に着手した。

ミクシィの酒井篤みてね事業部開発グループマネージャー
ミクシィの酒井篤みてね事業部開発グループマネージャー
[画像のクリックで拡大表示]

 しかし開発者を増やすことで新たな課題が生じた。それが「コミュニケーションが取りづらくなったこと」(酒井マネージャー)である。スマホアプリの開発チームではメンバー全員でデイリースクラムや要件の検討などを行っていた。チームメンバーが増えたため、これらの作業に時間がかかるようになった。

 そこで酒井マネージャーはスマホアプリの開発チームを2つに分割し、5人の開発者から成る2チームで開発を進めることにした。分割に当たってはアジャイル開発のスケール手法であるLeSSを採用した。

 LeSSは複数のスクラムチームを束ねて大規模な開発を進めるためのフレームワークである。開発する製品は1つで、プロダクトバックログも1つだ。プロダクトバックログは要件や要求に基づいて開発チームが着手する優先順位を付けたリストである。スクラムマスターは複数存在してもよいが、プロダクトオーナーは1人。チームリーダーは交代しながら務める。そしてスプリントの期間は、各チーム共通で同じ日に開始・終了することなどが求められる。アジャイルのフレームワークの中では決め事やルールが少ないといえる。

 酒井マネージャーはLeSSを採用した理由を「シンプルで分かりやすかったこと、プロダクトオーナーの意向を反映したかったこと」と説明する。みてねの開発メンバーは2015年にリリースして以来、メンバーの入れ替えはあったものの1つのチームとして開発を進めていた。チームには蓄積した技術があり、メンバー同士でコミュニケーションを取る文化も醸成されている。

 新たに導入するフレームワークに決まり事が多ければ、一から開発体制をつくり直さなければならず、効率的ではない。そこで決まり事が少ないフレームワークを採用し、「これまでに培ったチームのノウハウを最大限に生かすことにした」(酒井マネージャー)。

 大規模アジャイルのフレームワークの中には複数のプロダクトオーナーを配置するものもある。しかし酒井マネージャーは「みてねはリリース当初から笠原健治会長がプロダクトオーナーを務めている。一貫したプロダクトを提供するためにも複数のプロダクトオーナーは必要ないと考えた」と説明する。