ソフトウェアエンジニアが時間を追跡するように奨励する


24

同僚が問題の解決と機能の実装に費やす時間を追跡するように奨励するにはどうすればよいですか?これを行うソフトウェアがありますが、数字を入力しません。

過去の見積もりと実際に費やした時間を比較することで、チームがプロジェクトの見積もりをより上手にできるようにしたいと考えています。同僚はプロジェクトのスケジューリングにあまり関与していないので、同僚には個人的な利益が見られないと思われます。


6
おそらく問題は、ソフトウェアに時間を追跡させ、定期的にアクティビティの説明を設定して記録を押してもらうのではなく、数字を入力する必要があることです。私はこの問題に正確に対処するプログラムを自分で作成しました。これは、1日中ゾーンに出てから浮上し、その日の「タイムログ」を生成するのに苦労するからです。参照してくださいsoftwaremonkey.org/Program/TimeKeeper
ローレンスDolの

3
私が働いていたある会社で私にされたことを彼らにやるだけです。彼にタスクを割り当て、すぐにあなたが彼と一緒に出席する会議で3日間連続して過ごし、その後、会議がタスクが完了しなかった理由を知るよう要求した直後。
user16764

2
家に帰る途中で問題を解決するときの数字はどこに置けばいいですか?
ピーターB

1
@PieterB IMOクルマの仕事の問題について十分な時間をかけて十分に時間をかけて生産性を向上させる場合、その時間は未補償であってもプロジェクトの見積もりの​​ために追跡すべきだと思います。そうでなければ、机で考えることに費やす時間です。一方、それが車での1回限りの啓示である場合、プロジェクトの見積もりの​​基礎となるものではないため、追跡する価値はないと思います。
M.ダドリー

1
@PieterB間違いなく灰色の領域。すべては、スケジュールとプロジェクトの見積もりを作成するときに追跡することが有用かどうかに依存します。
M.ダドリー

回答:


41

同僚はプロジェクトのスケジューリングにあまり関与していないので、同僚には個人的な利益が見られないと思われます。

それは修正可能です。

それらをスケジューリングに関与させます。


2
これについては引用がありますが、私の本のほとんどはまだ詰まっています。エンジニア自身がスケジューリングで最高であるということなので、1日目からプロジェクトのスケジューリングに関与する必要があります。それはSteve McConnellのRapid Developmentから来ていると言いたいのですが、確信はありません。
トーマスオーエンズ

4
最近、私のプロジェクト(6か月のプロジェクト)で、PMが別のアプリケーションとの統合に4時間を割り当てたのを見ました。統合にはかなりの時間がかかると言うだけで十分です。私と別の開発者はこれは非常にコミカルだと思っていました。
クリス

@ThomasOwens BAまたはPMで何かがどれくらいかかるかを言われるたびに、それでも私を困惑させます。。この誤謬はそう徹底的に、それだけのBAまたはPMのどれもが、彼らがで働く業界読んのわずかなビットを行うないことを意味実現するために悲しいです暴かれる
ジミー・ホッファ

21

Joel Spolskyは、証拠に基づいたスケジューリングに関する記事を執筆しました。

あなたは同僚に、より良い評価スキルが彼らがより良いソフトウェアを生産するのを助けることができると納得させなければなりません。タスク時間を追跡するためのいくつかのポイントを次に示します。

  • 任意の管理セットの期限がある場合、適切な見積もりにより、その間に実際に達成できることを確認できます。ボーナスとして、あなたがマネージャーにあなたが何について話しているか知っていることを確信させるいくつかの素晴らしいグラフがあります。
  • あなたは、プロジェクトをより注意深く考えなければなりません。私がリンクした記事には、「スケジュールを時間単位で測定できる非常に小さなタスクに分割する必要があります」とあります。プロジェクトのほとんどすべての側面について考えたので(できれば仕様を書いてください!)、考えていないことに驚かれる可能性ははるかに低くなります。
  • より良い開発者になります。過小評価する傾向のあるタスクの種類が時間とともに表示されるため、盲目的に最適化するのではなく、それらの特定のタスクを改善するためにある程度の時間を費やすことができます。

