前日よりも生産性が高いまたは低いソフトウェアを開発していることをどのように追跡できますか?
前日よりも生産性が高いまたは低いソフトウェアを開発していることをどのように追跡できますか?
回答:
簡単な答えがあります:できません。また、そうすべきではありません。
自分の生産性を測定したいのですが、一般化できます。プログラマの生産性をどのように測定できますか?まず第一に、「生産性」の意味を定義する必要があります:生成されるコードの量?実装された設計(または仕様)の量は?修正された問題の数は?生成されたコードの品質?(はい、品質は生産性のカウンターです。多くの不良コードを生成することも、少数の優れたコードを生成することもできます。生産性は向上しましたか?)これらのすべての値を毎日のベースにマッピングすることはほとんど不可能であり、毎日の生産性を追跡しようとする試みは、プロジェクト、企業、およびプログラマにとって危険です。
私のアドバイスは、「生産性」とはどういう意味かを明確に定義してから、測定単位を定義し、それを毎週および毎月適用することです。
以下の両方の提案は、必要に応じて大まかに採用できますが、どちらの場合も、事前に見積もりを行い、アドホックに分析する必要があります(正直なところ、これを測定する別の効果的な方法があるかどうかはわかりませんが、同意しますTheLQでは、期間ごとのコード行はまったく使用できません)。
アジャイル開発の方法論
単一の開発者シナリオにどれだけ効果的に適用できるかはわかりませんが、アジャイルで使用される原則のいくつかは、目的を達成するのに役立つことがわかります。アジャイルは、開発者が複数のストーリー(タスク)を実装することを目的とするサイクルで機能します。ストーリーは、開発サイクルの開始時の実装の複雑さに基づいて(ポイント単位で)得られ、各サイクルの終了時に分析されます。これにより、速度、つまり開発者またはチームが1つの開発サイクル内で完了できるポイントの数を決定できます。
作業方法でいくつかの原則を採用し、作業をサイクルで整理できる場合、開発サイクルごとの速度メトリックを使用して効率を追跡できます。サイクルは通常2〜3週間続きますが、これを自分だけに使用する場合は、サイクルを短くできることに注意してください。環境でそのような方法論を採用できるかどうかは、結局のところすべてです。
エビデンスに基づくスケジューリング
これは主に見積もりの改善を目的としていますが、生産性の低下傾向を追跡するために効果的に使用できるはずです。
エビデンスに基づく複数のスケジューリングスナップショットの取得を含む、生産性の有意義かつ正確な尺度を次に示します。
数日分の統計を収集したら、モンテカルロシミュレーションを実行し、次のようなグラフを確認します。
次に、もう1日分の作業を行い、シミュレーションを再度実行します。その日生産性が高かった場合、グラフは次のように変わります。
最も重要なことは、あなたがその日に製品だった場合、その日の前にシミュレーションを最後に実行したときから、任意の日付の出荷日の確率が増加するはずです。減少した場合、その日は生産性が低下していました。
もちろん、EBSの精度は時間と経験とともに向上するため、これが出荷日の確率値の変更のもう1つの理由になります。そのため、少なくとも数日分のサンプル作業の後、これを開始したいのです。ただし、それがなくても、ある日または他の日に生産性が大幅に向上した場合、確率は非常に顕著に増加するはずです。
コードの行数をカウントすることは、コードの品質に関する洞察を提供しないが、一般的な生産性を決定するために使用できるため、不完全な測定です。使用する言語に応じて、コード行をカウントするさまざまなツールがありますが、GitリポジトリであるBitBucketに生産性関連の統計を追加するように要求しました。
https://bitbucket.org/site/master/issue/4307/feature-request-contributor-statistics
生産性を上げることは、作業時間のすべてをタスクの完了に向けて使用するように時間を管理することであり、無駄な時間に寄与するもの、つまりタスクを完了しないために費やした時間は非-生産的。
あなたが本当にできる唯一のことについては、一日を通して様々な活動に従事しているときにあなたの時間を記録することです。タイムボクシングは、さまざまな目的に使用される手法ですが、1日のアクティビティをログに記録するこの取り組みに適しています。単純に何らかのタスクを実行するタイマーで15分を過ごします。タスクがあなたが取り組んでいることになっているものである場合、あなたの時間は生産的でした。自分のブログを編集している、新聞を読んでいる、または会計のその素敵な女の子について空想していることに気付いた場合、あなたの時間はおそらく非生産的でした。一日の終わりに議事録を追加すると、あなたがどれだけ生産的であるかを感じることができます...
しかし、キャッチがあります!他の数分間はどうしますか... 5分間休憩し、昼食に行き、上司に最後の釣り旅行で釣れなかった大きな魚について話を中断させますか?そのすべても記録します。それがあなたの精神的健康と幸福に貢献するなら、休憩に費やされた時間は無駄になりません...あなたが10-15分ごとに5分の休憩を取っていない限り!残りについては、中断、他の作業関連の問題の処理など、すべてを追跡できます。
もちろん、この種のものに夢中になっていることに気付くことができます。上司があなたをタイムボクシングとみなし、それを使用してより多くの仕事を積み重ねる理由を正当化するか、あなたの努力を批判する人々の一人である場合、神はあなたを助けます 実を言うと、生産的な時間を超える強迫観念の問題は、1日中働いても、実際の関連性がまったく得られないということです。ある日、あなたの脳からバターが溶けたようなコードを書いて、あなたがスクリーンと呼ぶそのサンドイッチの上に...他の日は、あなたが同じことをするために357の異なる方法を試してみると、深刻な精神ブロックを持つことができます失敗するのを見るだけです。多くの人は、継続的な「失敗」は非生産的であり、日中の時間を記録して時間を記録しても、それ自体は役に立たないと言うでしょう。
それを見る他の方法は、単に自分自身にいくつかの目標を設定し、1日と1週間で完了し、それからそれらを完成させることです。実際に目標を達成できた場合、生産性が向上したと主張できます。目標を達成できなかった場合は、目標を達成できなかった理由を理解し、生産性があったかどうかを判断する必要があります目標を達成できなかった実際の理由に基づきます。最終的に、必要なときに作業コードを提供し、テストに合格してタスクを完了できれば、生産性は向上しています。測定値は、後で統計的に分析する正当な理由がある場合にのみ価値があります。