はじめに
皆さんHapInS Advent Calendarはいかがだったでしょうか? 色々なジャンルの記事が出ているので、まだ読んでない方はぜひ一読してみてください。 僕自身も勉強になる記事が多かったです!
本日はHapInS Advent Calendar 最終日ということで、2023年軌道に乗り始めたIT Solution (受託開発) 事業部を振り返っていきたいと思います。
2023年 総括
まずは受託開発事業部の2023年を数字で振り返っていきたいと思います。
チームメンバー
まず受託事業部のメンバーですが、今年一年で大きく増えました。
内訳は以下のようになっています。
- エンジニア: 1人 → 14人 (業務委託1名)
- デザイナー: 0人 → 4人 (業務委託2名,インターン1名)
- 営業: 0人 → 2人
- オフショア: 0人 → 2人
昨年末までエンジニア1名の体制だったところから始まり、20名以上を抱える組織となりかなり活気が出てきました! またデザイナーの方にも入社いただき、より良いプロダクト開発を行う体制作りが進んでいます。
入社時にはほぼ開発未経験で入られた方たちも、今ではしっかりと自走して開発が出来るようになり、みなさんの成長を感じられる場面も多く嬉しい限りです!
クライアント数
受託事業部で関わらせていただくクライアントの数も大きく増えました。
1日目の記事にもあった通り、昨年は8ヶ月の営業期間を経て取れた案件は0でした。
そんな状態から始まった今年の受託開発事業部ですが、1月から開始した学校法人様の案件を皮切りに1年間で17社のクライアントをお手伝いさせていただいてます。
クライアントの業種は多種多様で、知識が少ない業界のお手伝いをすることもあり勉強が必要な場面も多いですが、学びも多く楽しく手伝わせていただいてます!
開発成果物
今年1年でたくさんの開発を行ってきました。
平均すると毎月1,000件近くのコミット、200件近くのPRが作成されていることになります!
経験の浅いメンバーが多い中で、これだけのアウトプットを出せるのはかなり凄い状態だと思っています。
学習意欲、成長意欲が高いメンバー多く、皆さんかなりの勢いで成長してるなと実感しています!
受託事業部での取り組み
続いて今年取り組んだことや、選定して良かった技術などを共有していきたいと思います。
コミュニケーションの活性化
まずコミュニケーションについてです。受託事業部は基本的にフルリモートで働く体制をとっており、関東在住の方だけでなく様々な場所で皆さん働いています。
そのため日々のコミュニケーションを活性化するためにいくつか工夫をしています。
working out loudの促進
まずworking out loudの取り組みについて紹介します。
コンセプトに関しては以下の記事がわかりやすいため、ぜひ読んでみてください。
受託開発事業部ではチーム横断でworking out loudのslack botを導入しています。毎日14時になるとこのリマインダーが届き、メンバーは自分の作業を一呼吸おいて情報整理や共有を行うことができています。
それ以外にもチームによっては個人のworking out loudスレッドを立てて、自分の進捗や困っていることを発信してくれています。それを見かけたチームメンバーがサポートに入るなど、リモートでもお互いが協力できる場がうまく作られているかなと思います。
チームMTGの促進
また上記だけでなく、同期でのコミュニケーションも推奨しています。例えば技術共有会、相談会としてチームで集まり、今やっていることの共有や詰まっている部分の相談を定期的に行なってもらっています。
他にもモブプロ/ペアプロやチームでのQAなど、スクラムイベント以外にもコミュニケーションを促進する場を設けています。
技術選定の変更による開発工数の圧縮
続いて経験の浅いメンバーが多い中、どのように開発生産性を向上させたか共有します。今年取り組んだ内容で良かったものを大きく2つピックアップしました。
Hasuraの導入
まず一番効果が大きかったのがHasuraの導入です。HasuraとはデータベーススキーマからGraphQLのAPIを自動生成してくれるミドルウェアです。また昨年1億ドルの資金調達を行うなど、今勢いのあるスタートアップです。僕自身使ったことのないミドルウェアだったので、少し賭けの部分はありましたが採用して本当に良かったと感じています。
参考) 多機能なGraphQLサーバー: Hasura GraphQL Engineを知っておきたい人が読む記事 #React - Qiita
Hasuraを導入することでデータベーススキーマを定義すれば、シンプルなCRUDのAPIを構築する必要がなくなりバックエンドの開発工数が大幅に圧縮されます。そのため少ない人数でも開発を進めることが出来るようになります。また以下のような副次的な効果もありました。
- コードレビューや設計等もフロントにフォーカス可能なので、コンテキストの分断が防げる
- データベース構造が変わった際もフロントのみの修正で良いため、破壊的な変更を行うことへのハードルが下がり最適な設計を選択しやすくなる
もちろん複雑なロジックや、他サービスとの連携部分はバックエンドを開発する必要がありますが、今の規模感であれば80%程度の工数が圧縮できたと感じています。
一方でHasuraを導入することで以下のようなデメリットもあります。
- GraphQLのQueryを定義すれば自動でデータを取得できるため、クエリ効率を意識することができない
- HasuraのAPIのみでロジックを組み立てると、データ作成時のビジネスロジックなどがフロントに漏れ出してしまう など
この辺りはチーム横断でベストプラクティスに関する勉強会を開いたり、バックエンドを構築する割合を増やすことで今後解決していこうと考えています。
Tailwind CSS → Chakra UIへの変更
続いてデザインフレームワークの変更です。受託事業部はクライアントによって要件やデザインが大きく異なるため、元々は自由度の高いTailwind CSSを採用していました。一方で今年の始めの方はデザイナーがいなかったため、メンバーの開発スキルを加味するともう少し制約がある方がよいと考えました。
そこでいくつかのデザインフレームワークを比較し、結果Chakra UIを選択しました。各フレームワークの特徴は以下の記事が分かりやすいかと思います。
開発観点だけでなく、Compnentを定義しているFigmaが用意されていたり、直近メルカリやLayerXが採用してたりしたのも決め手の一つでした。
参考)
導入した結果、シンプルな画面に関しては開発工数が大幅に圧縮されました。また独自のデザインを組む際も、デザイナーの皆さんがChakraのComponentをベースに作る形を取ってくれているため、デザイン面の開発効率はかなり上がってきているなと感じています。
AIの活用による開発生産性の向上
続いてAIを活用した開発生産性の向上についても共有します。
Copilotアカウントの付与
まず受託開発事業部メンバーには、業務委託の方も含めてGitHub Copilotアカウントを全員付与しています。
GitHub Copilotを活用することで、定型的なコードは自動で生成してくれたり、自分の不慣れな実装についても大きくサポートしてくれます。また以下の記事でCopilot利用に関する調査結果が紹介されていますが、満足度や精神エネルギーにも関連しているそうです。ちなみに僕自身も、Copilotがないとコーディング出来ないくらい活用(依存)している状況です。
参考)
AIコードレビューの導入
続いてAIコードレビューについてです。現在受託開発事業部では、PRの一次レビューにCodeRabbitというAIコードレビューのサービスを利用しています。こちらを導入することで初回レビューのコストを低減することができました。導入については以下の記事を参考にしました。
一方で社内のコードスタイルに準拠した指摘が難しかったり、実際どこまでコストを下げられているか分析が出来ていないため、この辺りは来年取り組んでいきたいと思っています。
メンバーに対する思い
続いてメンバーに対する思いです。普段クライアントに対する僕やHapInSとしての考え方/スタンスについては発信していますが、内部メンバーへの思いは中々伝える機会がないため改めて書いてみようと思います。
僕はメンバーと仕事をする上で、以下の環境を提供することを徹底しています。
- 短期間で効率的に成長できる/市場価値を上げられる環境
- 自分の頭で考え、意思決定する力を育める環境
短期間で効率的に成長できる/市場価値を上げられる環境
今年は生成AIがかなり普及し、IT業界にも大きな影響を与えた一年でした。そんな中エンジニアの仕事が無くなるのではないかと騒がれることも度々あったかと思います。
僕個人としても一部の仕事は早い段階で無くなると思っています。
その上で受託事業部のメンバーには、そういった状況下でもニーズのあるエンジニアに最短でなってほしいと思い日々接しています。開発することが好きで集まったメンバーが多いので、1日でも長くエンジニアという職種を続けて欲しいですし、環境が大きく変わってもその環境に適応できるようなエンジニアになって欲しいなと思ってます。
また僕自身はキャリアやスキル習得で少し遠回りしたのでかなり後悔しています。そのため僕が今まで学んだ内容は惜しまず伝え、皆さんには最短経路で成長してもらいたいとも思ってます。
自分の頭で考え、意思決定する力を育める環境
こちらも前半の内容と少し被るのですが、生成AIが普及していく中でより自分の考えを持つ力が必要になってくると考えています。AIを活用する場合でも最後は人間が判断 / 意思決定する場面は多いと思っています。
そのため自分の頭で考える力、意思決定する力を身につけることで今後もより活躍できると考えています。逆にその力がない人は、今後苦労するのではないかと思っています。
普段上記のようなことを考えながら一緒に働いているため、時には厳しく接することもあり大変かもしれませんが、上記前提を理解してもらえると嬉しいです!
2024年の取り組み
スケール可能な組織体制への移行
今年人数が大きく増えた一方で、適切な階層型組織に移行できておらず、技術的な部分は僕一人でほぼマネジメントを行なっている状況です。そのため僕がボトルネックになることが多く、現状これ以上スケール出来ない組織構造となってしまっています。
一方で今後の組織、クライアントの拡大を考えると、早々に適切な組織構造に移行しスケールできる状態を担保しないといけません。そこに向けて来年から以下2つを実施する予定です。
- リーダー制の導入、育成
- マネージャー候補の受け入れ
元々リーダー候補の採用はずっと行っていたのですが、昨今のエンジニア市場で即戦力のエンジニアを採用することが難しく、結果的に採用に至りませんでした。そのため内部で育成する方向にシフトし、リーダーの素養とモチベーションがある方にリーダーをお願いすることにしました。
権限マップをもとにどういった内容をお願いするか可視化をしたり、横断でマネジメントに関する本や記事の輪読会等を通じて一緒に学んでいこうと考えています!
また並行してマネージャー候補の方に入社いただけることとなったため、リーダーの方とは少し違うレイヤーの抽象度高い業務もお願いしていければと考えています。上記を通じて来年は、ミドルマネジメント層を強化していこうと考えています。
生産性/品質の向上
また来年は生産性、品質の向上を行っていきたいと考えています!
まず生産性に関しては、可視化から行っていく予定です。具体的にはFindy Team+というサービスを導入し生産性の可視化を行う予定です。 直近各チームごとに良い面、課題がある状態ですが、数値的根拠を持って分析できてない状態です。 そのため上記サービスを導入することで、良い部分はより伸ばし、課題感がある部分は根拠を持ったアプローチを行っていきたいと考えています。
続いて品質に関しては、内部のQAプロセスを改善していく予定です。 具体的なアプローチは検討しきれていないですが、専門部隊の導入も視野に色々なアプローチを検討していこうと考えています。
最後に
今回は受託開発事業部にフォーカスした記事となりましたが、今年は全社的に大きく成長した1年でした!
また社員の方から自発的にAdvent Calendarの話もいただき嬉しい限りです。最後まで投稿してくださった皆さんも、ありがとうございました!今回の記事が誰かの手助けになれば良いなと思います。
ではみなさん良いお年をお過ごしください!