開発者は、Excelマクロによって実行されるワークロードの見積もりを受け入れる必要がありますか?


12

新しいプロジェクトでは、友人がテストを作成する必要がありました。テストの作成に必要な時間は、開発者以外のマネージャーが作成したExcelマクロによって計算されました。

そのような状況では、開発者は計算された時間内にテストを記述して実行する責任を受け入れる必要がありますか?これらのテストの結果は信頼できるものですか?

情報については、私の友人は、自分が行っていない推定に対する責任を拒否し、別のプロジェクトで成功するように頼み、経験の浅い学校外のイエスに置き換えられました。


7
「推定」を「受け入れる」とはどういう意味ですか?何かをするのに30日かかると見積もったら、それを「受け入れる」としたらどうなりますか?あなたが何かをするのにどれくらいかかると見積もるのか、何を気にしますか?あなたは私が気にするすべてのために私が1分でそれをするだろうと推定することができます、あなたは私ではなく、間違っているでしょう。
デイビッドシュワルツ

2
@David見積もりを受け入れるとは、通常、見積もりを確認してコンセンサスを確保することを指します。たとえば、パラメトリック推定ツールを使用している場合、プロジェクトエンジニアにデータを確認して一貫性を確認し、おそらくWideband Delphiなどの2つ目の方法を使用します。
トーマスオーエンズ

12
ディルバートの漫画のためにスコット・アダムズに送られるべきもののように聞こえます。
-MetalMikester

1
レビューがある限り。この特定の例はありませんでした。
ネルスター

5
覚えておいてください:見積もり、コミットメント、目標、目標を達成するための計画は4つの異なるものです。これらのものが何であるか、Excel出力がこれら4つのもののどれであるかについて、全員が明確であることを確認してください。
-nlawalker

回答:


14

開発者にとってどれだけ賢明であるか、およびどのデータ/ロジックに基づいているかに依存します。(彼らは可能性がある、過去に同様のタスクを解決するために...または、彼らは-この開発者自身によって、および/またはその他による-要求されたどのくらいの時間については、数年にわたって収集した統計データに基づいているかもしれない彼のマネージャーさんに完全に基づいています-正しいか間違っている-仮定。)

理想的には、他の誰かが見積もったタスクにコミットして責任を負うことは合理的に期待できないとマネージャーと話し合う必要があります。

推定値へのコミットを明確に拒否すると、実際に彼の迅速な交換につながる可能性があります。


7

おそらく、マクロはある種の入力データで動作しているのでしょう。それは単なる乱数ジェネレーターではありませんか?したがって、あなたの質問に答えるためには、入力データが何で、マクロが何をするのかを知る必要があります。これがないと、答えはまったく意味がありません。

または、関連する経験のないマネージャーが作成した見積もりを受け入れることについて、あなたの質問は本当にありますか?この場合、答えは「いいえ」です。あなた(またはあなたの友人)は独自の見積もりを作成し、それらをマネージャーに提出する必要があります。2つの数値が一致しない場合は、一緒に作業して最適な方法を見つけ出す必要があります。テストの記述を減らすことに同意するか、すべてのテストの記述に時間がかかる可能性があります。

ポイントブランクの拒否は誰にも役に立たないでしょうし、あなたが会えないタイムスケールで働くことも面白くありません。


テストはサブサブ部分(ほぼアトミック)にスライスされ、小さな見積もりが得られます。
ネルスター

この方法を使用すると、最終テスターは全体像を確認/テストしないと思います。
ネルスター

1
「おそらく、マクロは何らかの種類の入力データで動作します。これは単なる乱数ジェネレータではありません。」そのようなアルゴリズムを正確にするすべての変数をキャプチャする方法がないため、ランダムである可能性もあります。
maple_shaft

1
@maple_shaft:それが彼らがそれを推定と呼ぶ理由です-それは正確であると期待されていません(またはそうあるべきではありません)。Excelの計算を使用して、または鉛筆と紙を使用して推定しても、違いはありません。Excelを推定に使用することは、私が使用している他のいくつかの「技術」よりもはるかに理にかなっています
...-Treb

@Trebの推定値は、Cone of Uncertaintyを前提として、提供されたデータと現在のプロジェクトステータスが許す限り正確でなければなりません。
トーマスオーエンズ

5

間違いなく

小さなプログラムは、大規模で複雑なプログラムであっても、プログラミング作業にかかる時間を推定することはできません。その理由については、ソフトウェア推定の数学的制限を参照してください。より長く、査読済みの論文であるソフトウェア推定の大きな制限も利用できます。

