みなさん、こんにちは!
ポーラ・オルビスホールディングスのITプロダクト開発チームでエンジニアをしている中村です。
ITプロダクト開発チームは2023年に発足し、グループ会社内で使用するシステムの開発を行ってきました。我々は成長途中のチームであり、より良い方法を日々模索しながら開発を進めています。そこで、チームの成長を加速させるために、これまでの開発を通じて得た各々の気づきを共有して意見交換をする会、題して「わいがや会」を実施することにしました。本記事ではその取り組みについてご紹介します。
※本記事は 株式会社ポーラ・オルビスホールディングス Advent Calendar 2024 の19日目の記事です。ITプロダクト開発チーム以外の方々からも多くの記事が投稿されていますので、ぜひご覧いただけると嬉しいです!
わいがや会の概要
目的
- 開発を通じて得られた気づきや課題を共有して、チームの方向性を合わせる。
- 各々のナレッジを共有することで、チームの開発力を向上させる。
参加者の事前準備(チームメンバーに以下の依頼をしました。)
- これまでの開発を通じて気がついた、技術的な課題・改善点をPowerPoint 1~2枚程度にまとめてください。
- 現行システムの「ここはこうした方が良いと思う」や「なぜこのような構成になっているのか?」等の意見や疑問も歓迎です。
進め方
- ITプロダクト開発チームのエンジニア 12人全員が参加する。
- 発表者の持ち時間は10分。発表は5分程度で行い、残り時間はチームで意見交換する。
- 全体として2時間で実施し、深掘りしたい議題があれば別途時間を設ける。
備考
- オフラインで実施する。お菓子を食べながらわいわい楽しみましょう!
- わいがや会での内容は社内のQiitaTeamに公開する。
メンバーの発表と意見交換
当日の発表ではたくさんの良い意見が出ましたが、今回は3テーマに抜粋してご紹介します。テーマの一覧は下記「事後アンケートと今後の取り組み」の表に記載しています。
1テーマ目
サーバレスアプリケーション開発に特化したAWS SAMを導入したい!
※ 我々のチームではサーバレスアプリケーションの開発をしています。
※ 現在はCDKを利用して、AWSサービスの自動構築を行っています。
※ SAM(Serverless Application Model)はAWSのIaCサービスの一種でCloudFormationやCDKに同じような機能を持ちます。
CDKに対する課題
- 現状、我々の構成だとCDKは単体レベルでしかローカルではテストできない。
- 結合レベルでテストを行う場合、一度AWS上にデプロイする必要がある。
- もしくは、手動でコンソール上からテスト用のLambdaを作成しなければならない。
SAMを導入すると・・・
- ローカル環境でアプリケーションを実行・テストできる。
- API Gateway + Lambda関数などの動作をシミュレーションできる。
- Lambdaの単体テストだけでなくAPI Gatewayを通じた結合テストを行える。
- 共同開発を行うにあたり、開発効率の向上が期待できる。
発表後の意見交換
- ローカルで動作確認できることは、大きなメリットだと感じた。
- SAMへの移行にどれ程の工数がかかるかという点が気になる。
- スモールスタートで一部を試験的に導入するのはどうか。
2テーマ目
設計書をMarkdownで記載し、Git管理にしたい!(脱Officeソフトでの設計書管理)
※参考 Markdownで設計を書いてみよう
ねらい、メリット
- Gitを利用することで設計書の証跡管理がしやすくなる。
- チケット駆動開発との相性が良い。
- 設計書の変更とコメントが紐づくので後から振り返ってまとめやすい。
- 資料の体裁調整に割く工数を削減できる。
- 作図も可能であり、MermaidやDraw.ioを埋め込むことができる。
- Mermaidであればキーボードのみの利用で効率よく作図できる。
- VS Codeですべての作業を完結することができ、PCの動作が重くならない。
- 外部に連携する際はHTML書き出しをすることでブラウザ閲覧も可能。
- Markdownへの移行は設計書ごとにチケット管理すると良い。
Officeソフトの使いどころ 、特徴
- Git管理に慣れていないメンバーがいる場合は、扱いやすいExcelが向いている。
- Excelは表計算ソフトであり集計には向いているが、設計ドキュメントの作成に最適化されているわけではない。
発表後の意見交換
- 導入するにあたり、MermaidとPlantUMLを比較検討するべきだ。
- まずはスモールスタートで一部の設計書をMarkdownで作成して効果を測定したい。
3テーマ目
GitHub Copilotを使い倒そう!
ねらい
- GitHub Copilot をコーディングのサポート役として利用し、開発速度を向上させたい。
GitHub Copilotでできること(当日の発表では実演してもらいました)
- コメントからデータベースのモデルを自動生成させる
↑ モデルを手作業で作るのは面倒だな・・・ - 既存のソースコード処理の概要を説明させる
↑ このチケット引き継いだけど処理はどうなっているの・・・ - コードレビューをさせる
↑ もっと適切な書き方があるのかな・・・ - テストコードを作成させる
↑ テストパターンを一から作るのは面倒だな・・・
発表後の意見交換
- DB設計が記載されているCSVをCopilotに流し込むだけで、DBのモデルを作成できるのはとても便利。
- 精度はそこまで高くないのでひな型をCopilotに作成させ、人間がアップデートしていくと良いのではないか。
- Copilotが理解できるようわかりやすくコメントを書くことで、人間にとっても理解しやすい内容になる。
事後アンケートと今後の取り組み
わいがや会実施後に「実際の開発に取り入れるために、深掘りしたいテーマを教えてください。」というアンケートを取りました。結果は以下の通りです。
アンケートの結果、「設計書の管理方法の改善」にチームメンバーの関心が高いことがわかりました。早速、このテーマを実際の開発に取り入れるための、題して「わいがや深掘り会」を企画し、チームメンバーで導入方針について話し合いました。まずはスモールスタートとして一部の設計書をMarkdownに移行して効果を確認することにしました。実際に効果があれば、すべての設計書を移行していく予定です。また、別のテーマについても別途深掘り会を実施し、開発に反映していきたいと考えています。
まとめ
今回、わいがや会を実施したことでチームメンバーがどのような点を課題に感じ、どのように改善すべきだと考えているのかがメンバー間で共有され、チームの一体感が増したと感じています。また、チームの問題点を自分事として考え直すことで、チームの価値を高めていくために何をするべきなのかという点が個人単位でも整理されたのではないかと思います。
当日はチームメンバーと様々な角度から意見交換ができ、とても有意義な時間になりました。オフラインで集りわいわいがやがやするのは純粋に楽しく、メンバー同士の距離感も縮まったかと思います。
今後は、今回の気づきや改善点を実際の開発に反映し、チームの価値を高めていくためにもこのような活動を継続していきたいと考えています。