9人の女性が1か月で子供を出産できない理由、またはプロジェクト管理でのシミュレーションの使用について

はじめに



「9人の女性が1か月で赤ちゃんを出産できない!」という表現を聞いたことがあると思います。 この表現のコンテキストは明らかです。ソフトウェア開発では、完全に受け入れられない時間圧縮に抗議する際のall話として使用されます。 ここで、圧縮とは、開発の全体的な複雑さを維持しながらチームを拡大することにより、開発時間を短縮することを意味します。

画像



期限を無期限に圧縮することは不可能であることは非常に明白です。 一定の制限があります。 たとえば、ソフトウェア開発の複雑さを推定する分野の有名な専門家であるSteve McConnell(Steve McConnell)は、このしきい値を初期推定値の25%として定義しています以前の記事を参照 )。

しかし、このトピックは労働強度の推定に関するものではありません...

だから私は上記の「非常に明白な...」と書いた。 これは本当に明白だと思いますか? みんなに?

私の最近の経験では、これは誰にも明らかではないことが示されています。 このプロジェクトは非常に大規模で、期限は容赦なく迫っていました。 間に合うようにチームを劇的に拡大することが決定されました。 「9人の女性」についての議論を受け入れた人はいなかった。 チームは拡大しましたが、時間通りにまだ時間がありませんでした。 どういうわけか、言葉を除いて、イベントがどのように展開するかを示すことができますか? それはそのような状況をシミュレートする方法についてであり、私の記事になります。



皆さんの多くが何らかの決定を下さなければならなかったと確信していますが、それには多くの人が依存していました。 どのようにそれらを取りましたか? 何に導かれましたか? どの選択が行われたかに応じて、イベントがどのように展開するかを確実に知っていましたか? しかし、管理階層内の位置が高いほど、より前向きな意思決定が行われるべきであり、誤った決定による間違いはより高価になります。

画像

ほとんどの場合、決定は人生と職業経験に基づいて直感的に行われます。 潜在意識レベルで意思決定を行う場合、多くの要因を考慮し、以前に受け取った知識を考慮します。 しかし、自分の決定にそれほど自信がある理由を誰かに説明する必要がある場合はどうでしょうか? ここでは、もちろん、自分の説得スキルをすべて適用し、自分の立場を「押し通して」落ち着かせることができます。 たとえば、「はい、確かです!」と他のすべての引数を無視します。 しかし、これは常に機能するとは限りません。特に、自分が自分の立場を証明している人よりもランクが低い場合はそうです。



あなたの「直感的な感覚」をより具体的な形に変換できるといいでしょう。 次を許可する形式で:

認識が不十分な場合、どのモデルも人に間違った決定を納得させないことは明らかです。 このモデルは、誰かを説得するだけでなく、自分自身の議論を理解するのにも役立ちます。



意思決定支援システム



画像 設定されたタスクを解決するために、 意思決定支援システムが助けになります。

このようなシステムにより、「客観的な活動の完全かつ客観的な分析のために、困難な状況で意思決定を行うことができます。」 プロジェクトを管理するときに必要なもの。 意思決定をサポートするために、さまざまなサポート方法が使用されます。 上記の問題を解決するために最も明白な、このような方法に興味があります。



シミュレーション


画像 これらのタスクに最も完全に対応するのがシミュレーション方法です。 この方法を使用すると、プロセスを実際に記述するモデルを作成できます。 このようなモデルは、1つのテストと特定のテストセットの両方で時間内に「失われる」可能性があります。 ただし、モデルは常にモデルのままであることに注意してください。 彼女はすべての要因を考慮に入れることはできませんが、ある程度の確実性をもって、 情報に基づいた結論を出すことができます。



モデリングツール



画像 さまざまなモデリングツールがあります。 それらの中には、 AnyLogicGPSSなどがあります。 それぞれに長所と短所があります。 それぞれに独自の優先アプリケーション領域があります。 これはこのトピックの範囲外であるため、これらのシステムを比較しようとはしません。



画像 この記事では、 isee systems、incの iThinkシステムを例に取り上げます 。 このシステムを選んだのは、第一に、Tom DeMarcoによるDeadlineの本を読んだ後に初めて聞いたため、そして第二に、プロジェクト管理に固有のタスクをモデリングするのに主観的に最も簡単だと思われたためです。





問題の声明


理解を容易にするために、上で話したまさに本であるDeadlineの例を取り上げます。 その中で、メインキャラクターのMr. TompkinsとDr. Jamidは、さまざまな条件に応じたチームのパフォーマンスの変化をモデル化します。 「女性の状況」は非常に似ているため、この例は非常に適しています。 公平を期すために、実際に、この例の元の情報源は、 『 システムの概要:思考と思考 』という本です。 (Hanowr、NH High Performance Systems、Inc、1994)

モデルを構築するには、iThinkで新しいファイルを作成し、[モデル]タブで要素の追加を開始します。

ただし、最初にモデリングの要因と数値を強調する必要があります。



要因


ロマネスク様式の長い議論を減らすために、モデルに影響を与える可能性のある要因を簡単に強調します。
  1. プロジェクトでの募集
  2. 新しいメンバーをチームに統合するコスト
  3. 負のスケール効果
  4. コラボレーションマージ効果