また、問題のマネージャーに対する私の意見を再検討します。他のすべてが過去にソフトウェアタスクの継続時間を推定しようとしたため、過去にスプレッドシートマクロは試行されていないと信じているのはなぜですか。


1
これらの論文を(まだ)完全には読んでいませんが、入力データが有効であると仮定して、20年以上にわたって15%以内のソフトウェアプロジェクトを推定するためにパラメトリック手法が広く使用されています。さらに、Wideband Delphiなどのコラボレーティブメソッドは、パラメトリックモデルの精度を確認できます(使用されています)。パラメトリック手法とソフトウェアプロジェクトへのWideband Delphiの適用に関する議論については、Software Engineering Economics(Boehm)を参照してください(パラメーターモデルの有無にかかわらず)。
トーマスオーエンズ

私はトーマスに同意します。プロジェクト全体のすべてのタスクを正確に予測することはできませんが、プロジェクトの過程で、特定の組織の履歴データを使用して、大まかに見ることができます。時間がかかるタスクと短いタスクがありますが、最終的には平均化されます。特に、プロジェクトが組織によって既に行われているものと類似している場合。そうは言っても、ハードウェア/ソフトウェアが宣伝どおりに機能しない、新しい技術が予想よりはるかに難しい、開発者不足、リーダーシップと管理の悪さなど、予想は本当に悪い予期しないことを説明できません。
ダンク

1
皆さんはこの論文を読んで理解する必要があります。単純なスプレッドシートマクロでは、正しく推定することはできません。ソフトウェアは数学であり、数学システムには不完全性として知られる小さな問題が発生する場合があります。問題のマネージャーが自分をだましており、マクロの結果が現実と相関していないことを保証します。
ブルースエディガー

1
@Bruce:プロジェクトの見積もりに数式(Excelスプレッドシートを含む)を使用して成功したので、トーマス、マネージャー、または私自身が必ずしも自分をだましているわけではないと断言できます。私が述べたように、個々のタスクはそれぞれ異なりますが、プロジェクトの過程で均等になる傾向があります。フォーミュラ(長期にわたって開発および変更)を使用することは、個々の開発者の見積もりよりもはるかに正確であることがわかりました。一般的に、開発者は過度に楽観的または過度に悲観的です。もちろん、式は合理的なデータが与えられた場合にのみ機能し、スキルは確かに要因です。
ダンク

昨夜それらの論文を読みました。彼らは、プロジェクト管理における40年以上の証拠と、ソフトウェアプロジェクト管理における30年以上の証拠に反しています。iiasa.ac.at/Admin/PUB/Documents/RM-75-071.pdfおよびsunset.usc.edu/csse/research/COCOMOII/cocomo_main.html
Thomas Owens

4

うん!

これは巨大な「仕事の匂い」です。それは信じられないほどのマイクロ管理です。

彼らが従業員を信頼して見積もることができない場合、他にあなたを信頼していないものは何ですか?


1
99%の開発者は、正確な見積もりはもちろんのこと、客観的なものに基づいた悪い見積もりを思い付くことさえできません。だから、他の誰かが見積もりを思いついたので、「仕事の匂い」を示すものは何もありません。特に、実際のデータを使用して番号を正当化する場合。人々がすべてのタスクを見積もる責任を負っている場合、それは仕事の匂いの問題です。ただし、ツールがすべてのタスクを大幅に過小評価した場合、すべての開発者がその見積もりを失います。OTOH、他の誰もがほとんどすべての推定値を満たしているように見え、別の開発者が決して満たさない場合、それは開発者の匂いの問題です。
ダンク

@Dunk-私の主張は、ソフトウェアの開発におけるこの程度のマイクロ管理は「仕事の匂い」であり、そこで働きたくありません。
ozz

1
あなたがマイクロマネジメントと呼ぶものは、多くの産業でビジネスを行う唯一の方法です。大規模なプロジェクトの合理的なコストとスケジュールの見積もりを考え出すことができない場合、会社は契約を取得するのが非常に困難になります。アジャイルの理想とは反対に、多くの業界の顧客は、最終的に何が得られるかわからない場合、数千万ドルの契約を確約しません。彼らはお金がなくなって、実用的な製品を持っているという考えに満足しませんが、それは彼らが必要とするか望んでいるものの50%しかしません。
ダンク

@dunk-経営陣が見積もりを作成することに満足している場合は、先に進んでください。開発チームに見積もりを作成してもらいたいです。多くのソフトウェアプロジェクトが予定どおりに予算内で納品できなかったのは、馬鹿げた管理の見積もり(常に変化する要求、その他すべての議論と共に)です。私はむしろ仕事をする人々を信頼したいです。
オズ