1
+1、2番目のポイント。数日または数週間の時間の測定値を使用する見積もりは、日数または週数に関して常に不正確であることがわかりました。数時間離れている場合は、他の推定値をいつでもより正確に再計算できます。また、仕様の記述やPoCアーティファクトの作成により、より正確な見積もりが可能になりますが、これらのアイテムの見積もりを出すのはそれほど簡単ではありません。
ビネエットレイノルズ

10

これは標準的な方法で実現できます-ニンジンとスティック。

この場合のニンジンは、「現在の速度を理解することにより、将来の推定を改善する」ことができます-しかし、従う必要があります。

彼らがプロジェクトのスケジューリングに頻繁に関与していないというあなたのコメントは、これを難しい売りにするかもしれません。

特にPSPのフォロワーがいる場合、それらの中で最も高い機能を発揮するのは、彼らが良くなるのを手助けしているということです。

最も一般的なスティック(彼らの前にニンジンを保持するためではなく、それらを打つ)は、「それは必須です、それを行う」です。あまり動機付けではありませんが、少なくとも位置は明確です。

最後に、使用しているソフトウェアは彼らの無言さに貢献していますか?不器用ですか?システムBで時間を入力する前に、システムAでタイムコードを検索する必要がありますか?それは細かすぎるか、「オフ」時間を許可せず、1日8時間のアカウンティングを要求しますか。採用を支援するために、できるだけ摩擦のないものにしてください。

がんばろう


5
その最後の段落に+1。時間の追跡を行わないよりも時間を追跡する方が簡単になり、突然、魔法のように完了します。
スコット

5
素晴らしい最後のポイント-ウェブベースのドロップダウンを10分で書くことができる場合、8桁の数字を調べる必要がないことを嫌いました(デスクに置いた見積もりダイスを使用した見積もり)。また、「現在の速度を理解する」などの管理ビンゴの用語は使用しませんが、「スケジュールを現実的にすれば、スケジュールの最後に物事を取り込もうとする多くの義務的な無給の残業をする必要がなくなります」皮切りに。"
元気ウォンコ

@Wonko +1の「推定サイコロ」:-)
sdg

8

私の経験では、ほとんどの時間追跡ソフトウェアの問題は次のとおりです。

  • 開発者には、タスクをその場でより簡単に推定可能なサブタスクに分解する能力や権限がありません。
  • 何かに取り組み始めるまで知らなかったサブタスクを考慮する良い方法はありません。これは、ソフトウェア開発とデバッグで常に発生する状況です。
  • 集中した努力がどれだけタスクに費やされたか、会議、同僚の質問、ピアレビュー、およびその他のオーバーヘッドにどれだけ費やされたかを正確に思い出すことが困難な場合、費やされた時間が入力されます。
  • 追跡されていないタスクを説明する良い方法はありません。1日の終わりに、そのうち6人が会議などの処理に費やされていたとしても、8時間を削減しますか?
  • 見積もりの​​不確実性を考慮して伝える良い方法はありません。

私はポモドーロ技術を自分で使用し始めることで、これらの問題の多くに対処しました。タスクを中断せずに25分間作業すると、その時点で記録され、中断しない間隔で見積もりが行われます。私は、不確実性を伝えるために、証拠に基づいたスケジューリングの組み込みに取り組んでおり、私自身のきめ細かい追跡を、PMが好むおおまかなスケジュール推定に変換する作業を行っていますが、これは間違いなく改善されています。


6

良い方法

たとえば、Mylynのように、実際にそれを簡単かつほぼ透過的にするソフトウェアを使用します。たとえば、時間のバーンダウンチャートなどのツールと組み合わせます。

間違った方法

プロジェクト、タスク、正確な日付や時刻などを手動で指定する必要がある退屈なタイムシートを強制的に記入させます。


3
この質問への回答に費やした時間を記録するためにtt-proc-1bのフォームに記入し、管理のサインオフに費やした時間を同意してもらいたいと思います。tt-est-1aに記入して、この質問に答える作業を始める前にこの質問に答えるために費やすと予想される時間を記録しましたか?
-gbjbaanb

mylyn / tasktop ...完璧ではありませんが、プログラマーに実際のメリットを直接もたらす別のツールの副作用として、良い時間追跡に向けて多くのことを確かにしています...完璧ではありませんが、至福の素晴らしい!!
ニュートピア

2

