見出し画像

開発生産性と品質の横断的な課題を解決する!エンジニアリング支援室の挑戦

※2024 2/29 【日経×note×ビットキー】エンジニア組織づくり〜立ち上げ・拡大・継続まで~ にてこちらの記事をリファインしたスライドがあります。


こんにちは!noteでエンジニアリングマネージャーをしている福井 (@fukuiretu) です。

毎日、各所アドベントカレンダーには素晴らしい記事が続々と登場していますね!私は特にエンジニアリングマネージャーアドベントカレンダーに注目して記事を読ませていただいており、他のエンジニアリングマネージャーの皆さんの凄さに圧倒されています。そんな中、ドキドキしながらも、今回はエンジニアリングマネージャーには密接に関連している組織に関するお話をさせていただこうと思います。


※この記事はnote株式会社 Advent Calendar 2023の21日目の記事です。


エンジニアリング支援室立ち上げの背景

技術革新と開発生産性の重要性

技術革新が急速に進む現代において、開発生産性と同時にプロダクトやサービスの品質向上は企業成功の重要な鍵となっています。特に経営資源が限られているスタートアップ企業にとって、効率的な開発プロセスと高品質のアウトプットは不可欠です。弊社noteもプロダクト/組織規模の拡大に伴い、以下のような課題解決の重要度が増しています。

  1. 横断的な開発生産性と品質の課題
    これまでは個々のエンジニアやそれぞれのチーム内の取り組みによって生産性向上と品質保証することがメインで、組織全体の横断的な開発生産性と品質に対する取り組みは不十分でした。

  2. 横断的な課題の取り組みを推進する機構の不在
    組織全体の課題に対処する専門チームや機構が不足しており、効率性や一貫性、そして品質保証に課題がありました。

  3. 開発生産性と品質の観点でのボトルネックの特定の欠如
    明確に顕在化している問題への対処はできる限りのことはしてきましたが、開発生産性と品質の観点でボトルネックとなっている隠れた課題を特定することには課題がありました。これにより、潜在的な改善点が見過ごされるリスクがありました。

目指すは組織全体の開発生産性向上と品質の確保

これらの課題解決をミッションとして、エンジニアリング支援室を設立し、エンジニアリング組織全体の開発生産性を高めつつ、プロダクト品質を確保することを目指します。

開発生産性とは

開発生産性は、大きく三つの階層に分けて考えることができます。この分類は広木大地さんの記事(開発生産性について議論する前に知っておきたいこと)を基にしているため、詳細は割愛しますが、各階層の概要は以下の通りです。

レベル1:作業量の生産性(アウトプット)

この階層では、開発チームがどれだけの作業量をこなしているかに焦点を当てます。例えば、完了したタスクの数、提出されたプルリクエストの量、実施されたデプロイの数などが評価の指標になります。昨今日本でも導入事例が増えているFour Keysもここにあたると思います。

レベル2:期待される付加価値の生産性(アウトカム)

この階層では、開発が顧客やビジネスの期待にどれだけ応えているかを評価します。例えば、顧客満足度や市場への適合性などが評価の指標になります。

レベル3:実際の付加価値の生産性(ビジネスインパクト)

この階層では、開発が企業全体の目標やビジネス成果にどのように貢献しているかを見ます。例えば、売上や主要業績評価指標(KPI)などが評価の指標になります。

開発生産性について議論する前に知っておきたいこと/開発生産性の3階層より引用

エンジニアリング支援室では、「レベル1:作業量の生産性(アウトプット)」にフォーカスしたアクションを想定しています。

チームのメンバー構成

エンジニアリングマネージャーの間で広く認知されている「エンジニアリングマネジメントトライアングル」を基に、エンジニアリング支援室を構築しています。このトライアングルは、テクノロジー、プロダクト、チームの三つの軸から成り立っており、それぞれの分野に強いメンバーをアサインしています。

engineering-manager-meetup / engineering-management-triangle より引用

テクノロジー 1名, プロダクト 1名, チーム 2名, 全体マネジメント 1名
という構成で組んでいて、それぞれの分野に強いメンバーを統合することで、組織全体の課題に対してチームの集合知でアプローチできるようにしたいと目論んでいます。

取り組むカテゴリ

エンジニアリング支援室では、主に以下のカテゴリに取り組むことを予定しています。

  1. 採用(チーム軸)
    優秀なエンジニアの採用は、開発生産性を高める上で必要不可欠です。エンジニアリング支援室では、HRと協業しながら効果的な採用戦略を策定し、エンジニアの確保と優秀な人材の引き付けを目指します。

  2. 技術広報(チーム軸)
    技術広報により、弊社noteの認知度を高めます。採用市場においては、ブランディング戦略を通じて優秀なエンジニアを引き付け、業界内での競争力を強化し、組織の成長促進を目指します。

  3. プロセス改善(プロダクト, テクノロジー軸)
    デプロイフローの最適化やLLMの活用により開発の生産性を高め、メトリクスの可視化を通じて組織の現状を明確に把握します。これらの取り組みにより、効率的な開発プロセスの構築とデータ駆動型の意思決定が可能となり、プロダクトの迅速な市場投入を目指します。

  4. 品質向上(プロダクト, テクノロジー軸)
    E2E(エンドツーエンド)のテストケースやツールを整理し、プロセスを最適化することにより、品質を維持しつつデプロイ時間の短縮を目指します。

おまけ: チームで集まってブレストした図

アイディア出し
効果と時間のマトリックスで優先順位をざっくりと整理

今後の展望

エンジニアリング支援室を立ち上げて約3週間。本格的に動き出すのはこれからです。今はまだ、何がうまくいくかもわからないスタートラインに立っている状況です。
やりたいことは無限にありますが、まずは半年間、採用から技術広報、プロセス改善、品質向上を中心にアクションに優先順位をつけ、少しずつでも開発生産性や品質をアップデートしていきます。私たちの取り組みがどんな成果をもたらしたのか、あるいは失敗したのか。noteで報告していこうと思うので楽しみにしていてください!


noteではエンジニアを絶賛募集しています!プロダクト開発はもちろん、開発生産性に向き合って課題解決していきたい方などご興味ある方はお声がけいただければと思います!


弊noteをよりよいサービスにするために、技術書購入や勉強会・セミナー参加の費用にあてたいと思います🙏