この質問はもともと、「ソフトウェア開発組織でどの KPI を使用していますか」というものでした。残念ながら、KPIは 4 文字の単語のようであり、KPI は常に誤用されていると思われます (実際に誤用されているのでしょうか?)。
そのため、KPI が役立つと当初考えていた根本的な目標に到達するように質問を改善できれば幸いです。あなた (またはあなたの組織) がソフトウェアを開発する方法について何らかのプロセスがあると仮定します。次に、あなた (またはあなたのチーム) が、ソフトウェアの開発と配信をより上手に行いたいと考えているとします。最後に、改善する方法の 1 つがプロセスを改良することだとします。
これらすべてを考慮して、プロセスの改善がプラスの影響を与えているかどうかをどのように知るのでしょうか? これらがKPIまたは [SMART 目標]( http://en.wikipedia.org/wiki/SMART_(project_management))である場合は、効果的であるとわかった KPI/SMART 目標の個別またはグループを提供してください。最後に、プロセスの改善が有用だと思わない場合は、それについても説明できると思います。
私が役立つと思う改善点は、品質、リリースの適時性、生産性、柔軟性です。個人または開発者チームの他の側面がある場合は、それを知るのは興味深いことです。
明確化のための注意:
問題は、プロセスを最適に適応または変更する方法や、優れたプロセス改善プロセス (カイゼン、ふりかえりなど) についてではありません。また、根本原因の分析や、プロセスの特定の側面を改善する必要があるかどうかを判断するために使用されるその他のアプローチに関するものでもありません。
プロセス改善が達成されたかどうかを判断するための手段の使用は、進行中のプロセス改善と混同されるべきではありません。(それは良いことですが、質問の内容ではありません!)
プロセスは何でもかまいません。スクラム、アジャイル、エクストリーム、ウォーターフォール、アドホック。この質問は、特定の種類のソフトウェア開発に最適なプロセスは何かということではなく、時間の経過とともにそのプロセスを改善する方法です。
明らかに、特定の指標は、関連するプロセスと、改善しようとしていると認識されている問題によって異なります。この質問は、使用されている指標の例を取得することを目的としており、さまざまなプロセスや改善領域にまたがっていることは明らかです。
メトリクスは常に使用されるものである必要はありません。たとえば、プロセスの変更が機能するかどうかをテストするときにのみ使用できます。(たとえば、常に測定して追跡するには、時間やお金の面で費用がかかりすぎる可能性があるため、追跡するだけでプロセスを微調整できます)。
メトリクスの実装が不十分な場合、開発者がシステムを操作したり、その他の方法でゲームを行ったりする際に、メトリクスの使用が悪影響を与える可能性があることは当然のことです。プロセス変更を実施する担当者は、この問題を認識しており、それを軽減するための効果的な措置を講じているものと想定されます。
すべてのソフトウェア組織は、会社にどのように適合するかが異なるため、会社内で期待される特定の事柄が異なりますが、製品の品質、生産性、柔軟性、およびリリースの適時性は、すべてではないにしてもほとんどの組織に適用できると思います. (特定の組織に応じて明らかに異なる重点を置いています。)
この質問はコードのソース行とは何の関係もありません! 特に、プログラマーの生産性を測定することには興味がありません。特に、SLOC や修正されたバグの数、またはその他の素朴な測定に関してはそうです。チームまたは個人が改善を測定するより高いレベルの方法に興味があります。単一の KPI を使用して誰かのパフォーマンスを測定することに興味はありません。チームのソフトウェア開発プロセスを測定および改善するために、さまざまな KPI を使用することに関心があります。
KPI が誤用されて効果がないという恐ろしい話を知っていますが (それらを見つけるために一生懸命検索する必要はありません)、プロセスを継続的に改善しようとしている人が誰もいないとは信じられません。 KPI の良い例がいくつかあります。
個々のソフトウェア プログラマーに適用される単純化されたメトリックの欠点については、すべて知っています。私が KPI を使用すべきではないすべての理由ではなく、人々が有用であると判断した KPI または代替戦略の例を取得することを本当に望んでいます。
私は主に、ソフトウェア開発会社全体ではなく、大企業内の開発組織に関連するプロセスとパフォーマンスに関心があります。たとえば、ソフトウェア会社は製品が市場に適した機能を備えていることを確認する必要がありますが、一般的にそれはエンジニアリングではなく製品管理の役割です。はい、エンジニアが製品管理に関与する理由と程度については、まったく別の議論がありますが、それは別の議論です。