問題タブ [estimation]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
estimation - 多くの時間を費やさずに見積もりを行うための最良の方法は何ですか?
バックグラウンド
現在、私のチームは、主要な書き換えを出荷するための「バグ修正と研磨」フェーズにあります。いくつかのマイルストーンに対して予定されている、修正すべきバグの山がまだたくさんあります。各マイルストーンのバグを修正するために必要なエンジニアリング作業の見積もりを出すように依頼されました。
以前のマイルストーンでは、次のプロセスに従いました。
- コードのその領域について最もよく知っている人にバグを割り当てます。バグを修正する可能性が高い人です。
- 各人に割り当てられたバグを調べてもらい、バグを修正するのにかかると思われる時間を 1 時間単位で見積もってもらいます。バグの修正に 1 日か 2 日以上かかる可能性があると思われる場合は、そのバグを可能性の高いサブタスクに分割し、それらを見積もります。
- マイルストーンごとに各人に割り当てられた作業量を合計し、作業量が大幅に異なる場合はバランスを取ってください。
- 各マイルストーンの各人の合計に「パディング係数」を掛けて、過度に楽観的な見積もりを考慮します (1.5 を使用しています)。
- 特定のリリースのチーム メンバー全体で最大の合計を取り、それをチームが既存のバグをクローズするのにかかる時間にします。
- 特定のマイルストーンに到達するまでに作成されると予想されるバグの数を見積もり、これらのバグのそれぞれを解決するのにかかる平均時間を見積もります。これを、各リリースの既存のバグをクローズする時間に追加します。これは、必要な作業量の最終的な数値であり、そのマイルストーンを確実に出荷する日付として提供されます.
これはかなり正確ですが (これまでの 3 つのマイルストーンではほぼ正確に達成できました)、かなり時間がかかります。
現在の問題
今後のマイルストーンのエンジニアリング時間の見積もりを提供するよう求められましたが、時間がかかりすぎるため、上記のプロセスを使用しないように求められました. 代わりに、チームの技術リーダーとして、確実性の低い見積もりを提供するように求められました。
私の主な見積もりの経験は、上記の方法のいくつかのバリエーションを使用したものです(長年のフリーランスのバックグラウンドから)。大きなタスクで「腰から撃つ」と、気が遠くなる傾向があることがわかりました。よくわからないコードの領域のバグを修正するのにかかる時間を見積もると、さらに悪化するのではないかと思います。
物事を細かいタスクに分解して見積もることなく、迅速に見積もるのに成功したヒント、トリック、またはテクニックは何ですか?
オプションではないもの:
- 見積もりを出していない - 私はこれを試したが、飛ばなかった:)
- とてつもなく広い数値と信頼区間を選ぶ - 私はこれを検討しましたが、うまくいくとは思いません。
- エビデンスベースのスケジューリング - JIRA を使用していますが、これにはエビデンスベースのスケジューリング ツールが書かれていません。現在、FogBugz に移行することはできません。 JIRA、私たちは喜んでそれを支払います)。
sitemap - Web サイトのワイヤーフレームには何が必要ですか?
私が関与している会社のウェブサイトを作成するための入札を得るために、多くのプログラマーやカスタムソフトウェア会社と会う予定です. 私の質問は次のとおりです。プログラマーが Web サイトの開発のための正確な入札、タイムテーブルなどを私に与えることができるように、プログラマーに何を準備すればよいですか? サイトをどのように機能させたいか、および含めたい機能を明確に把握しています。
estimation - サイトのすべての機能を把握していない場合、Web サイトのビルド (更新) をどのように見積もればよいですか?
ここには見積もりに関する質問がいくつかあることを知っており、それらのほとんどを読んでいますが、これは少し異なります。Web サイトの更新を行っている場合、ページの作成と開発にかかる時間を増やす使いやすさの強化が含まれる場合があります。Web サイトを見て、現在の状態が将来の状態であると自分に言い聞かせることは決してありません。もしそうなら、私たちのクライアントは私たちの専門知識を求めていないでしょう. RFP に回答したり、正式な作業明細書を作成したりする前に、チームのブレインストーミングを行うことは常に必要ですか? ブレーンストーミングを行っている人が最終的な作業を行っていない場合はどうなりますか? 私たちは現在のサイトの在庫をある程度しか把握できません。潜在的なクライアントに私たちがどこにいるのかを教えて、私たちが知っていることだけを見積もるべきだと思い始めています。
language-agnostic - ハッシュの衝突確率を評価するにはどうすればよいですか?
検索システムのバックエンド アプリケーションを開発しています。検索システムはファイルを一時ディレクトリにコピーし、ランダムな名前を付けます。次に、一時ファイルの名前をアプリケーションに渡します。私のアプリケーションは、限られた時間内に各ファイルを処理する必要があります。それ以外の場合はシャットダウンされます。これはウォッチドッグのようなセキュリティ対策です。ファイルの処理には時間がかかる可能性が高いため、このシナリオを処理できるアプリケーションを設計する必要があります。次に検索システムが同じファイルのインデックスを作成しようとしたときにアプリケーションがシャットダウンされた場合、別の一時的な名前が付けられる可能性があります。
明白な解決策は、検索システムとバックエンドの間に中間層を提供することです。バックエンドへのリクエストをキューに入れ、結果が到着するのを待ちます。リクエストが中間層でタイムアウトした場合 - 問題ありません。バックエンドは引き続き動作し、中間層のみが再起動され、後で検索システムによってリクエストが繰り返されたときにバックエンドから結果を取得できます。
問題は、ファイルを識別する方法です。それらの名前はランダムに変わります。MD5 のようなハッシュ関数を使用して、ファイルの内容をハッシュするつもりです。私は誕生日のパラドックスをよく知っており、リンクされた記事からの推定を使用して確率を計算しました。100,000 個以下のファイルがあると仮定すると、2 つのファイルが同じ MD5 (128 ビット) を持つ確率は約 1,47x10 -29です。
このような衝突確率を気にする必要がありますか、それともハッシュ値が等しいとファイルの内容が等しいと仮定する必要がありますか?
estimation - ユースケースポイントに基づく労力の見積もり
今のところ、経験に基づいて、最近はファンクションポイントを使用して労力見積もりを行っています。
私は現在UCPを調査しています。この記事を読んでくださいhttp://www.codeproject.com/KB/architecture/usecasep.aspx。次に、ユースケースポイント(UCP)に基づいて他のさまざまな記事を確認しました。私はそれがどのように正確に機能するのか、そしてそれが正しいのかを知ることができません。
たとえば、ユーザーがユーザーIDとパスワードを提供するログイン機能があり、データベース内のテーブルをチェックしてログインを許可または拒否します。ユーザーアクターとログインをユースケースとして定義します。
UCPに従って、ログインのユースケースをシンプルに分類し、GUIインターフェイスを複雑に分類します。UCPファクターの表によると、5と3を取得するため、合計は15になります。技術ファクターと環境ファクターの調整を適用すると、7になります。生産性ファクターを20とすると、140時間になります。しかし、私はそれが文書化とテストの努力と一緒にせいぜい30時間かかることを知っています。
ここでユースケースを定義する際に何か間違ったことをしていますか?UCPによると、インターフェイスがGUIの場合は複雑ですが、ここではGUIが十分に簡単なので、その要素をダウングレードする必要がありますか?また、単純の係数は5です。別のレベルを非常に単純と定義する必要がありますか?しかし、私はここで問題を複雑にしませんか?
project-management - なじみのない概念を含むプロジェクトで時間を見積もっていますか?
経験のない分野での作業を含むプロジェクトの時間を見積もる場合、どのように見積もりますか?
ほとんどの場合、プロジェクトの領域がよく知られている場合、見積もりを正しく行うことは十分に困難です。
これらの場合、どのような方法を使用しましたか? 彼らはどれくらいうまくいきましたか?
estimation - プロジェクトの取り組み/スケジュールをどのように見積もりますか?
重複の可能性:
正確な時間の見積もりを作成する方法は?
ひどい見積もりに対処する
多くの推定手法があります。Cocomoやファンクションポイントのようなフォーマルなものから、ストーリー/フィーチャーポイントのようなフォーマルでないものから、「Tosssomedice」のようなフォーマルでないものまで。
どの方法が最も有用または最も効果的だと思いますか?なんで?
見積もり方法で、プロジェクトマネージャー、マーケティング担当者、または先のとがった髪のボスが期待するものとはまったく異なる結果が得られた場合はどうしますか?
project-management - Webフレームワークの労力の見積もり
ファンクションポイントで言う努力の見積もりをdjangoのような特定のWebフレームワークに変換するにはどうすればよいですか?それとも、労力の見積もりはWebフレームワークのアーキテクチャにのみ依存していますか?ヒントやガイドラインが役立ちます。
EDITは、これが私のフレームワークであり、djangoと言って、私の要件をモデルとテンプレートに変換するという観点から考えさせてください。
または、一般的に言うと、これらは私の要件です。これらは私のファンクションポイント(一般的な見積もり手法)であり、これをdjangoフレームワークの制約に変換して、労力の見積もりを行うことができます。
ruby-on-rails - Rails アプリの開発コストを見積もるには?
作成したいアプリケーションがあります。ほとんどの場合、私は自分が何を望んでいるのかを知っています。そして、私はそれがどのように機能し、どのように見えるべきかについての良いスケッチを持っています.
アプリケーションを実装するためのコストを見積もる方法を知りたいです。開発者にアプローチする前にこれを行い、自分で開発に資金を提供し、他の人の時間を無駄にしないようにします。
これは簡単に答えられる質問ではなく、おそらくここではまったく答えられない質問だと思います。ただし、コストを概算するための概算の数値と方法があることを願っています。
また、アイデアから実装に移行するための提案された手順があれば、ぜひ聞きたいです。ありがとう!
明確化: 金額での回答を求めているわけではありません。(非常に大まかな)図を作成する方法についてのガイダンスを探しています。最終的に、私はこの数字を使用して、私が個人的に快適に開発に資金を提供できるかどうかを判断します. 繰り返しますが、この質問には欠陥があるかもしれませんが、誰かが賢明な答えを持っているのではないかと思わずにはいられません。おそらく、独自のプロジェクトに基づくコスト/時間の数値、またはその他の適切なアドバイス. ロバートはすでに持っているので、100万ドルかかるとは言わないでください。:)
language-agnostic - ホフスタッターの法則をどう扱うか?
タスクを見積もるとき、どうすればホフスタッターの法則から抜け出すことができるでしょうか?