13

私はPHP開発者であり、何日も、ましてや何時間も、何かが仕事にかかる時間についてはよくわかりません。私はよく新しいものを書いていて、それを古いレガシーのがらくたとマージしています。上司に、何かが行われる可能性が高い週、そしておそらくその週の半分を伝えることはできますが、世界でどのようにして、何かが行われる日を具体的に知ることができますか?バグやその他の未知のものが頻繁に発生し、時間を浪費することを考えると、それは少し非現実的ではありませんか?私はこれらのものをそんなに最小化することしかできません...

私は次のように言うことを考えています:

「ほら、明日」と言っているのがわかります。明日!」は役に立ちません。私が取り組む多くのことであなたのためにできる最善のことは、与えられた週のどの半分がそれを終える可能性があるかをあなたに伝えることです。与えられた週の金曜日なら、次の週に移ったほうがいい」と語った。

4

16 に答える 16

14

時間の見積もりは難しいです。

しかし、私がこれをうまくやったときは、すべて共通点がいくつかあります。

1.)プロジェクトの非常に優れた完全な要件を受け取りました。これは重要であり、要件が実際に可能な限り完全であることを確認するために難しい質問をする必要があります。

2.)プロジェクトをセクションに分割し、各セクションをホワイトボードに書き込んでから、各セクションの完了までの時間を個別に見積もりました。私はこれを行うときにチームの他のメンバーに貢献してもらいましたので、何も忘れません。これはとても単純に見えますが、とてもうまく機能します。時間のかかるプロジェクトの一部を見落とす可能性を減らすことで、より現実的になると思います。このようにプロジェクトを詳細に書き留めて計画することができれば、非常に役立ちます。

この全時間の見積もりプロセス中に、プロジェクトと何をする必要があるかについての理解を深めることができます。これにより、間違いやコードの記述と書き直しなどを防ぐことができます。これはすべての人にとって良いことです。

于 2009-08-11T21:19:38.680 に答える
4

思い切って、50%の時間を追加してください。あなたは締め切りに間に合い、ストレスを感じることはありません。あなたの上司は速いコードよりも質の高いコードを見るでしょう、そしてあなたはたまに予想よりも速くなるでしょう。誰もが勝ちます:)

于 2009-08-11T21:20:22.080 に答える
4

より良い見積もりは経験から得られます。

また、ファンクションポイント分析法を使用して、適切な出発点を取得することもできます。次に、プロジェクトマネージャーに定期的な更新を提供します。したがって、プロジェクトが来週に入る必要がある金曜日に、プロジェクトマネージャーは驚かないでしょう。

于 2009-08-11T21:20:48.943 に答える
3

にも違いがあります

  • タスクを完了するために必要な時間(経験を積んだときに見積もることを学ぶ必要があります)
  • 遅延:そのタスクを完了するための時間に加えて、より緊急な他のことを行うための時間


何かをするのに必要な時間の見積もりについて:

  • 初めて何かをするとき、それを完了するのにどれくらいの時間がかかるかを知るのは難しいです
  • しかし、時間が経つにつれて、あなたはますます多くの異なることをするようになるでしょう。そして、毎回、あなたはそれがあなたにかかった時間を覚えているでしょう。

しばらくして、「それを行うのにどれくらい時間がかかりますか?」と尋ねられたとき、あなたは考えることができるでしょう:

  • 「それ」は、私がプロジェクトXで行った他のこと、およびプロジェクトYで行った他のことと非常によく似ています。
  • 私はプロジェクトXで8日間、プロジェクトYで6日間を費やしました。しかし、私はすでにそれを行う方法についていくつかの考えを持っていたので、Yでははるかに簡単でした(すでにXでそれを行いました)
  • したがって、この新しいプロジェクトでは、プロジェクトYよりも時間がかかることはありません。
  • 実際、私は今、さらに良くなり、経験を積んでいます...だから、約5日かかるはずです
  • そして、自分自身に過度のプレッシャーをかけず、ある程度の誤差を保つために、上司に6日、つまり6日半と言います。
  • そして、彼の頭の中で、彼は別の日を追加します^^ (または、彼が6を聞いたときに4を数えるような人なら、8と言ってください。彼は6を理解します^^)

