技術力向上のためにエンジニア組織全体で取り組んでいること
エムスリーキャリア社のFY23 Advent Calendarは、近藤(@atkondo)からスタートさせて頂ければと思います。
私からはエンジニア組織全体の取り組みについて述べさせて頂きます。
FY23には、組織としては以下のような課題が顕著となって来ていました。
・1つのチームが5名前後でチーム内の育成には問題が無いもののの、さらにチームを超えたレベルアップの仕組みが不足している
・要件定義や仕様調整能力をレベルアップしたい
・Modern Data StackやChatGPTなどの新しい技術にキャッチアップして行きたい
FY24では3つの取り組みを実施しています。
・レビュー力アップ(→技術標準の設定)
・学ぶ場の形成
・新規技術への取り組み
レビュー力アップ(→技術標準の設定)
この施策のきっかけが生まれたのは、チーム内に閉じたサポートでは、チーム内の知見、経験を超えたフォローが難しいのでは無いか?という意見でした。
当社では1チームが4〜6名程度のサイズで、9チーム存在しています。
コードレビューのスタイルとしては全員でレビューを行うチームもあれば、当番制で行っているチームもあります。
レビュー力アップの取り組みでは、チーム相互レビューということを実施してみました。
レビューを受けるチームのメンバーから概要を説明した後、もう片方のチームがレビューをしてみる、簡単に振り返るという段取りで実施してみました。
1、2度の取り組みでは、レビュー観点での気付きを得るというところまで行くのは難しいですが、他チームのシステム、技術、開発の進め方などへの関心を増すことができたという効果はあったかと思います。
下期からチームで採択している技術のうち、未採用であれば取り入れたり、運用が異なっていればベターな運用に合わせて行くという、技術標準化につながっています。
具体的には、WAF,CI/CD,Docker,Terraformなどをテーマとしています。
学ぶ場の形成
・ 「ソフトスキル(特にコミュニケーション)」
この施策が必要では無いか?という話が上がったのは、ビジネスサイドとの要件定義や仕様調整を担当するメンバーが増えたことがきっかけでした。
取り組みの1つとして実施したのが、グループワークです。ソフトスキルとは何か?どのような試みがコミュニケーションを円滑にすることに繋がるのか?議論してみました。
グループワーク後に、行動として試みていることは、ビジネスサイドの方々座っている座席島にお邪魔して業務を行うということです。
グループ外留学とネーミングしています。すでに5名ほど数回に渡って実施しており、直接話をせずとも日頃どのような会話がなされているのか聴こえてくる会話を聴いているだけでも、業務の背景などへの理解、解像度が上がりつつあるようです。
・ 「ソフトウェア設計スキル」
同様にメンバーの中からはソフトウェア設計スキルを上げて行く機会が欲しいという声が上がりました。
取り組みとして実施したのが、アーキテクチャを語る会です。日頃疑問に思っていることをざっくばらんに語り合う、相談し合うという場です。
数回のステップを得て、会社全体のシステムのアーキテクチャーを再考して行く場に昇華して行きたいと考えています。
当社では現在、システムグランドデザインを作成しています。30〜40ある事業の垂直的な立ち上げ時期から、お客様に向けたシームレスなサービス提供を可能とする時期に変化して来ていると考えています。
検討に当たっては、デジタル庁 「データ連携基盤の整備について 公共サービスメッシュの整備(P5)」などを参考にさせて頂いています。
新規技術への取り組み
今季は2つの技術について取り組んでいます。
1つはデータ基盤(DataModern Stack)、もう1つはChatGPT (AzureOpenAI / GithubCopilot)です。
・ データ基盤(DataModern Stack)
これまでのデータ基盤はDWH(AWS Aurora) + BIツール(Redash等)という形式でした。ただ、ここ数年、サービスをシームレスに提供するために、データ連携をさせたいというニーズが高まって来ています。
さまざまデータソースからデータを取得して、かつ、集計データを保持するということで、BigQueryを用いて以下のような構成を新たに構築しました。
Datalake→DataWarehouse→DataMart
また、ETLツールとして、troccoを採用して、データ転送をより分かりやすい仕組みに変更しています。
現時点では、地理空間データをさまざまなサービスで利用できないか?などプロトタイプによって検討を進めています。
・ ChatGPT (AzureOpenAI / GithubCopilot)
当社では社内ChatbotとしてAzureOpenAIを、コード支援としてGithubCopilotを利用しています。
今後はサービス/業務上の直接的な用途に利用をして行こうと、ワーキンググループにて試験的な活用を進めています。