数字


次に、何らかの方法で測定できる量を強調する必要があります。 この場合、これがなければ、モデリングは不可能です。

したがって、数値は次のとおりです。

  1. 従業員数
  2. 任意のユニット( 機能ユニット )で実装される機能のボリューム


iThinkでモデルを作成する


モデルを認識しやすくするために、最後から構築を開始します。

2つの容器を持ってください。 1つ-完了、実行する必要がある作業を象徴します。 2番目-空の場合、チームが既に完了した作業を象徴します。 バルブを介してそれらを接続します。これにより、最初のコンテナの作業が2番目のコンテナに移動する速度が決まります。 したがって、このバルブは、必要な作業を実行する際のチームのパフォーマンスを特徴付けます。 残念ながら、iThinkはロシア語の署名にあまり馴染みがないため、すべての署名を英語で行います。

画像

次のステップでは、新しいスタッフ(開発者など)をチームに採用するプロセスを紹介する必要があります。 また、スタッフが効果的にすぐに働き始めないことを覚えておく価値があります。 開始するには、新しい従業員をプロジェクトに「紹介」する必要があります。 彼らが非常に経験豊富で資格のある人であっても、受け入れられたアプローチを理解し、ニュアンスを理解するなど、プロジェクトを掘り下げる必要があります。

次の図に示します。



画像

次に、スタッフ(従業員数)と実現/未実現機能のボリュームの変化(任意の単位)を関連付ける必要があります。 これを行うために、モデルに別の要素-converterを導入します。 コンバーターは、いくつかの数値を他の数値に変換する式(ルール)です。 この場合、コンバーターはいわゆる負の規模の経済を反映します- 規模の 不経済 、すなわち チームの各後続メンバーがどれだけ効果的であるか。 私はこの修正を投機的なグラフの形で書きました。

画像

iThinkでは、コンバーターはグラフィカルに(曲線が通過する値のセット)および分析的に-式の形式で指定できます。

モデルの詳細に不必要に飛び込んで論争の基礎を作らないようにするために、ここでは式を与えません。 これらの式にはそれぞれ独自の式があると確信しています。

画像

次の段階で、別のコンバーター「統合コスト」-統合コストを追加します。 このコンバーターは、新しい従業員を紹介するときにチームの効率がどのように低下​​するかを示します(「古いタイマー」は、新参者を支援するために、主な仕事から注意をそらされます)。

画像

チームワークのもう1つの興味深い要素は、「マージ効果」-結合効果です。 時には、時間が経つにつれて、チームの人々が単なる個人の合計以上になることがあります。 人々はチームになります! お互いをサポートすることで、彼らは一人で働いた場合よりも効率的に働き始めるだけでなく、新しいチームメンバーを受け入れるのも簡単になります-友好的なチームに参加しやすくなります(残念ながら、逆のことが起こります)。 モデルを単純化するために、この要因が特定の方法で統合のコスト要因に影響することを示します。

画像

最後の段階で、別の矢印を追加して、仕事が終わったら新しい人を雇うのをやめます。 実際、もっと早くそれを取るのをやめる必要がありますが、今のところモデルを複雑にすることはありません。

画像

モデルの改善


言うまでもなく、提示されたモデルは完全ではありません。 当然、エラーがあり、プロセスに影響する新しい要因を明確にして追加する方法があります。

例:

一般的に、創造性のための十分なスペースがあります。 :)



意思決定



さて、実際には、決定を下すことについて。 結果のモデルは、チームへの新しいメンバーの「注入」が非常に効果的である期間を決定するのに役立ちます。

何が起こるかを理解するために、モデルを実行します。



その結果、次のグラフが得られます。

最初のグラフは、未処理の作業が完了した作業にどれだけ早く変換されるかを示しています。 ここでの主なことは、プロセスが非線形であることです。

画像

しかし、2番目のチャートはより興味深いものです。 追加のチームメンバーが導入されると、チームのパフォーマンスがどのように変化するかがすでに示されています。 たとえば、グラフから、短期的には生産性が低下することがわかります。 直線からどれだけ離れているかに注目してください。

画像

チームが何人のチームを比較的苦労せずにランクに入れることができるかを理解するには、さまざまな値を設定してモデルを再スクロールして収入スタッフのバルブを調整する必要があります。



おわりに



このトピックでは、感情をシミュレートし、推測を確認し、この決定またはその決定の理由と理由を誰かに見せようとする方法を簡単に説明しました。 残念ながら、これはあなたをだれにも納得させることを保証するものではありません。

いつものように、「銀の弾丸」は存在しません。 シミュレーションは、あなたのために決定を下し、他の人を説得することはできません。 (少なくとも現在の開発レベルでは)ソフトウェアは、あなたの潜在意識の深さからあなたの前兆を取得しません。 しかし、幸いなことに、私たちは自分自身の議論をよりよく理解するだけでなく、状況を予測するのに役立つ非常に効果的なツールを持っています。



UPD:ワーカーのリクエストにより、モデル自体はこちらから入手できます 。 あなたは実験することができます。



All Articles