12
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【スクラム開発】ETロボコンで学んだ、若手が成長するマネジメントのカタチ

Posted at

:dart: こんな方におすすめ!

  • 若手育成のための手段に悩んでいる!(上司)
  • マネジメントスキルを養いたい!(若手)
  • スクラム開発を取り入れたい!

1. はじめに

こんにちは。

私は情報システムやサービス運用の研究開発業務を担当するグループに所属している初級エンジニアです。

今回、業務の一環としてETロボコン2025に参加してきました!
若手だけ(入社1年目と2年目)のチーム「めるこ丸」として試行錯誤を重ねた結果、南関東地区大会で総合4位、IPA賞を受賞、そしてCS(チャンピオンシップ)大会出場を達成することができました :tada:

SNS用写真_IPA賞.jpeg

本記事はETロボコンへの挑戦を通して、若手だけでスクラム開発を実践し、チームをマネジメントしながら学んだことをまとめていきます。
使用した手法やツール、体制づくりの工夫なども紹介しますので、「若手育成」や「チーム開発の仕組みづくり」に関心のある方の参考になれば幸いです。

本記事に記載されているその他の製品および会社名は、それぞれの所有者の商標である場合があります。

2. ETロボコンってなに?

ETロボコン(Embedded Technology Robot Contest)とは、組み込みシステム分野における技術教育・人材育成をテーマとしたETソフトウェアデザインロボットコンテストです。

各チームは「走行体」と呼ばれる二輪ロボットを使い、与えられたコース上をゴールを目指して自律走行させます。
走行体にはカメラやカラーセンサ、ジャイロセンサなどが搭載されており、それらの情報をもとにラインをトレースしたり、障害物を回避・運搬したりして走行します。

企業や大学など、全国から多くのチームが参加しており、設計から実装、走行までの一連の開発プロセスを通じて、ソフトウェア開発の本質を学べるのが大きな魅力です。

以下に主な特徴、日程についてまとめます。

ETロボコンには協議内容の難易度に応じてエントリークラス、プライマリークラス、アドバンストクラスの3つのクラスが用意されています。今回私たちはプライマリークラスに参加しました。

:robot: 主な特徴

特徴①:モデリング(設計力)を学べる!

ETロボコンでは、まず構造や振舞を設計図として整理することが求められます。
UMLなどを用いて、提供されるテンプレート(PowerPoint形式)に従ってモデルファイルを作成します。
以下にモデルファイルの構成について示します。

  • アブストラクト:チームの意気込み、モデル概要、モデル構成
  • 機能モデル:ユースケース図、アクティビティ図など
  • 構造モデル:パッケージ図、クラス図など
  • 振舞いモデル:ステートマシン図、シーケンス図など
  • 工夫点:実装にあたって工夫したポイント

これらのモデルを作成することで、チーム全員が共通の理解を持ちながら開発を進めることができ、後の実装もスムーズに進むようになります。

このモデルファイルはETロボコンスタッフの方々に審査いただき、A~Dランクで評価されます。

特徴②:制御(実装力)を学べる!

設計したモデルをもとに、走行体を動かす制御プログラムを作成します。
ここでは、センサ情報やモータ制御、カメラを組み合わせて、ロボットが自律的にコースを走行できるように実装する力が求められます。
主に使用する言語はC++です。

大会当日は、走行体をコース上で走らせ、競技規約に基づいた採点基準によって評価されます。
モデリング評価と走行ポイントを総合的に評価し、最終スコアが決定します。

特徴③:システム開発プロセスを学べる!

ETロボコンは単なるロボット競技ではなく、開発プロセス全体を経験できる学習の場となっています。役割分担、スケジュール管理、成果物のレビューなど、チーム開発に必要なスキルを実践的に学べます。

私たちのチームでは、このプロセスの中でスクラム開発手法を取り入れました。
スクラム開発を用いることで、タスクの可視化や進捗管理、フィードバックの循環を意識しながらアジャイルに開発を進められます。

スクラム開発については次章で紹介します。

:calendar_spiral: 年間スケジュール

ETロボコンの年間スケジュールは、設計フェーズ実装フェーズ競技当日の走行という流れになります。
最初は設計・モデリングを行い、中盤は実装・調整を進め、最後に大会参加です。

image.png