経営者が見積もりを行うことや、見積もりを行う作業を行う人々の問題ではありません。それはあなたの尻から推定値を引き出すか、いくつかの客観的なデータに基づいて推定値を試みることの問題です。私の経験では、管理者の見積もりと開発者の見積もりを比較すると、管理者の見積もりが完了するまでに時間がかかる傾向があることがわかりました。開発者は楽観的である傾向があります....-
ダンク

3

絶対にNO。

マネージャーは、Excelマクロが推定を正確に予測できると考えるのに惑わされないことをお約束します。アルゴリズムでこのようなことを正確に予測するには、変数が多すぎるというよく知られた事実を議論することすらありません。彼がそのようなアルゴリズムを発明した場合、彼はそれを特許し、私の意見では数百万を稼ぐべきです。

ここで実際に起こっているのは、マネージャーがこのExcelマクロを薄く隠された変装として使用して、開発者に非現実的な期待と過度の圧力を強いているという事実を隠すことです。

彼はそれがBSであることを知っており、気にしません。リソースをオーバーブッキングして、彼の「価値のない」開発者全員を永続的に「後期」にすることによって、物事を早く終わらせようとする言い訳です。

このマネージャーは搾取的なジャークのように聞こえます。


1
ええ、マネージャーが開発者の見積もりを作成しているからといって、開発者が不正確であることを意味するわけではありません。マネージャーが有能である場合、彼らはそれに応じて現実的と非現実的でかなり簡単に調整することを認識する必要があります。
-rjzii

1
@Rob、あなたはOPが作ったキーポイントを忘れており、それらはこれらの推定値に保持されていることを忘れています(チームの前の開発者が「推定値に保持されたくない」と言って再割り当てされたために厳密に仮定されます)。推定モデルには何の問題もありませんが、大まかなガイドラインであり、「開発者を拘束する」ものであってはなりません。残念ながら、多くの人々が管理を行っています。
maple_shaft

2
ここで問題となったのは、これらの見積もりが顧客の請求書に直接反映されることでした。なぜ一部のマネージャーはそれを見積もりと呼んでいますか?
ネルスター

@maple_shaft-見積もりが何であるかを知らずに、それらが不合理であり、したがって、それらに保持されることに反対することが有効であるかどうかを言うのは困難です。それらが公正な見積もり(すなわち、「Hello Worldを書くのに8時間」)である場合、哲学を超えて彼らに抱かれるのに問題はありません。
rjzii

3

新しいプロジェクトでは、友人がテストを作成する必要がありました。テストの作成に必要な時間は、開発者以外のマネージャーが作成したExcelマクロによって計算されました。

ソフトウェアプロジェクトを含むプロジェクトの完了時間を推定するためのパラメトリック推定モデルがあります。通常、見積もりは量産コード用ですが、テストコードを書くのにかかる時間を見積もるために推定できない理由はわかりません。ただし、これらの推定値は、それらに供給されるデータと同程度にしか優れていません。

使用される方法が有効な推定モデルであり、データが正確で有効であると仮定すると、開発者以外のマネージャーが作成したExcelマクロから適切な推定値が得られない理由はありません。

そのような状況では、開発者は計算された時間内にテストを記述して実行する責任を受け入れる必要がありますか?

どんな状況でも、盲目的に見積りを受け入れるべきではありません。生成方法に関係なく、完全な推定値はありません。見積もりを確認し、潜在的な問題を特定し、その影響を評価し、必要に応じて見積もりを議論し、調整するのはエンジニアの責任です。

これらのテストの結果は信頼できるものですか?

テストは、テストの設計と実装に費やされた努力と同じくらい優れています。テスターが低品質のテストを作成すると、欠陥がテストをすり抜けて、プロジェクトの後の段階に進みます。スケジュールのプレッシャーが低品質のテストにつながることは理にかなっているため、適切なテストケースを設計し、それらのケースを実装するのに時間が不十分な場合、テストはそれほど有用ではありません。


3

次の2つの質問をしているように聞こえます。

これらのテストの結果は信頼できるものですか?

Excelは他のツールと同様のツールであり、計算が記述されたものがアルゴリズム自体の結果に実際に影響を与えることはありません。推定がExcelマクロから行われているという事実は、計算の結果(つまり、推定の有効性)が有効であるかどうかとは無関係です。基礎となるモデルに不適切な仮定がある場合、基礎となる仮定が正しくないため、計算に何を使用してもかまいません。

そのような状況では、開発者は計算された時間内にテストを記述して実行する責任を受け入れる必要がありますか?