時間が経つにつれて、あなたはこれでますます良くなるでしょう; そして、最終的には、おそらく次のことができるようになります。

  • 今までやったことのないことをするのにどれくらいの時間がかかるかを見積もる
  • 別の開発者がそれを行うのにかかる時間を見積もる
    • そしてこれは、両方とも経験豊富な開発者にとって、
    • または初心者向け
    • または1人の特定の人のためだけに

ホー、そして私は忘れました:私は通常、バグのテストと修正のために「開発時間」の約15%を追加しますが、これは私が取り組んだプロジェクトの標準レートであり、一般的に非常に正確です(もちろん、初心者の場合) 、おそらくより多くのバグを作成する人は、もう少し追加します;経験豊富な開発者の場合は少し少なくなります)

はい、もちろん、時々、あなたは完全に間違っているでしょう; それは起こります、それはそれです:誰もがたまに間違いを犯します:-)


遅延について:まあ、私は一般的に上司に「他に何かをする必要がなければ、X日かかるはずです」と言います。それで、上司が私の仕事の途中で2日間何か他のことをするように言ったら、それは「彼のせい」です^^

一人でプロジェクトに取り組んでいるとき、または「自分の上司」であるとき、私は一般的に「他のもの」にどれだけの時間を費やす必要があるかを知っています。
少し前に取り組んだプロジェクトで、「これを行うには5日必要ですが、通常、計画されていない作業に半分の時間を費やしていることを考えると、合計で10日かかると考えてください」とクライアントに伝えていました。 -しばらくすると、このように数えることに慣れます^^

于 2009-08-11T21:38:14.603 に答える
3
  • 数日で見積もりを求められるのはばかげています、あなたができる最善のことは見積もりです。
  • 完全な推測を強要されることを避けるために、どんな犠牲を払っても試してください、あなたはほぼ間違いなく間違っているでしょう。より良い見積もりをするために時間を買うことは常により良い考えです。
  • これまでに経験したことのないコードの変更やインターフェースを扱っている場合は、必要なことを実行する方法を理解するのにかかる時間を見積もり、詳細がわかったらそれらに戻ってください。正確には、どのくらいの期間の見積もりで何をする必要があるか。
  • これまでに行ったことのないことを行う場合も同じです。他の人が同様の問題をどのように解決したかを調査すると、より早く成果を上げることができます。
  • より正確に見積もるために、タスクをより小さなチャンク(可能な限り小さい)に分割します。そうすれば、「A、B、Cは全部で約6日かかると思いますが、Dは私が見なければならないものです」のように言うことができます。「わからない」や「かかる限り」よりもずっといい音がします。
  • バグを見つけるのにかかる時間を見積もることはできません。あなたはそれを修正するのにかかる時間を見積もることができるかもしれません。困難なバグは、追跡して修正するのに2〜3日かかる場合があります。すでに配信したコードのバグは、その後の開発に時間を費やします。
  • 締め切りのかなり前に締め切りが遅れるような問題が発生した場合は、必ず彼らに知らせてください。そうすれば、上司/クライアントと話すときに上司に事前に警告されます。
  • 見積もりを超過し、幸運にも余分な時間があれば、もう少しテストするか、その時間を使用して、開発者としての生産性に役立つ何かを開発してください。
  • あなたが任意の期限に同意することに絶えずいじめられている場合、絶えず嫌がらせをしている、または説明が完全に嘘であるかのように受け取られていると感じている場合は、健康が必然的に損なわれる前に、ソフトウェアプロジェクト管理を理解している会社で静かに別の仕事を探し始めます。
于 2009-08-11T21:56:13.957 に答える
2

マーフィーの時間管理の法則:

何かにかかる時間を把握するには、どれくらいの時間がかかるかから始めます

次に、これに2を掛けます。

次に、次に高い時間単位に移動します。

したがって、プロジェクトに1日かかる場合、おそらく2週間かかります

于 2010-07-26T02:33:00.240 に答える
1

すべての回答とフィードバックをありがとうございます。