CS大会に出場するためには、地区大会にて上位の成績を収める必要があります。

3. スクラム開発ってなに?

スクラム開発とは、ソフトウェア開発を効率的に進めるためのアジャイル開発手法の1つです。詳細な理念等については、以下のスクラムガイドをご参考ください。

特徴として、短い期間で計画・実行・レビューを繰り返しながら、チームで進捗や課題を可視化し、改善を積み重ねていく点が挙げられます。

以下にスクラム開発で重要な用語を示します。

  • スクラムマスター(SM):スクラムを正しく実践できるようにする支援者
  • プロダクトオーナー(PO):開発の方向性を決める責任者
  • スプリント:短い期間で成果物を作る単位
  • バックログ:開発すべき価値(タスクや機能)の一覧
  • デイリースクラム:毎日行う短い進捗確認ミーティング
  • レビュー:スプリントの成果物を確認し、改善点を話し合う場
  • レトロスペクティブ:開発プロセスやチーム運営の改善点を振り返る場
  • プランニング:次のスプリントで何を達成するか計画を立てる場

スクラムを導入することで、若手メンバーが中心となってタスクや進捗を管理し、自律的にチームを回す経験を積めると考え、採用しました。

マネジメント担当のメンバーはスクラム開発を円滑に進めるため、Scrum Inc.の認定スクラムマスター資格を取得しました。
参考ページ:https://scruminc.jp/training/master/

4. 「めるこ丸」の開発体制

私たちのチーム「めるこ丸」は入社2年目メンバー4名と、1年目メンバー4名の計8名からなる若手チームとして開発を進めてきました。
前述の通り、開発手法にはアジャイル開発のスクラムフレームワークを採用しました。

スクラム開発はチームに合わせて柔軟に形を変えることが推奨されています。
私たちもその考えに沿って、自分たちのスタイルに合うようにアレンジして実践していました!《スクラムガイド参照》

一方で、ETロボコン以外での業務作業もあるなかでの参加であったため、ETロボコンのみにフルコミットすることはできませんでした....
そこで、限られた時間の中でも効率的に開発を進められるよう、以下の体制で取り組みました。

  • 開発手法:スクラム開発
  • スプリント期間:2週間
  • 作業日
    • 1年目:週3(月、水、金)
    • 2年目:週1(水)
  • イベント
    • デイリースクラム:週3(作業日の朝)
    • レビュー&レトロ&プランニング:2週に1回(スプリント期間の最後)

スクラム開発を進めるうえで必ず決定しなければならないのが、
「スクラムマスター(SM)」と「プロダクトオーナー(PO)」です。

私たちのチームでは、2年目メンバーはマネジメント側としての経験を積み、1年目メンバーは開発を通じて技術的に成長することを目的としていました。
そのため、SMとPOの役割はすべて2年目メンバーが担当し、1年目メンバーは設計・開発担当としてモデリングと実装を中心に取り組む体制を採用しました。

2年目メンバーは前回大会(ETロボコン2024)に参加しており、実装を経験しているため、マネジメント側の経験を積むことを重視しています。

これらの役割は2年目メンバーの中で2人ずつが分担し、1スプリントごとに交代制で担当しました。
この体制により、2年目メンバーはマネジメントスキルを実践的に学び、1年目メンバーはそのサポートを受けながら、技術力やチーム開発スキルを高めることができました。

結果として、チーム全体としてもスクラムの理解が深まり、学びの循環が生まれる開発体制を築くことができました。

以下では、具体的な開発プロセスを使用ツールの観点から紹介します。

:hammer_pick: 使用ツール

:flag_black: GitHub

GitHubは、ソースコードのバージョン管理や共同開発を支援するプラットフォームです。

GitHubでは、主にソースコードの管理とバックログの管理をしていました。
社内のプライベートリポジトリを作成し、コードのバージョン管理を行いながら、Projects機能を利用してタスクの進捗を管理しました。
各バックログには作業前にポイントを設定し、スプリントごとの作業量を定量的に把握できるようにしました。
また、GitHub Copilotの導入により、コードレビューを効率化することができました。

以下に具体的な使用例を示します。

ソースコード管理

ブランチはmaindeveloparea/~feature/~といった粒度で運用していました。
開発中の機能はfeatureareaブランチで実装し、動作確認後にdevelopへマージする運用とすることで、チーム全体で安全に開発を進められるようにしました。

