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