若手プログラマーとして見積りを処理する


16

私は数か月間、(特にジュニアではなく一般の人々のために)タスクを見積もる会社で働いていました。その後、タスクを与えられ、それを解決し、2つのテストを経て、最後に見積りがやや会った。

見積もりの​​いくつかは、私が満たすことが単に不可能であるため、私はストレスを超えています。私はまだシステム全体を知らないので(非常にかなり大きいので)、時には半分の時間が私が何をする必要があるのか​​を見つけるのに費やされ、どこでそして終わるまでに時々見積もりが終わり、まだテストがあります完了(および、誤りがある場合は修正)。

似たような機能を二度と処理しなければならない場合、すべてがずっと速く動作しますが、今のところプログラミングが苦手だと感じています。

このステージを乗り越えるのに役立ったのは、始めたばかりのときに何かしたことはありますか?コードを作成する時間があまりにも少ないので、自分がやっていることにきちんと焦点を合わせることができず、それがさらに悪化することがあるのを見ると、私はとてもストレスを感じます。


2
私も最初の仕事を始めたとき、私は非常に似たような経験をしました。心配しないで、それは非常に一般的です。
ロックラン

1
@ratchetfreakこれは間違いなくプログラマーのことです。私が取り組んだシステムは非常に巨大だったので、私は以前に膨大なプログラミングの経験がありましたが、インターンシップでも同様の経験がありました。
JSideris

1
見積もりは推測です。物事は完了したときに完了します。コーナーをカットできる場合もありますが、これは3日前に行った見積もりに合わないために、ハードデート(リリース/カスタマープレビュー/ ...)に対してのみ行います!002
マーティンバ

回答:


12
  • 管理経験がほとんどない多くの開発者は、チーム内の独自の速度または「最高の」開発者の速度を使用してタスクを見積もります。

  • 速度は経験によって異なります。上級開発者は何かを解決するのに3時間かかりますが、同じ問題を解決するのに2営業日かかります。

  • 新しい仕事に就くとき、ストレスはめったに回避できません。数か月後には、十分な作業を行い、多くの関連する質問をすると仮定すると、通常は良くなります。

  • あなたの先輩は、あなたが見積りについてどのように感じているかを知らないかもしれません。したがって、あなたは彼らにあなたに何を期待しているのかを尋ねることが重要です。

私の経験から:

  • シニア開発者またはマネージャーは、Tシャツのサイズ(XL、L、M、S、XS)の観点からユーザーストーリー(ビジネス要件)を推定できるはずだと思います。

  • ユーザーストーリーをより小さなタスクに分割し、それらを見積もるのは開発者の仕事です。大規模なタスクでは、シニア開発者が解決するのに1日かかる場合がありますが、1週間かかる場合があります。

  • タスクを完了するのに実際にかかった時間を記録することは非常に重要です。

  • 優れたプロジェクトマネージャーまたは上級開発者は、常にこの統計を収集します。あなたの生産性が向上すると、彼らはそれを認識し、より多くの仕事をあなたのやり方で送ります。

これにより、あなたの人生のストレスが軽減されるだけでなく、部門がリソースを効果的に管理できるようになります。


11

チームリーダー、プロジェクトマネージャー、および/または推定を行う人にこれを提示してください。私たちではありません。人々は物事がすべての人にとって同じ量の努力を必要としないことを理解しており、タスクが割り当てられたときに見積もりを調整するか、少なくともレビュー期間についての不安を和らげるために働くことができます。

これは、私の意見では、タスクを割り当てられた人が(リード/ピアからの入力/コラボレーションを使用して)見積もりを行う必要がある理由です。実際に作業に要する時間をより正確に見積もることができます。


7

もちろん、彼らがあなたに挑戦するためにそれをしているのでない限り、彼らが守れないという期待を設定するよりも、若い開発者を入れるより悪い立場を想像することはできません。見積もりを満たしていないことに本当の影響がありましたか?

最初に言っておきますが、あなた自身で推定することを学んだことが重要です。タスクが与えられたら、すぐにそれが必要だと思うものでそれを推定し、2つの間のデルタを見つけ始めます。最初の短い見積もりでは品質が犠牲になっているとほぼ間違いないでしょう。アイテムの設計と開発があなたよりも早くできると彼らが期待しているだけの場合は、問題を解決するために誰かとチャットする必要があるかもしれません。

第二に、品質は利害関係者である上司が支払いを決定する機能であることを理解してください。時間のある要件を満たすために少し犠牲を払う必要があるかもしれません。

いずれにせよ、ストレスを解消します。常に悪いコードを書いている背後にいるような感覚を続けるのは楽しいことではありません。お役に立てれば。


2

これは一般的です。

一般に、小さい推定値よりも大きい推定値を与える方が適切です(ほとんどの場合、とにかく推定値を検討します)。タスクを可能な限り最小のサブタスクに切り分け、各タスクを4時間以内に見積もることをお勧めします。

タスクに4時間以上かかる場合は、サブタスクの別のセットに分割します。また、今は予見できないタスク用のパーセントバッファーを追加します(私の個人的な好みは、作業中のシステムに応じて2から4時間かかる2つの推定タスクごとに1つの予期しないタスクです)。

その後、テスト、コミュニケーション、分析などにかかると思われる時間を追加します。


1

最初に:問題を試みるたびに速くなれば、おそらく悪いプログラマーではないでしょう。それでは、その考えを邪魔にならないようにしましょう。

私はこれがあなたのマネージャーの失敗だとお勧めしますが、期待を管理するのはあなたの仕事です。