この質問をしてからしばらく経ちましたが、それ以来、スクラムとアジャイル手法を使用して時間の見積もりスキルを大幅に向上させました。ホワイトボードとスクラムを使用し、時間どおりにチャンクで配信します。

プロジェクト全体がいつ納品されるかについては、プロジェクトの規模によっては、納期は不明です。ただし、タスクをストーリーとサブタスクに分割することで、プロジェクトの規模を把握できます。これにより、納品の期待が現実的であるかどうかを経営陣に示すことができます。

さらに、タスクのバックログがあると、スプリントごとに継続的に優先順位を変更できます。これにより、最も優先度の高い問題が確実に完了します。最終的に、バックログの残りのアイテムは重要ではなく、製品はリリースに「十分」です。

これまでのところ、うまく機能しています。

詳細:http ://www.scrumalliance.org/pages/what_is_scrum、http ://www.goodagile.com/scrumprimer/

自分の回答を回答としてマークして申し訳ありませんが、これが私にとってうまくいったことです。

于 2011-07-07T18:36:33.873 に答える
1

私の経験から(マネージャーとアソシエイトの両方の側にいた)、ほとんどのマネージャーは、従業員からの見積もりを次のレベルまで報告していないことを知っています。代わりに、彼らは彼ら自身の直感と外部の制約についての知識によって行きます。

マネージャーが見積もりを依頼するとき、アソシエイトが分析を行い、サブタスク、主要なギャップ、依存関係などを把握することよりも、見積もり値自体を気にしないことがよくあります。言い換えると、見積もりを依頼することは、多くの場合、経営陣が従業員を動かすために採用するトリック。この場合、推定値は、従業員に分析を強制するための依存性注入メカニズムにすぎません。

もちろん、トリッキーなマネージャーは、特にそれが過小評価されていた場合は、見積もり値を覚えて、プロジェクトの緊急度を制御するためにそれを使用する傾向があります。

于 2009-09-28T18:13:17.397 に答える
1

私ができる最善のアドバイスは、タスクをより小さな部分に分割し、それらを見積もることです。楽観的および悲観的な範囲を計算するために、各サブタスクに「信頼度」のパーセントを付けることができます。そうすれば、上司が「5〜8日ですか?それはまったく役に立ちません。これらの数字はどこで思いついたのですか!?!?」あなたは彼にあなたの内訳を示すだけで、あなたには正当性があります。有能なマネージャーは、あなたがコミットするためにいじめられるためにあなたが逸脱するものではなく、あなたがコミットするもののためにあなたの尻を置くべきです。

于 2009-08-11T21:22:59.640 に答える
1

これを改善するための1つの方法は、元の見積もりを追跡し(最初は暗闇で撮影する必要がある場合)、実際にかかった時間を追跡することです。あなたはそれがどれほど「難しい」か、そしてそれが最初に1から10のスケールで言われるだろうとあなたが思ったどれほど難しいかを推定したいかもしれません。

しばらくこれを行うと、パターンが見え始め、見積もりがどのように良い/悪い(相対的な用語)であるかを理解し始めるかもしれません。

時間が経つにつれて、これらを使用して見積もりを再考するのに役立ててください。たとえば、過去数回、中程度の難易度(たとえば、10のうち5)の5日間のタスクを推定しましたが、平均して5日間休みました。

それで私はこれで10日を見積もり、何が起こるかを見るつもりです。:)

この演習を継続的にやり直すと、これをより適切に処理できるようになります。

ああ、そうです、すでに述べたように、見積もりは難しく、そこにはたくさんのリソースがありますが、練習や本当に良いメンターのようなものはありません。:)

于 2009-08-11T21:37:36.290 に答える
1