あなたがチームリーダー/ PMでない場合、あなたはこの1つと戦うつもりです。どうしても必要な以上の作業を行う必要がある場合、人々は仲間の話を聞くのが好きではありません(とにかく私の経験ではそうです)。チームリーダーまたはPMでそれを取り上げてみてください。彼らがあなたのケースに同意する場合は、おそらく時間の記録を必須にすることができます(それは私が現在働いているところで起こったことです)。

あなたがチームリーダー/ PMなら、あなたはあなたの役割をより強くする必要があります:これらの人々はあなたが言うことを(効果的に)するためにそこにいます、そしてあなたがあなたの仕事をするためにもっと情報が必要な場合はあなたにそれを提供してもらう必要があります情報。彼らがあなたが情報を得るのを手伝おうとしないなら、それがおそらくそれが有用である理由を理解していないからでしょう、あなたのプロジェクトがしばしば予定を外れるか、過大評価されるか、何であれ、それが原因である理由を説明するために彼らと話をしてみてください問題が発生した場合は、問題を解決できるかどうかを確認してください!


2

あなたの時間を追跡するか、支払われません。何百万人もの人々(コンサルタント、弁護士など)が、なぜできないのですか?

これはかなり厳しいと思う人もいるかもしれませんが、そうではありません。スターバックスで働くなら、トイレを掃除する必要あります。銀行で働く場合は、スーツを着て毎日仕事をするためにネクタイをします。また、時間を追跡する必要があるチームのソフトウェアエンジニアである場合は、それを行います

時々、私たちは好きではない仕事で何かをしなければなりません。私たちは皆、大きな男の子と女の子です。私たちはそれを処理できるはずです。


1
まさに私が言おうとしていたこと。特に、請求書を支払うクライアントがいる場合-他にどのように請求するかを知ることができますか?誰かが彼の時間をロードしなかったので、1つの遅い給料が問題を永久に解決することを保証します。
HLGEM

2
これは、あなたがFLSA免除と主張している従業員に残業代を支払わなかったとして訴えられる優れた方法です。
ウーブル

1
@Wooble:明らかに、私はあなたを訴えられやすくしたり、従業員を虐待したりするような行為を支持しません。しかし、考え方は同じです。あなたの仕事をしていないことに対する反発があるはずです。多くの場合、時間の追跡は仕事の一部です。だから多分あなたは給料をドッキングしないが、それは理にかなっているものは何でも、警告し、保護観察をするが、実際は、あなたは仕事をしなければならない。チームメンバー全員にも影響を与えるため、利己的ではありません。
リチャード

@HLGEM:あなたの主張は正確です。クライアントとの契約がT&Mベースである場合は、時間を追跡するか、不正直です。
リチャード

残念ながら、私は時間の追跡を義務付ける立場にないので、別の方法を見つける必要があります。
M.ダドリー

1

明らかに、最良の答えは、チームの心理的ブレンドに完全に依存します。彼らは競争力がありますか?システムに自分の時間を入力すると、勝者に報酬を与える定期的なコンテストを設計します。プレイヤーが公平で楽しいと思うように、コンテストを調整して調整します。それをゲームにします。

おそらく、彼らが実際にタスクの実行費やした時間に透明性があれば、マイナスの結果が生じることを懸念しているのでしょう。私は、匿名の「努力追跡ツール」の設計について常に疑問に思っていました。バケットは、個々の貢献者を特定できない複数の個人が各バケットに費やした努力量を注ぐほど十分に高レベルでした。高レベルのプロジェクトバケットのより正確な労力コストを取得するだけでも、プロジェクトの計画とチーム全体の速度に役立つデータかもしれませんが、これにより「OMG、ジョーが3倍の簡単なことを見積もったとは思えません。」 。」またはその他、人々は従来の時間追跡システムで報告することを恐れています。

これらは2つの例にすぎないと思いますが、実際には、チームの心理的構成を十分に把握することで、インセンティブの方法や努力コスト情報への貢献を促す方法に対する正しい答えが得られます。


透明性については+1。私は一度時間追跡システムを実行する必要があり、管理者が正確な開始時間と終了時間を引き出すことを意図的に本当に難しくしました。そうすれば、スタッフがいつ仕事をしたかは問題ではなく、ただそれが行われたことと、どれくらい時間がかかったかということです。少し詳細ですが、まだ。
ジェームズ

1