image.png

バックログ管理

Projects機能を利用して、各バックログに対して優先度、ラベル、マイルストーンを設定していました。
また、作業見積ポイントを事前に付与することで、スプリントごとの作業量を定量的に把握できるようにしていました。
これにより、次のスプリントでどの程度の作業を見積もるべきかの判断ができました。

image.png


:pencil: Miro

Miroは、オンライン上でホワイトボードのように作業ができるツールです。

Miroでは、スプリントごとにスペースを分け、成果物や決定事項など様々なものを整理していました。
具体的には、スプリントボード、レトロスペクティブ資料、進捗(画像付き)、目標、今後の方針、ルールなどを1つのフレーム上にまとめることで、チーム全体がスプリントの内容を一目で把握できるようにしていました。

とにかくMiroは、形式にとらわれず自由に書き込める点がとても使いやすかったです!
誰でも付箋を使ってバンバンとアイデアや意見を書き込みやすくなっており、チームのコミュニケーションの活性化にも役立っていたと思います。
また、付箋やコメントを自由な位置に追加できるため、情報の更新が多い成果物の進捗管理に非常に有効でした。

以下に具体的な使用例を示します。

ホワイトボード全体

ETロボコン用に1つのボードを作成し、その中で複数のフレームに分けて運用していました。
ボードを複数作成してしまうと、どのボードに何があるかが分かりにくくなるためおすすめです!

image.png
コース画像の参照元:ETロボコン競技規約

スプリントボード

各フレームには必ずスプリントボードを記載していました。
スプリントボードとは、1つのスプリント内でのタスクや成果物、進捗状況などを可視化するためのボードであり、私たちのチームでは以下のような構成で運用していました。

  • スプリントゴール:そのスプリントで必ず達成したいゴール(バックログから抜粋)
  • 進捗確認表:現状どのスプリントゴールが達成されているかの確認表
  • バーンアップチャート:スプリント内の作業完了状況を時間経過とともに可視化するグラフ(GitHubのProjectsから自動生成されたものを添付)
  • 天気予報:現スプリントで実行できた作業量から、次スプリントの作業量を計画するための表
  • 掲示板:メンバーに伝えたいことや残したいことを付箋で書き留める場所

image.png

このようにスプリントボードを用いることで、チーム全員がスプリントの進捗や課題を一目で把握できました!

また、スプリントボードは単に進捗を確認するだけでなく、スプリントレビューやスプリントプランニングにも活用していました。

スプリントが進み、設計フェーズから実装フェーズに移ると、一目で確認したい項目も変わってきます。
そのため、以下に示した図のように、柔軟にボードの内容を変更して運用していました。

image.png
コース画像の参照元:ETロボコン競技規約

レトロスペクティブ

レトロスペクティブとは、スプリント終了後にチームでプロセスの振り返りを行うスクラムイベントであり、Miro上で実施していました。

ふり返りでは以下のQiita記事を参考にし、ファン・ダン・ラーン(Fun/Done/Learn)手法を活用しました。
この手法は、スプリントで「楽しかったこと(Fun)」、「完了したこと(Done)」、「学んだこと(Learn)」の3つの視点で付箋に書き出すことで、チーム状況や気づきを整理しやすくするものです。

レトロスペクティブの進め方は以下の通りです。

1. メンバー1人ひとりでやったことを付箋に書き出し、あてはまる場所に貼る(5分)
2. スプリント全体としてどうだったかという視点で各メンバーが図に点をつける(1分)
3. 次回スプリントに向けての課題などの想いを付箋に書き、Problemに貼る(2分)
4. 次回スプリントで取り組みたいことを付箋に書き、Tryに貼る(2分)
5. 内容を共有し、次回のスプリントで取り組む”カイゼン”のバックログを決める(10分)

ファン・ダン・ラーン手法を自分たち用にアレンジして使用しているため、紹介したQiita記事の内容と一部異なる点があります。あらかじめご了承ください。

image.png

Miroを使うことで、付箋をペタペタと簡単に貼れるため、チーム全員が積極的に参加できました!


:a: astah*

astah* は、UMLを中心とした統合モデリングツールです。