見積もりについてのいくつかの考え:

  • 見積もりはコミットメントとは異なります。これらは、一連の作業にかかる可能性のある作業(時間ではなく)に関する入手可能な情報を使用した最良の推測です。
  • 見積もりは単一の数値ではありません。見積もりは、範囲(下限/上限)または値と信頼係数のいずれかとして実際に考える必要があります。
  • 見積もりには許容誤差があります。この許容誤差を減らすには、通常、分析と評価の実行により多くの時間を費やす必要があります。非常に正確な見積もりを作成するための努力が、タスク自体の努力に近づき始めるポイントがあります。
  • 漠然と定義された一連の作業に基づいて信頼できる見積もりを作成することは、非常に困難です。このような状況では、高い許容誤差が予想されます。
  • タスクを見積もるとき、最良の道標は過去の同様のタスクの経験です。
  • 履歴情報が利用できない場合(作業の労力が一意であるか、この履歴を追跡していないため)、できる最善の方法は、タスクを意味のある最高レベルの作業に分解することです。
  • システムまたはコードベースの経験がある可能性のある組織内の他の人に、見積もりを確認するように依頼してください。
于 2009-08-11T21:39:24.273 に答える
1

Steve Mcconnell(別名Mr Code Complete)によるすばらしい本へのリンクは次のとおりです: http : //www.amazon.com/Software-Estimation-Demystifying-Practices-Microsoft/dp/0735605351/ref=ntt_at_ep_dpt_3-Software Evaluation Demystified

基本的な手順は次のとおりです。

  • ピースを理解可能/実行可能なチャンクに分解します(ワークブレークダウンストラクチャを調べます)
  • さらに情報が必要なアイテムがある場合は、それをメモし、マネージャーにできるだけ早く通知するようにしてください
  • あなたが持っている作品には、あなたが以前にやった他のアイテムと同じようなアイテムが含まれている必要があります-それはそれらに推定を提供するのを簡単にするはずです。あなたの快適さのレベルに基づいたあなたの腸の反応時間-例えば10%から30%の間のどこか)そしてあなたがただ大げさに推測しなければならないそれらのアイテム(それらに%の範囲を追加してください、それは30%から500%のどこかになります)
  • 成果物のリストをスプレッドシートにまとめ、各項目に名前を付け、完了の快適さのレベル(高から低)、推定時間-範囲(最小1日から最大5日)、および含む可能性のあるメモ質問と仮定。
  • 上司に提示して話し合う

完了する必要のある項目、質問、前提条件、および可能な納期の範囲を含む話し合うドキュメントは、プログラミングの成熟度のレベルに大きく影響します-日数/週数(または単にsnide remark)そして決して近づくことはありません。上司がそれを理解していない場合は、新しい上司を見つけてください。

于 2009-08-12T20:55:29.830 に答える
0

可能であれば、別の仕事を見つけてください。上司は、プロジェクト管理、リソース管理、ソフトウェア開発について何も知らないようです。

一般的に、あなたが与えることができるのは見積もりだけです。あなたの見積もりは経験を積むことでより良くなるでしょう(ほとんどの場合、あなたは今日よりもはるかに多くの努力を見積もるでしょう)。そして-sw開発者なら誰でも知っているように、実際の努力の90%以上を要する(そして開発時間を大幅に増やす)愚かな問題にぶつかるオプションが常にあります。

于 2009-08-11T21:23:45.957 に答える
0

私は一般的に、私が実際に思っているよりも3〜4倍長くかかると言います。たとえば、2日で何かを作れるとわかっていれば、1週間かそこらと言います。

そうすれば、あなたがあなたの推測された時間よりかなり下で終えるならば、あなたは英雄のように見えるでしょう!:P

于 2009-08-11T21:24:57.280 に答える
0

多くの場合、過去の経験と履歴データが見積もりを提供するのに最適です。履歴データを使用して将来のタスクを予測する前に、同様のコード/問題を処理したことがある場合。もちろん、新しいものやまったく未知のものを扱っている場合、正確な見積もりを提供することは困難です。もちろん、それらは「見積もり」であり、物事がいつ行われるかについての知識に基づいた推測です。

于 2009-08-11T21:33:14.817 に答える
0

私は2つのことをします:

  1. 同様の複雑さの最後のタスクである「昨日の天気」手法を実行するのにかかった時間に基づいて見積もります。
  2. 必要に応じて範囲の見積もりを出します。「うまくいけば2日。本当に悪い場合は2か月になる可能性があります。」これは見積もりの​​極端な範囲ですが、可能な限り正確なタスクがあります。範囲を指定する場合は、その範囲が存在する理由も必ず指定してください。
于 2010-07-26T03:14:06.227 に答える