開発者が指定された時間内に作業を行うという要件が連絡先にある場合、見積りが合理的である限り、それについて議論するためにできることはあまりありません。それは次の点につながります:計算が妥当な時間を与えており、開発者が自分で与える推定値と類似している場合、与えられたタイムラインに反対しない理由はありません。実際、任意のタイムラインが与えられている場合とは対照的に、モジュールで使用されている仮定に影響を与えることができるため、開発者にとって有利な場合があります。

タイムラインが必要な作業量に対して実行不可能であると思われる場合、明らかにこの懸念を提起し、マネージャーと協力してより現実的なタイムラインを取得するよう努める必要がありますが、タイムラインが実行可能な場合は、それらに反対するのに苦労します。

プロジェクト管理とタイムラインの見積もりに関しては、はい、できますが、それは行われている作業の性質に大きく依存しています。ユニットテストコードの記述に必要な時間(開発者がフレームワークを理解し、以前に記述したと仮定)に与えられるより正確な見積もりが、テストコードが記述されているユースケースに対して新しいコードを記述するよりも多く見られます。にとって。


プロジェクトの関係者間に対話がある限り、この方法を使用できる/使用できることに同意します。
ネルスター

1
@Nelstaar-プロジェクト管理と見積りで読んだことのほとんどは、時間の経過に伴うダイアログの実行と調整です。通常、最も信頼できる推定値は、示された目標を達成する確率に関して、それらに関連付けられた確率を持っています(つまり、タスクが8時間かかる確率は90%)。
-rjzii

2

筆記テストを軽視したくはありませんが、このプロジェクトではおそらく以前に複数の開発者がテストを作成していたでしょう。推定値がこれらのデータに基づいている場合、友人が想定しているよりも正確である可能性があります。あなたの友人がプロジェクトを去り、対立する見積もりを作成しようとしたり、予想どおりに完了するかどうかを確認したりしなかったため、私たちは決して知りません。

彼がしなければならなかったのは、推定がどれほど正確であるかを確認するために1つまたは2つのテストを完了し、正当な主張でマネージャーに戻ることでした。見積もりの​​信頼性や遅れの結果についてフィードバックを提供できた他のチームメンバーがいるかもしれません。時々、一人のマネージャーが上司に「何か」を与えて全員を幸せにしなければならないことがあります。開発者は、これを誤ったセキュリティ感覚と見なしています。おそらく、開発者が見積もりを提供し、物事を成し遂げる意欲を示す動きがあった場合、経営陣はより信頼を高めるかもしれません。

私が推測しているのは、彼がより短い時間でテストを完了することができた場合、彼はそれについて何も言わないだろうということです。繰り返しになりますが、彼が信じていない慣習から自分自身を免除することは、高レベルの完全性を示している可能性があります。


見積もりに関してタスクを遂行している間にフィードバックを与えるために+1。
-rjzii

1

簡単で短い答え:

推定値がどこから来るかは気にしません。

実際に気にするのは、推定そのものです。それに同意するか同意しないで、あなたが推定する理由と量説明してください。それが最も重要です。


1
推定値がどこから来ているかに注意する必要があります。有効で合理的な入力を備えたパラメトリックモデル、乱数発生器、コンピューターサイエンスの1年生、ドメインで6か月未満の5年の経験を持つソフトウェアエンジニア、および25年の経験のあるプロジェクトマネージャーになったソフトウェアエンジニアドメイン内では、効果的な推定値を生成する能力がすべて異なります。これは、見積もりを適切に表明、防御、および挑戦するソフトウェアエンジニアの倫理的/専門的責任についての以前の回答について私が行ったコメントに戻ります。
トーマスオーエンズ

正確に:最も重要なのは、見積もりを議論することです。25年の経験を積んだエンジニアよりも頻繁にExcelのマクロを使用した方が適切な場合は、Excelマクロの使用を喜んで承認します。重要なのは、誰が何を発表したかではなく、推定とそれにつながる説明(ワークロード、利用可能なリソース、難易度)です。
クレメントヘレマン

あなたはあなたの答えが間違っていると言って私に同意しますか?同じ入力(ワークロード、リソース、難易度など)が与えられた場合、誰が何を、なぜと同じくらい重要です。それは信頼要因に帰着します。COCOMO(ソフトウェアのコスト見積りの有力者によって作成および保守されている)は、Excelマクロ(コスト見積りの経験と知識が限られている、アプリケーションドメインがはるかに少ない人によって作成された)よりも信頼しています。この見積もりの​​信頼性を確立することは全体像です。
トーマスオーエンズ

