本記事は、ETロボコン参加チームからの寄稿記事を集約した「ETロボコンに参加しませんか 成功事例集1」(2019/2/13発行)からの転載記事です。今回は九州南地区から参加の、宮崎大学大学院の平木場風太様による記事を紹介します。
開発スピードの向上
こんにちは!私はK-Labの平木場風太です。現在は、宮崎大学大学院工学研究科の修士課程の学生です。私は、チーム開発、および、モデリングの勉強を目的として、2017年4月から2018年11月にかけて、ETロボコンに参加しました。初参加は2017年で、今回は2回目の挑戦です。
ETロボコンに参加して学んだことはたくさんあります。一番学べたことは、チーム開発を円滑に進めるためのノウハウだと思います。2017年大会でもチームで開発していたのですが、メンバー間での作業量に大きな差がでてしまい、目標としていた地点までの実装が終わりませんでした。この原因は、メンバー間の技術力の差が大きかったことだと考えました。そこで、2018年の今大会では、メンバー間の技術力の差をなるべく小さくするために、新たにチームに加わったETロボコン未経験者向けの勉強会(テーマは、C++やUML、オブジェクト指向など)を開催しました。これにより、未経験者の持つ知識量を底上げでき、開発スピードが速まりました。それだけでなく、ビルド環境とテスト環境をDockerで構築し、開発環境の統一と、CIツールを用いた回帰テストおよびAPIリファレンス生成の自動化を行いました。開発者は環境構築や、環境依存の問題対応、リファレンス作成、デグレードしていないかの確認などの、余計な時間を取られることが少なくなり、開発に集中することができました。
これらだけでも、2017年大会に比べて開発スピードは大きく向上したのですが、その先に見えてきた問題がありました。それは、著しく進捗が遅いメンバーが出てきたことです。私たちは、誰が、どのような作業に対して適性があるかを事前によく考えていなかったために、担当する作業を半分押しつけるような形でメンバーに割り振ってしまっていました。そのために、各人の作業内容の得意不得意から、進捗に大きな差が出てしまったのです。対応として、該当メンバーに対して面談を行うことによって、現時点でどの程度の能力を持っているか、何を得意とするかなどの分析を行い、作業をメンバー間で再分配することで、メンバーの能力を最大限に引き出そうとしました。この方法はある程度の効果が出たと考えます。しかし、既に開発も佳境に入っており、今大会でも、目標としていた地点までの実装が終わりませんでした。もう少し早くから対応するべきだったと反省しています。
チーム開発を円滑に進めるため
私たちは、チーム開発を円滑に進めるために、大きく3つのことを行いました。
・メンバーが持つ技術を底上げし、メンバー間の技術差を減らすこと
・自動化できる部分は積極的に自動化し、開発者を開発に集中させること
・メンバーの持つ得意不得意を分析し、能力を発揮できる仕事を与えること
これらを行うことで開発スピードは向上しましたが、まだまだチーム開発を円滑に進めるためにできることはあるはずです。今回行ったことをさらに発展させて、次回の大会に臨みたいと考えています。
最後に、次回以降の大会では、今大会を通して得た経験を元に、以下のことを行う予定です。
・他のチームに比べて、技術面で遅れている部分が多いため、技術水準の向上を狙う(具体的には、カメラシステムの利用や、ラインがない場所での移動精度の向上などです)
・モデル作成のノウハウを持つ一部メンバーのみでモデルを作成してしまったので、メンバー全員のモデル作成に関する知識量の向上、および、経験量の増加を狙う
来年こそは、難所をすべて攻略し、上位に食い込みたいと思います。応援よろしくお願いします。