彼らがこの要求にうまく反応しないのはなぜなのかを考えてください。彼らが怠けているとか、努力を避けていると思い込まないでください。

証拠の作成を避ける開発者は通常

  • それがどのように使用されるか、および/または
  • データの妥当性について懸念がある

これが、近年、ポイントベースの見積もりとシャツのサイズ決定始まった理由です。推定プロセスの非常に不確実な性質を考慮し、「魔法」(別名、不確実性の平均化)がスケジューリングを制御できるようにします。

そして、それは論理的に思えないかもしれませんが、それはほとんど動作します-少なくとも時間ベースまたは日ベースのシステムと同様。また、チームまたは個人が1か月で達成したことで、それがway意的な方法で行われた場合、頭の周りのチームまたは個人を打つことは非常に困難です。

また、スクラムを使用すると、開発者は速度を制御できます。つまり、A、B、CまたはA、Y、Zから選択するものをすべて達成することを約束します。しかし、あなたが彼らのためにその約束をするならば、彼らは気にしません。それが間違っている場合、それはあなたの責任です。

あなたはそのように再推定を使用しないと言っていることを理解していますが、あなたのチームの個人はどのくらい確信していますか?


1

プログラマがプログラミングからさらに多くの時間を費やすことを必要とするツールは、必ずしも素晴らしいものではありません。プログラマーはすでに多くのオーバーヘッドを抱えており、5分間の会議を開いてから嵐をコーディングすることはありません。

あなたが力を持っているなら、あなたは彼らにそれをさせることができます。しかし、断然最良の解決策は、それを簡単にするシームレスなツールを構築することです。設計のためにそれを行う方法を説明することはできませんが、コーディングのために、開発環境で行われた変更を記録する必要があります。これは信じられないほど高いバーでしたが、Eclipseのようなものを使用している場合、それほど悪くはありません。この方法により、各ファイル、および場合によってはJavaで各メソッドに費やされる時間を測定できます。これは、請求を依頼することで得られる情報よりもはるかにきめ細かい情報であり、かなり正確です。

同様に、デザインを入力するためのツールがある場合は、そこでインターセプトできます。


0

時間を追跡する方法と理由に依存しますが、オフィスでの時間や通勤に費やした時間もカウントして問題を考えていますか?

プロジェクトのスケジュール設定は困難であり、取得した指標が思ったほど役立つとは限りません。2つの問題は同じではないため、1つのタスクが8時間かかり、別のタスクが32時間かかる場合があります。

開発者がタスクの所要時間を推定し、その推定値に基づいて時間をかけて調整するため、証拠に基づいたスケジューリングを検討することをお勧めします。ただし、すべてのタスクを事前に把握しているとは限らないため、大規模なプロジェクトには適していません。大規模なプロジェクトでは、個々の推定値を集計するのではなく、同様の範囲の過去のプロジェクトを見て、それらを尺度として使用する方がよい場合があります。


0

たとえば、ポモドーロテクニックのような個人的な組織システムにそれらを紹介してみてください(他にもたくさんありますが、それが私が今試しているものです)

この手法では、タイマーを使用して、短い休憩で区切られた「ポモドリ」(イタリア語で「トマト」を意味する)と呼ばれる25分間隔に作業期間を分割します。この方法は、ソフトウェア設計で使用されるタイムボックス化や反復的およびインクリメンタル開発などの概念に密接に関連しており、ペアプログラミングコンテキストで採用されています。この方法は、頻繁な休憩が精神的敏a性を向上させるという考えに基づいています。


0

番号を入力するように説得する代わりに、簡単に機能するソフトウェアを使用します。私はScreenAwareを使用しています:https ://www.screenaware.com/en/ それはあなたの時間を自動的に追跡し、それぞれのプロジェクトに割り当てます。したがって、常に正確であり、誰ももう推測する必要はありません


この特定の解決策は、OPの一般的な質問では機能しない場合があります。リンクを提供することは問題ありませんが、次回は、OPが問題に対するソフトウェアソリューションの要求に特に言及していない限り、より一般的なソリューションを提供するようにしてください。
ニール

-1

代わりに既存のチケットシステムの使用を検討しましたか?チケットシステムは、チケットの作成からクローズまでの時間を監視します。タスクのチケットを作成し、コードをコミットするためのチケット番号を要件にすると、支出に見合う価値が得られます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.