近年、さまざまな領域でDXの取り組みが加速する一方で、エンジニア人材を十分に確保することは難しく、開発チームの生産性向上に課題感を持つ企業の声が多く聞かれます。最近では数々のAIサービスがリリースされており、中にはプログラマーのコーディングを高レベルで補完・提示できるサービスも生まれました。実際に、そのようなAIサービスを使用したユーザーへの調査結果でも、「生産性が向上した」という報告が多く上がっているようです。した流れの中、今後もますます生産性の向上は求められていくでしょう。「開発生産性を向上させる」と言っても、具体的に何から着手すべきか迷われる方や、ソフトウェア開発における生産性をどのように定義づけ、計測するべきか悩む方も多いはずです。そこで今回は、開発生産性の定義や計測の仕方、生産性を向上させた企業の事例5選などをご紹介します。ヤプリソフトウェア開発における「開発生産性」とは?開発生産性とは、ビジネス的な価値を持つチームの能力を測る尺度のことで、決められた時間内にどの程度の成果を出したかが測られます。ソフトウェア開発においては、コードの品質の高さやソフトウェアデリバリーの速度・安定性などが指標になります。具体的に、ソフトウェアデリバリーの速度としては、デプロイ頻度や本番環境が稼働するまでのリードタイムなど、またデリバリーの安定性としては、障害からの復旧時間や変更失敗率などが参照されます。開発プロセスのみならず、保守から運用にいたる業務全体を含めて、効率的に行えているか否かを測る必要性があるでしょう。いま、「開発生産性の向上」が注目される理由は?さて、この開発生産性はなぜ注目されているのでしょうか。主な理由としては企業の収益向上や市場競争の激化、コスト削減などの背景があるようです。ここからは開発生産性の向上が注目される詳細な理由について解説します。企業の利益や成長性が上がる開発生産性の向上は企業の収益や成長につながります。現在は少子高齢化やエンジニアの減少などで収益が落ち込んでいる企業も少なくありません。そのため、一人ひとりの開発生産性を向上させて、収益を高めようとする動きがあるのです。経済産業省の発表によると、2030年には最大で約79万人のIT人材が不足すると述べられています。AIサービスが急増する中でも完全に開発業務を代替するわけではなく、引き続きエンジニアは争奪戦になっています。一人あたりの生産性を高め、恒常的にハイパフォーマンスが発揮できる体制を構築できれば、労働力不足に陥った場合でも収益の落ち込みを止められます。人件費の削減や中長期的な利益拡大にもつながるでしょう。市場競争力を高める市場競争力を高めるためにも、開発生産性の向上は求められています。近年は多くの分野で競争が激化し、商品の低価格化や機能の改良などが進みました。一方で、市場競争がある程度成熟した市場においては商品・サービスの差別化が難しくなっており、より一段上のアプローチが求められています。そのアプローチの一例としては、開発生産性の向上につながるツールを活用し、コア業務に注力しやすい体制づくりをすることなどが挙げられます。これまで人が担ってきた仕事を自動化・効率化することで、高付加価値の製品・サービスが生まれる可能性を高められるのです。バグ修正や保守コストの削減が可能になる開発生産性の向上はシステムの品質を高めることに寄与し、バグの発生頻度を減らします。開発したソフトウェアが想定通りの動きをしてくれれば、保守にかかる手間も少なくなるでしょう。新たな人材を投入する必要もなく、少ない人員で運用にあたることができます。開発者のワークライフバランスを見直すことができる業務を効率化して残業時間を減らすなど、ワークライフバランスを見直すことは従業員の長期雇用にも繋がります。離職率が低くなれば、優秀な人材も獲得しやすくなるでしょう。脳は起床時間からおよそ13時間で、アルコールを摂取したときと同じ状態になるといわれています。長時間働くことで、本人が体感しているよりも作業効率が落ちてしまっている可能性もあります。開発生産性を向上させるためには、まずは現状把握が必要です。開発生産性にはさまざまな要素が複雑に絡んでいるため、その測り方がわからないという方もいらっしゃるのではないでしょうか。Keys」と、「SPACE」というフレームワークをご紹介します。これらを用いて抱えている課題や改善点を見つけ出しましょう。Keysとは、Google社が提唱しているソフトウェア開発チームの生産性を測る指標です。以下の4つの項目に分かれています。デプロイの頻度(正常な環境へのリリース頻度)変更のリードタイム(commitから本番環境の稼働までにかかる時間)変更障害率(デプロイが原因となり本番環境に障害が発生する割合)サービス復元時間(本番環境が障害から復元するまでにかかる時間)これらの項目は相互関係にあるため、全体的に対処することが望ましいのですが、それが難しい場合にはまず一部の手を付けられる項目から改善しましょう。Keys」の各項目における参考基準(※こちらを参照し編集部が作成)SPACESPACEも開発生産性を向上させるために使われるフレームワークの一つです。具体的には下記の5つの指標に分かれています。Keysと同様に5つの指標が相互に関係しています。これらの指標を個人やチーム、システムなどに分けて計測すると、多面的に現状を見ることが可能です。アジャイル開発など、生産性を高める方法4つ現状の計測が終われば、いよいよ生産性を向上させる段階に入ります。さまざまな選択肢が存在しますが、ここでは開発生産性を向上するための4つの手法をご紹介します。ソフトウェア開発の手法の「総称」を指しており、特定のひとつの手法を指すわけではありません。共通点としては、「実装した機能をいち早くリリースし、細かく反復して改良する」といった特徴が見られます。具体的には、短いサイクルで開発を繰り返して顧客に提供し、問題点があればフィードバックをもらい、修正して再度提供する、という開発を繰り返す形です。アジャイル開発のメリットは、優先度が高い問題から手を付けるため開発スピードが早いということや、トラブルや不具合の発生時に修正工数が少なく済みやすい、柔軟に計画を変更することで経営上のリスクを低減できる、といったものが挙げられます。アジャイル開発については、過去にSELECKで公開したこちらの記事もご参考ください。技術発展とともにテストやデプロイの自動化など、ソフトウェア開発における自動化の手段も次々に広がってきました。昨今の新たなAIサービスを含めた自動化ツールを活用することで、より迅速なソフトウェア開発が可能になるでしょう。どの部分を自動化するかは、リソースの制約を考えた上での判断が必要です。全体的な開発プロセスを見直し、自動化によって解決したい問題を明確にすることが第一歩となります。全てを自動化するのは時間やコストがかかるだけでなく、必ずしも効果的とは限りません。重要なポイントを絞って、順次自動化を推進する方が効率的でしょう。チームワークの向上チーム間の連携や情報共有などがうまくいっていない場合は、当然ながら生産性も落ちてしまうので、チームワークの向上についても考える必要性があるでしょう。目標と役割分担を明確に設定し、全員が向いている方向を揃えることが大切です。基本ではありますが、メンバーの目線を揃えるためにもプロジェクトに関連した情報はしっかりと要件定義書、プロジェクト計画書等にまとめておきましょう。メンバー同士でフラットに発言できる環境づくりに力を入れる企業も多いようです。前述したアジャイル開発もチームワークの向上に資するフレームワークです。プロジェクトマネジメントの改善プロジェクトを円滑に進めるためにも、プロジェクトマネジメントの改善余地がないかを探りましょう。いった、さまざまな調整・管理を指します。プロジェクト内の目標を明確に定め、円滑なコミュニケーションがとれる体制を整えます。チームメンバー間の能力差がある場合は、開発の実行担当に加えて、フォロー担当を配置する必要があるかもしれません。開発生産性の向上に役立つツールとは開発生産性を高めるためには、実際にどのようなツールや技術を用いれば良いのでしょうか。プログラムを書くためのコードエディターやバージョン管理システムなど、プログラムの開発には、さまざまなツールが存在しています。高性能なコードエディターは、入力補完機能やハイライト表示機能などが充実しているので、コードが書きやすくなりスピードも上がるでしょう。テスト自動化ツールを導入すれば手作業でテストをする工程が削減されます。代表的なツールとしては以下が挙げられます。したツールの選定においては、機能性、ユーザビリティ、他ツールとの連携性、スケーラビリティ、セキュリティなど、さまざまなポイントを押さえることが重要です。自社にあったツールを選定するために、ぜひ調査してみてはいかがでしょうか。開発生産性を向上させた企業の事例【5選】ここからは、開発生産性の向上に取り組む国内企業の事例についてご紹介します。アンドパッドクラウド型建設プロジェクト管理サービス「ANDPAD」を提供している株式会社アンドパッド。同社は2022年に総額約122億円もの資金調達を行い、さらなる急成長を続けています。Teams」を活用し、組織の生産性を可視化。クローズ時間」の指標が、120時間から23時間ほどに激減したといいます。Keysを用いてできることからはじめ、以下の3つの施策を行いました。優季さんは、改善を行うにあたり「指標だけではなくチームの観察からボトルネックを特定する」「敢えて大きな課題から取り組まない」「自分一人がチームを変えるのではなく、チーム全体で変える」といったことを意識していたそうです。一方で柴﨑さんは、「エンジニアの生産性は、生産サイクルのスピードだけに着目するべきではない。顧客に価値を提供できているか、ビジネスとして成り立っているか、という視点も必要」と話されています。ログラス経営管理クラウド「Loglass」を展開している株式会社ログラス。同社は開発組織が抱える生産性にまつわる課題を解決するため、専任部隊「Honeybeeチーム」を設立しました。「5年後も高速に高品質な開発ができるための土台を作る」を目標に掲げた同チームは、開発プロセスの整備や自動化、技術負債への取り組みのアップデート、メトリクスの整理など、発見と改善を繰り返しました。一つひとつのボトルネックに焦点をあてて改善する「制約理論」を取り入れることによって、結果として3ヶ月でプルリクエストの作成からレビュー完了までの時間を1/4に短縮。開発生産性を向上させることに成功しました。リンクアンドモチベーション組織改善プロダクトの「モチベーションクラウド」を提供している、株式会社リンクアンドモチベーション。非IT企業でありながら、2018年にはプロダクト開発の内製化に取り組み、ゼロから100人規模のエンジニア組織を構築しました。内製化に着手した当初は障害やバグが多発する状況。高品質なプロダクト開発を実現するためには、開発生産性の向上が不可欠だと考え、2020年に専門のエンジニア部隊「SREチーム」を立ち上げました。この取り組みの一環として、「開発生産性・メトリクス基準の統一」「改善活動の自分ごと化」「数値を上げる意味・目的の共有」という3つのアプローチを実施。その結果、開発リードタイムは16日から2日に短縮され、本番環境へのデプロイも週1、2回から毎日1回以上に増加し、開発室全体の生産性が向上しました。こちらの記事ではより詳しくリンクアンドモチベーション社の取り組みをお読みいただけます:SRE協働プロジェクトで開発生産性を大幅に向上。LayerXSaaS事業「バクラク」シリーズをはじめ、3つの軸で事業を展開している株式会社LayerX。同社が得意とする「爆速開発」は、業界認知度も高く注目を集めています。各事業のプロダクトマネージャーは、それぞれの担当領域を持ちながらも全社での「爆速開発」を実現するため、「地図とコンパス」と呼ばれる同じフォーマットを使って開発ロードマップを描き、開発チームとして進むべき道を指し示しているといいます。開発においては「やらないことを決める」「要望通りの仕様で作らない」「仕様をシンプルにする」という3つのポイントを重視し、ユーザーの真のニーズを十分に拾い上げながらも、開発スピードを緩めない工夫を行っているそうです。こちらの記事ではより詳しくLayerX社の取り組みをお読みいただけます:「爆速開発×ユーザー体験向上」を実現するLayerX。ヤプリアプリ開発・運用・分析をノーコードで提供するアプリプラットフォーム「Yappli」を展開する株式会社ヤプリ。事業と組織の継続的な成長のために数多の取り組みを実施してきた同社では、一例として創業初期から急成長フェーズを支えたYappliのCMS(コンテンツ管理画面)を、PHPからGoに全て刷新するという一大プロジェクトを実施しました。同社の特徴として、プロダクト改善を全社で仕組み化していることが挙げられます。以下のような取り組みを行うことで、POやPdMだけではなく全社でプロダクトをより良くすることに関われる体制を構築しているといいます。開発生産性を高めるために課題全般を解決する精鋭エンジニア「遊撃チーム」こちらの記事ではより詳しくヤプリ社の取り組みをお読みいただけます:誰もがプロダクト改善に参加する組織を。巨大な技術的負債も乗り越えたヤプリの現在地さいごに今回は、開発生産性をテーマに、その定義から計測方法、企業の取り組み事例までをご紹介させていただきました。将来的にさらなる人材不足が想定される中で、開発シーンに限らずいかに生産性を高めるかは、多くの企業の命題になっているのではないでしょうか。当媒体SELECKでは、引き続き企業の組織における取り組みの取材記事や、各社の事例から学べるイベントを開催していきますので、ぜひチェックしていただけますと幸いです。LIVE!」より、【エンジニア・デザイナー・PMの連携を強めるには?】をテーマにしたイベントレポートをお届けします。株式会社ゆめみ無料ダウンロードはこちら!あわせて読みたい投稿SRE協働プロジェクトで開発生産性を大幅に向上。情報の構造化はマインドマップ生成AIツール「Mapify」一択。毎週の新着記事を無料でお届けします!プライバシーポリシーに同意しました。情報の構造化はマインドマップ生成AIツール「Mapify」一択。