astah*では、走行体がコースを完走するためのUML図を作成するために使用していました。
具体的には、ユースケース図やクラス図、シーケンス図などのモデルの作成をしました。
作成したUML図の共有には、前述したMiroやGitHubを活用しました。


:mouse_three_button: VS Code

VS Code(Visual Studio Code)は、Microsoft社が提供する無料のコードエディタです。

VS Codeでは、設計したモデルに基づく走行体の制御プログラムの作成をしていました。
また、GitHub Copilotを拡張機能として活用することで、コーディングを圧倒的に効率化しました。


:telephone: Teams

Microsoft Teamsは、チャットや通話、ファイル共有を行えるコミュニケーションツールです。

Teamsでは、主に会議の設定や情報・ファイル共有をしていました。
スクラムイベントの会議や録画、作成したドキュメントの共有、メンバー間での知見共有など、チーム内のコミュニケーション基盤として大活躍でした!

5. マネジメントを経験して学んだコト

約半年間、チームをまとめる立場として活動する中で、得られた学びや気づきを紹介します!

:bulb: よかった・今後に活かせそうなコト

■ スクラムのおかげで楽しくチーム開発ができた!
毎回同じ曜日・場所にメンバーが集まって作業することで、ワイワイとした雰囲気の中で作業できました!
その場で課題共有や方針決めができたため、待ちの時間が少なくなることで開発スピードも上がり、チームで進める楽しさと効率の両方を感じられました。

■ チームのスケジュール感を意識できるようになった!
各スプリントの計画を立てる中で、見積もりと実際のズレを調整したり、優先度を見直したりすることを繰り返しました。
タスクを割り振るときには、他のメンバーの進捗や負荷も意識するようになり、チーム全体を見渡して動けるようになったのが大きな成長でした。

■ ツール活用をゼロから設計できた!
GitHubやMiro、Teamsなどのツールをどう使えばチームが動きやすくなるかを、自分たちで考えて整備しました。
それぞれの役割を試しながら、自分たちなりの最適な使い方を作っていく過程がとても勉強になりました。

■ 多くの社内ルールを実践的に学べた!
走行体やコースの購入、場所の確保、通信ネットワークの構築、購入した機器の扱いなど、開発以外の運営面も全てこなしました。
企業ごとに独自の社内ルールがあるかとは思いますが、若手のうちに様々なルールや申請の経験ができたことは、今後プロジェクトを進める上での大きな財産になりました!

:cloud: 難しかった・改善したいコト

■ 顧客がいない中で「価値向上」を意識する難しさ
ETロボコンは競技形式のため、明確な”顧客”がいません。
そのため、レビュー時に「顧客価値を高める」観点で話すことが難しく、スクラムの本質的な部分とズレが生じてしまうのではないかと途中で悩みました。
今後は開発を始めた段階で、何を観点にレビューするかを明確にする必要があると感じました。

■ リーダー不在の中での意思決定の難しさ
入社2年目メンバー全員がマネジメントを学ぶために、リーダーを置かずに開発を進めていました。
もちろん、マネジメント経験としてはとても有意義でしたが、誰が最終的に決定するかといった点が曖昧になりやすく、意思決定に時間がかかってしまう場面が何度かありました。
メンバー内で責任の所在は分けていましたが、そのバランスやルールの整理が今後の課題だと感じました。

■ 効果的なバックログ運用の難しさ
バックログを作成した際、内容をPOに確認してもらうというルールにしていました。
ただし、POが全作業日に参加できるわけではなかったため、確認待ちのタスクが発生してしまうこともありました....
もっと自由に作成・更新できるようなルールや雰囲気づくりを整えたかったと感じました。

6. おわりに

今回はETロボコンへの挑戦を通して、若手だけでスクラム開発を実践し、チームをマネジメントしながら学んだことをまとめてみました。

この半年間の経験を通して、チームをまとめる難しさと楽しさの両方を実感しました。
若手だけでプロジェクトを回すことで、自律的に考え、行動する力を大きく伸ばすことができたと思います!
今後はこの学びを活かして、他の業務でも視座を1段階高めて取り組んでいきます!!

若手の育成方法に悩んでいる方や、スクラム導入を検討している方の参考になっていれば幸いです。

最後までお読みいただき、ありがとうございました。

12
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?