ボランティアプロジェクトを通じて学んだ「がんばらないアジャイル開発」
株式会社ゆめみ(以下、ゆめみ)でデベロッパーとして働く浜名将輝氏は、学生時代は論理回路設計の研究を専攻しており、Web開発経験ほぼゼロの状態で2020年に同社に入社。以来、サーバーサイドエンジニアとしてKotlinやSpring Bootを駆使した開発業務に従事している。また本業と並行して、学生時代から「LED-Camp」という組込みシステム初学者向けのセミナーの運営にボランティアとして参加している。
LED-Campは、3泊4日の合宿形式で組込みシステムのアジャイル開発やチームビルディングを体験できる初学者エンジニア向けのセミナー。参加者はいくつかのチームに分かれ、モデリングツールや3Dロボットシミュレータなどを使ってシンプルなロボット制御プログラムを開発する。ロボットには測距センサーや色識別センサー、移動用のモーターなどが搭載されており、これらをうまく制御してゲームで高得点を挙げることを目指す。
年1回のペースで開催されているこのLED-Campは、浜名氏を含む約10名の学生や社会人のボランティアで構成される「LED-Camp実行委員会」が運営している。浜名氏によれば、ボランティアで運営することにはいい面もたくさんある半面、苦労もあるという。
「ボランティアの人たちは志を持った優秀な方ばかりなので、そういう人たちと一緒にモノづくりをすることはとてもいい経験になります。その半面、ボランティアは仕事や勉学、プライベートの空き時間で活動するため、仕事で行う開発にはないさまざまな苦労が伴います」(浜名氏)
メンバーはそれぞれ異なる組織や環境に身を置いているため、どうしても活動時間に個人差が生まれ、また全員そろって顔を合わせる機会もなかなか取れないためチームの状況を把握するなど共通認識を取りにくい。こうした制約の中、ボランティアプロジェクトをうまく回してくために浜名氏らが採用しているのが、一般的なアジャイル開発手法を独自にカスタマイズした「がんばらないアジャイル」。そのコツの1つとして、浜名氏は「メンバーのやりたいことを尊重する」を挙げる。
「なるべく各人が『やりたいこと』『試したい技術』を尊重した活動方針を立て、誰もがやりたくないことは全員で手分けすることでメンバーのモチベーションを保つ工夫をしています」(浜名氏)
また、「スケジュールを詳細にしすぎないこと」も重要である。メンバー個々人の稼働時間がばらばらである以上、タスクが予定通りに進まない事態はどうしても避けられない。そのため、タスクの順番は決めるものの、厳密なスケジュールはあえて決めずに、全体のタスク進捗状況をバーンアップチャートで管理するレベルにとどめている。定例ミーティングも週1回ペースではなかなか全員が顔を合わせられず、開催したとしても報告内容が少ない割にメンバーの負担ばかりが増えるため、2、3週間に一度ぐらいのペースにとどめている。
ただし、成果物のレビューだけは決して手を抜かず、メンバー全員で行うようにしている。「レビューは手間も時間もかかるタスクですが、これをおろそかにすると間違いなく後悔することになるので、定例ミーティングなどの場を捉えて必ず全員で行うようにしています。またレビューすることで他のメンバーの作業状況が把握できますし、自身にとっても勉強になります。さらに修正点を指摘するだけでなく、優れた点を互いに褒め合うことでメンバー間の関係性も良くなります」と浜名氏は言う。
そして最後のポイントとして、浜名氏は「あえて余力を残すこと」を挙げる。全員が多くのタスクを抱え込んでしまうと、どうしてもレビューがおろそかになり、またチーム全体の状況も把握しづらくなってしまう。そこで、あえて「タスクを明示的にアサインしないメンバー」を決めておき、他のメンバーが多忙の際にタスクを引き取ったり、全体レビューの前に一次レビューを行ったりしている。
「なかなか予定通りに準備が進まずに、本番が近づいてくると胃が痛い思いをすることもありますが、こうして『がんばらないアジャイル』を実践することでボランティアプロジェクトを可能な限り円滑に回す工夫をしています。なお、私たちと一緒に実行委員会として活動してくださる方も随時募集しているので、興味を持たれた方はぜひ気軽に声を掛けてください」(浜名氏)