いいえ、私は十分に明確ではないと思います。が推定行ったかは本当に重要はありません。重要なのは、推定の精度です。見積もりが得られるたびに、見積もりと比較し、同意するかどうかをプロジェクトマネージャーと話し合います。それらの議論が十分であれば、私は彼らに同意し、推定を受け入れます。見る?誰が推定したのかについて話したことも考えたこともありません。
クレメントヘレマン

推定者と使用した方法がわからない場合、どのように精度を判断しますか?同じデータを2人に渡すことができます。1人はソフトウェアエンジニアリングの1年生で、現在は最初のコンピューターサイエンスコースを受講しており、もう1人は15年の経験があり、5人のドメインを持っています。どちらも同じ推定方法を使用します(忘れないでください-多くの場合、入力も推定値です)。学生は、95%の自信を持って6か月かかると言うことができます。シニアエンジニアは、80パーセントの自信を持って15か月かかると言うことができます。上級エンジニアをもっと信頼したいです。
トーマスオーエンズ

1

理論的には、開発者は、それがどのように到達したかに関係なく、他の人によって行われた見積もりを受け入れるべきではありません。理由の1つは、上司が納得できるよりも長い見積もりを与えると、スケジュールの潜在的な問題や、実行する作業範囲に関する誤解がすぐに明らかになることです。

一般に、プログラミング時間の見積もりはプログラミング自体よりも難しいと感じているため、マネージャーがExcelマクロを作成してその問題を解決できる場合、おそらくマクロを作成してコードを作成できます(ほとんどありません)。

さて、実際には、作業を理解し、見積もりが合理的である場合、合格する方法論について何らかの懸念を表明するだけで、それらを満たせるかどうかを暫定的に合意することは理にかなっています。後で、作業が見積もりよりも長くかかっている場合は、できるだけ早く上司の注意を引く必要があります。実際の実装経験に基づいて、正確な理由について話し合う準備をしてください。その時点で、マネージャーが不合理にならず、機械的に生成された見積もりに取り組むことを主張し続けることを願っています。


-1

最新のソフトウェア開発方法論の1つはアジャイルであり、よく知られているアジャイルフレームワークの1つはscrumです。ただし、この方法論では、開発者(スクラムチーム)がタスクの実行またはユーザーストーリーの実装に必要な時間を計算します。

私は間違いなくノーと言います。なぜなら:

  1. 開発者以外のマネージャーは、仕事に必要な時間を見積もることができません
  2. 仕事に必要な時間を見積もるには、Excelにはない人間の知性が必要です
  3. このような作業慣行を受け入れることで、マネージャーは時間を見積もる際に開発者に取って代わるのに徐々に慣れてきます。これにより、大災害が発生する可能性があります。上司が言うこのシナリオを考えてみましょう。

オンラインで自転車を販売するための新しいプロジェクトを開始したいのですが、あなたとジョンがそれを達成するのに3週間かかることがわかっています。


5
OPは、友人のチームがアジャイルメソッドを使用していることについて言及していません。アジャイルルールは、他の方法を使用する(または方法をまったく使用しない)チームにとっては関係ないと思います。ただし、常識は次のとおりです:-)さらに、推定値を決定したのはExcelではないことは明らかです。チームメンバーごとに特定のタスクの見積もりを入力した場合、Excelでこれらの平均を計算するように設定すると、Excelが見積もりを作成しますか?
ペテルトレック

3
1と2は明らかに偽です。パラメトリック推定モデルは、ソフトウェアプロジェクト管理で広く受け入れられており、20年以上にわたって使用されており、プロジェクト管理のトレーニングを受けた人(ソフトウェアエンジニアであるかどうかに関係なく)は、これらのツール(または、できればプロジェクトエンジニア)入力の正確な推定値を提供できます。
トーマスオーエンズ

3
-1-これは質問に答えず、明らかなエラー(「...最新のソフトウェア開発方法論はアジャイル」)を持ち、関連性を追加するようには見えません。賛成票や受け入れられた答えが何のためだったのかわかりません。
モーガンハーロッカー

1
パラメトリック推定がこの会社の標準であるかどうか、および/またはそれが彼らのビジネスの良い歴史に基づいているかどうかという質問からは確かにわかりません。私が言いたくない限り、そうであれば、組織の受け入れられた操作手順に従って仕事をすることを拒否することは合理的な質問の道をたどることなく不注意です。
スティーブンV

2
@Thomas私は同意します、私たちは状況について知らないことが多すぎると断定的にはいまたはいいえに答えることができると思います。良いキャリアの動き。
スティーブンV
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.