非現実的な締め切りに間に合わないことで自分自身をbeるのではなく、実際に1週間で何日できるかを測定します。次に、チームリーダーに、ビジネスとソフトウェアの開発は初めてであり、標準の週に上級開発者の仕事をn日間しか期待できないことを説明します。彼らは、たとえそれが気に入らなくても、少なくともこれを理解すべきです。

改善を続けることを期待していることを伝え、その改善を測定する方法を示します。そして、1週間で5日間のシニア開発者の仕事ができるようになるまで、シニアの賃金を期待しないということに同意します。しかし、同様に、あなたはほとんど同じくらい支払われていない場合、シニアと同じ責任を期待していません。

これをさらに進めるために、これが見積もりに数時間ではなくストーリーポイントを使用することを強く推奨する理由です。すなわち。各ジョブには多数のポイントが与えられ、チームは一定期間内に達成できるポイント数を推定します。次の期間の推定値は、前の期間の実際の値と同じであり、休日が多い月や開発者の退職などの既知の要因に合わせて調整されます。

マネージャーとして、新しい開発者が入ったとき(ジュニアまたはシニア)、私は最初に見積もりを上げないことをビジネスに明確にします。その開発者は、他の開発者が節約するのと同じくらいの時間を費やすことが期待されます。新しい開発者はおそらくそれよりもうまくいくでしょうが、約束が不十分であり、過剰に配信することがマントラです。

開発者は時間が経つにつれて改善し、上級者は後輩よりも早くなり、チームの「速度」-毎月の見積もり-はそれとともに改善されます。


1

冷静に、戦い続けよ。見積もりを満たしていないという問題が提起された場合は、投稿で書いた内容と同じことを伝えてください。不安がある場合は、メンター/チームリーダーに相談してください。

推定値は、推定値です。ロープを学習しているときは、オフになる可能性があります。そして、ジュニアとして、特定のプロジェクトのチームメンバーとして、使用しているテクノロジーを使用するプログラマーとして、そして会社の従業員としてロープを学んでいる可能性があります。そして、あなたが賢明な人々と働いているなら、彼らは期待していますいるならあなたが見積りから外れることをしています。

「ボトムアップ」で取得しているタスクを見ている可能性があります。あなたの仕事は、あなたが取り組んでいるプロジェクトの全体像よりもあなたにとってより重要です-それは理解できます。見積もりはあなたに課せられた制限とみなされ、明らかに彼らが会っていないときに不安になっています。

しかし、全体像を見ると、開発者にとっての「目標」以上の見積もりが、リード/プロジェクトマネージャーにとっての「シグナル」であることがわかります。作業をタスクに分割して見積もることは、プロジェクト全体の管理と見積もりの​​複雑さを軽減する方法です。実際に行われた作業と見積りを追跡することは、プロジェクトの進行状況を追跡する手段ですが、適用できる指標の1つにすぎません。見積もりが定期的に満たされない場合、それはマネージャーにプロジェクトに何か問題があるという合図です。しかし、合理的なプロジェクトでは、チームの若い開発者が見積もりを満たしていないという事実はありません。


0

私の2人の友達、WAGとSWAGを紹介します

すなわち、「野生の推測された推測」と「科学的な野生の推測された推測」

信じられないかもしれませんが、私はこれらを作りませんでした。実際、ビジネスではかなり一般的です。私の言いたいことを確認するには、この記事をご覧ください。

理想的には、しっかりとした推定値を考え出すのが最善ですが、もしそれができない場合は、データが不完全なため推定値が嘘であるよりも大まかなものであると述べた方が良いでしょう。

重要なのは、ビジネスはコンピュータープログラミングではないということです。期待を管理することは、精度よりも重要です。予期しない問題を補うために、偶発事象としてプラス10%を要すると考える時間を評価することが重要です。

あなたが過大評価している場合、彼らはあなたが余裕を持って終了すると幸せになります。過小評価している場合、期限に達しても失望しないか、何かがうまくいかない場合は非常に失望します。

ビジネスは灰色の領域であり、一部の人々は時間が経つにつれて直感的な感覚を獲得します。彼らがこれらの種類の決定を独立して下の開発者に依頼しているという事実は、一つのことを言っています。そのような決定を下す能力のある人がいないか、マネージャーが失敗に対して責任を負いたくないかのどちらかです。

あなたが大規模な組織で働いているなら、後者にお金をかけるでしょう。階層的なビジネスモデルが十分に大きくなると、最上位が最下位から遠く離れてしまうため、上位の職務は紙で受け取ったものだけで進捗を測定できます。プロモーションは一般的にミスをしないために与えられるため、それはひどい環境です。しかし、プロモーションを受ける人々は、他の人に責任を負わせる(すなわち盲目の無能)ことで失敗を避け、チェーンの下位の人々の成功を称賛します。

残念なことに、プログラマーは、問題がどれほど大きくても解決策を見つけようとするため、「バスの下に」投げるのは簡単です。重要なのは、ソリューションを実装するよりも、問題の推定方法の決定に時間をかけないことです。


-1

それは厳しい場所です。そのパイプラインの「配信するだけ」の段階で立ち往生しているように聞こえます。

長年にわたり、推定について次のことに気付きました。推定の品質は、次の3つの質問に(適切な名前で)答えることで決定できます。

  • 誰がデザインをしましたか?
  • 誰が見積もりをしましたか?
  • 誰が実装を行っていますか?

推定の品質は、指定された個別の個人の数に反比例します。たとえば、最適な推定値は、同じ人が上記の3つのタスクをすべて実行した場合、弱い推定値は1人が設計/推定し、別の人が実装を実行した場合、最悪の推定値は3つすべての質問に答えた場合です一意の名前。

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