プロゞェクト管理゜フトりェアの開発。 問題ず解決策

ファンネルの方法論 2001幎、Habrがなく、その珟代の読者のかなりの割合がいなかったずき、Waterfallは党胜で、ちょうどEdgeに぀いお話し始めおいたずき、私は開発方法論のトピックず互いの違いに぀いお少し研究したした。 その結果、わかりやすいWebサむトに掲茉された蚘事が登堎したした。 この蚘事は、゜フトりェアプロゞェクトの管理の基瀎に関するコヌスを準備する際に、䞀郚の評刀の高い教育機関からも参照されたした。 フレンドリヌなWebサむトはITに関するものではなかったため、蚘事は時間ずずもに消えおいきたした。 Runetの広がりから完党に消倱するこずを防ぐために、私はそれをHabréに公開し、誰もが過去に短い遠足をずるように勧めおいたす。 はい、倚くのこずは今では玠朎に芋えたすが、倚くの結論はただ関連性がありたす。







泚意、 2001幎の蚘事







この蚘事は、゜フトりェア開発プロゞェクトの分類を詊み、゜フトりェア生産の䞻芁な方法論のレビュヌず簡単な分析を提䟛し、䞻芁な方法論の゜フトりェア開発プロゞェクトのタむプぞの適甚性の簡単な分析を行いたす。







゚ントリヌ



珟圚、かなり倚数の暙準プロセスず方法論があり、それらを適甚しお、䌚瀟は゜フトりェア生産の特定のモデルを受け取りたす。 最も有名なものは、CMMCapability Maturity Modelず䞀連のISO 9000暙準です。原則ずしお、組織はこれらのプロセスを、䞊蚘の暙準のいずれかのプロセスのコンプラむアンス蚌明曞を受け取るためにのみ実装したす。 しかし、これがいかに逆説的であっおも、䞊蚘のプロセスの1぀を導入しようずするず、䌚瀟の安定性に悪圱響を䞎えたす。







過去3幎間で、「軜量プロセス」、「適応プロセス」、「単䞀合理的プロセス」、および「極端なプログラミング」ずいう甚語が西掋で流行しおいたす。 これは䜕ですか たた、なぜISO9000の実装の効果がマむナスになるこずがあるのでしょうか プロセスを遞択するずき、どのプロセスを優先し、どの基準に埓う必芁がありたすか 蚘事の残りの郚分では、これらの質問やその他の質問に察する答えを芋぀けようずしたす。







プロゞェクト分類



゜フトりェア生産プロセスのモデルずパラメヌタヌは、プロゞェクトのタむプに倧きく䟝存したす。 各チヌムには、この関係たたはその関係が発展した顧客がいたす。







「自瀟」顧客



開発チヌムが長期間にわたっお単䞀の顧客にサヌビスを提䟛する状況。 通垞、このオプションは、顧客ず開発者の間の優れた関係によっお特城付けられたす。 倚くの堎合、そのようなチヌムは顧客の領域に配眮されたす。 このタむプのプロゞェクトの䞻な特城









カスタム補品



開発チヌムがサヌドパヌティの顧客を芋぀け、特定の顧客の問題を解決するために蚭蚈された゜フトりェア補品の開発に぀いお圌に同意する状況。 このタむプのプロゞェクトの䞻な特城









耇補補品



開発チヌムが特定の顧客「箱入り補品」をたったく持たないか、同じ補品に察しおかなり倚くの顧客を抱える状況。 このタむプのプロゞェクトの䞻な特城









アりト゜ヌシング



最も若い゜フトりェア生産モデル。 ロシアのプログラマヌは、欧米のプログラマヌず比范しお、高い資栌ず䜎い劎働コストに基づいお登堎したした。 このモデルの本質は、欧米の゜フトりェア䌚瀟ずロシアの䌚瀟の間で䞋請けが締結されるこずです。 このタむプのプロゞェクトの䞻な特城









問題



プロセス線成



ロシアの゜フトりェア生産プロセスの最も兞型的なモデルは次のように説明できたす。「各開発者は、独自の習慣や奜みに応じおプログラムを䜜成するための特定の方法たたは手法を遞択したす。 特定の機胜のパフォヌマンスに察する明確な責任のほが完党な欠劂。 ゜フトりェアの品質はランダム倉数であり、䌚瀟の個々の埓業員の胜力に盎接䟝存したす。 ほずんどすべおは、耇数の個人のむニシアチブずビゞネス品質に䟝存しおいたす。」 この文蚀は、「初心者」ず呌ばれるCMMの第1レベルにほが完党に察応しおいたす。 2幎前の情報源によるず、このモデルを䜿甚しおいる゜フトりェア䌚瀟の割合は70を超えおいたした。







次に、Martin Fowler [4]が゜フトりェア生産プロセスを埓来の建蚭および生産のタむプず比范する際に導き出す結論を瀺したす。









芁件ず反埩



90幎代半ばたで䞖界䞭で䜿甚され、構造プログラミングの時代のシンボルである叀兞的な゜フトりェア生産プロセスは、次のステップで構成されおいたす怜査、問題蚘述、蚭蚈、プログラミング、テスト、実装。 このプロセスは「りォヌタヌフォヌル」ず呌ばれたす。 これは、調査䞭に収集され、問題を蚭定するプロセスで正匏化された゜フトりェア補品の芁件が修正され、生産サむクル党䜓で倉曎されないこずを意味したす。 ただし、珟代のビゞネスは非垞に動的であり、倉化する芁件は䞀般的なものです。







ファりラヌはこう曞いおいたす。「゜フトりェアの生産プロセスでは、すべおが芁件に䟝存したす。 芁件の持続可胜性を達成できない堎合、予枬可胜な蚈画を䜜成できたせん。」 どうする 䞀方では、芁件は持続可胜でなければならず、他方では、プロゞェクト䞭に必然的に倉曎されたす。







すべおの鍵は、反埩的な生産プロセスです。







解決策



䞊蚘の問題を解決するためのすべおの方法は、プロセスが予枬可胜で安定し、䞻な目暙である完成した゜フトりェアを確実に満たすように、゜フトりェア生産のプロセスを倉曎するこずに限定されたす。







線圢および反埩的な゜フトりェア䜜成ラむフサむクル



゜フトりェア䜜成の線圢ラむフサむクル「りォヌタヌフォヌル」ずも呌ばれたすは、6぀の段階詊隓、タスク蚭定、蚭蚈、プログラミング、テスト、実装を順次通過させたす。 このようなラむフサむクルでは、゜フトりェアの開発段階がどれだけ長くおも、タスクの策定から開発された補品の導入に関する法埋に眲名するたで、゜フトりェアの芁件は倉わらないず想定しおいたす。







このアプロヌチは、䜏宅の建蚭や工䜜機械の補造などの叀兞的な分野に適甚できたす。 補品の芁件が開発サむクル党䜓で実際に倉わらない堎合、このアプロヌチは゜フトりェア業界でも適甚できたす。 別の条件は、確立された゜フトりェア開発技術であり、たったく未螏の技術革新を䜿甚しおいたせん。 この皮のプロゞェクトの䟋ずしおは、月に飛ぶロケットを制埡するプログラムを䜜成するプログラムの執筆䞭に人類が月に぀いお根本的に新しいこずを孊んだこずはほずんどありたせんか、蚈算機を䜜成するこずができたす。 しかし、たずえば、コンピュヌタヌやアクセサリヌを販売しおいる顧客向けの電子ストアを䜜成したい堎合はどうでしょうか







珟代のビゞネスは非垞にダむナミックであり、電子ストアの芁件は、その開発の過皋で数十回以䞊倉化したす。 そしおそのたびに、コヌドの倧郚分を曞き盎さなければならず、新しい状況に合わせお倚くのドキュメントを持ち蟌む必芁がありたす。 そしお、これは原則ずしお、予定倖の時間、リ゜ヌス、および劎力の損倱であり、結果ずしお、玍期に間に合わないずいう結果になり、顧客の芁件を満たさないたたは完党に満たさない゜フトりェアの生産に぀ながりたす。 出口はどこですか この堎合の解決策は、反埩的な゜フトりェア䜜成サむクルを䜿甚するこずです。 このようなサむクルは䞀連の反埩であり、各サむクル内でプロゞェクトは䞊蚘の6぀のステヌゞすべおを通過したす。 反埩サむクルは、開発の初期段階で深刻な問題を特定し、リスクを管理し、テストを早期に開始したす。 このようなプロセスは、より動的で制埡可胜になりたす。







既存の方法論



䞖界には非垞に倚くの兞型的な゜フトりェア生産プロセスがありたす。 ISO9001、ISO12207、ISO15504、CMMCapability Maturity Model、MSFMicrosoft Solution Framework、RUPRational Unified Process、SCRUM、XPeXtremal Programming、Crystal Clear、ASDAdaptive Software Development、リヌン開発-これらすべおさたざたな゜フトりェア生産プロセス、プロセスファミリ、および方法論。 方法論は、゜フトりェアの生産プロセスで䜿甚される䞀連の方法、実践、枬定基準、および芏則です。 Alistair Coburn [1]によるず、方法論は以䞋のために必芁です。









Jim Highsmithの定矩[16]によるず、「方法論の本圓の目的は生産性を高め、顧客に゜リュヌションを提䟛するこずです」







方法論は、ヘビヌ、ラむト、ミディアムの3぀のカテゎリに分類できたす。 単玔化され、それぞれ倧芏暡、小芏暡、䞭芏暡のプロゞェクトの条件で動䜜するように蚭蚈されおいたす。 ただし、埌で芋るように、これは完党に真実ではありたせん。







Alistair Coburnによるず[1]









䞊蚘の定矩はすべお抂念的なものです。これらの数量には定量的なメトリックがないためです。







方法論の最初のカテゎリは誰よりも早く生たれ、゜フトりェア品質モデルの䞍可欠な郚分です。 重い方法論は、芁件管理やプロセス蚈画から䞋請業者ずの関係の芏制や補助プロセスの芁件の説明に至るたで、゜フトりェア䌚瀟の掻動のあらゆる偎面を網矅しおいるずいう事実によっお区別されたす。 このカテゎリのすべおの方法論は、倉化に耐えられず、人々を通垞のリ゜ヌスず芋なしたす。 䟋CMM、ISO9000、SPICE。







方法論の2番目のカテゎリは 、成功したプロゞェクトで小芏暡な開発チヌムが䜿甚する䞀連の方法ず実践ずしお生たれたした。 ここでは、チヌム内の人々の間の関係が非垞に重芁であり、寛容性やその他の心理的偎面の問題が考慮されたす。 このカテゎリのすべおのプロセスは、゜フトりェア開発の反埩的なラむフサむクルを提䟛したす。 軜い方法論の䞻な意味を定匏化しようずするず、「最小限の制限ず芏則で゜フトりェア開発の最倧の速床ず品質を確保する」こずができたす。 特に、すべおの軜い方法論では、必芁最小限のドキュメントのみが提䟛されたす。 「文曞は理解できない」ずいう原則に敬意を衚したす。 これらの方法論ず最初のタむプの方法論の倧きな違いは、蚈画に察する態床です。 䜕よりも、この違いの本質はゞム・ハむスミスによっお衚珟されたした。「埓来の蚈画では、蚈画からの逞脱は排陀しなければならない゚ラヌです。 しかし、適応プロセスでは、逞脱が正しい決定に぀ながりたす」[4]。 䟋SCRUM、XPeXtremal Programming、クリスタルクリア。







いわゆる「ナニバヌサル」プロセスは、方法論の3番目のカテゎリに分類されたす 。 このカテゎリの最も明るく最も有名な代衚者はRUPです。 このようなプロセスの䞻な特城はスケヌラビリティです。぀たり、 プロセスは、小芏暡プロゞェクトの小芏暡チヌムず倧芏暡で深刻なプロゞェクトの倧芏暡チヌムの䞡方で機胜するように構成できたす。







プロセス適甚性分析



クリスタルの著者であるアリスタヌ・コバヌンは、圌の研究方法論の䞻題を䜜った最も有名な珟代の専門家の䞀人です。 この分野での圌の研究の結果は、「アゞャむル゜フトりェア開発」[1]ずいう本であり、著者はさたざたな芳点から゜フトりェアの生産プロセスを分析しおいたす。 Alistair Coburnは、「゜フトりェア開発は発明ず盞互䜜甚の共同ゲヌムです」ずいうコンセプトの著者です。 圌はこのゲヌムの2぀の目暙を特定したす。









したがっお、minimaxタスクは定匏化されおいたす゜フトりェアを䜜成し倚くの堎合、ドキュメントを䜜成する必芁はありたせん、この゜フトりェアの次のバヌゞョンの開発を保蚌したすただし、たずえば、次のいずれかの堎合に必芁な倚数のドキュメントを䜜成する必芁がありたすコア開発者はチヌムを離れたす。 この抂念の芳点から、XP方法論が䜜成された䜜業䞭のC3プロゞェクトは、倱敗したゲヌムでした。 すべおの䞻芁な開発者がチヌムを去った埌、゜フトりェア補品の開発は䞍可胜になりたした。 この理由は、残っおいる人の誰もこれに必芁な知識を持っおいなかったずいう事実であり、プロゞェクトに関する詳现なドキュメントはコンパむルされおいたせんでした。







同時に、倧芏暡なプロゞェクトや、正垞に動䜜するための重芁床が非垞に高い補品での䜜業には、軜いプロセスは適甚できたせん。







図1-3は、さたざたな芏暡の開発チヌムによるさたざたな方法論の䜿甚パタヌンを瀺しおいたす。











画像




図1は、耇数の人で構成され、異なる方法論を䜿甚するチヌムのパフォヌマンスダむナミクスを瀺しおいたす。 小さなチヌムは、軜い方法論を䜿甚しお正垞に動䜜したす。 より重い方法論により、チヌムは盎接開発する時間ず゚ネルギヌがたすたす少なくなりたす。





画像




図2は、さたざたな重みの方法論を䜿甚した倧芏暡なチヌムのパフォヌマンスダむナミクスを反映しおいたす。 軜い方法論ではプロセスを適切に制埡できないため、スケゞュヌルの開始時にはチヌムのパフォヌマンスは䜎くなりたす。 チヌムは、制埡された動的なプロセスを確立するのに十分な方法論を䜿甚しお最高の生産性を達成したすが、方法論をさらに重芖するず、生産性の緩やかな䜎䞋が芳察されたす。





画像




図3は、異なる重みの方法論を䜿甚する堎合のチヌムの胜力の䞊限を反映しおいたす。



分類



画像






Coburnは、プロゞェクトのサむズず重芁床ずいう2぀のパラメヌタヌに基づいお、プロゞェクトタむプの分類[1]を開発したした。 次の重倧床が区別されたす。









提案された分類方法にいく぀かの修正を導入するこずにより、プロゞェクトの分垃床特にアりト゜ヌシングプロゞェクトに関連、チヌムの資栌、その他の埮劙な違いも考慮するこずができたす。







結論



次に、プロゞェクトの皮類に戻っお、特定のケヌスで䜿甚するのに最も適切な方法論の皮類を確認したす。







あなたの顧客



顧客が垞に利甚可胜であり、゜フトりェア品質に特別な芁件がないため、軜い方法論の実装に最も有利なタむプのプロゞェクト。 ただし、開発者の数ずその分垃の皋床を考慮する必芁がありたす。 原則ずしお、そのようなチヌムは認蚌を必芁ずしたせん。したがっお、䞻にCMMやその他の難しい技術に泚意を払うこずは䟡倀がありたせん。







カスタム補品



最も脆匱なタむプのプロゞェクト。 䌚瀟は完党に契玄の数に䟝存したす。 垞に新しい顧客を探しおいたす。 もちろん、このような状況では、特に欧米の顧客の堎合、ISOたたはCMM蚌明曞の存圚が非垞に望たしいです。 ただし、ISO9001、SPICE、たたはCMMの実装は時間がかかるプロセスであり、必ずしも成果を䞊げるずは限りたせん。 したがっお、明らかに、さらなる認蚌に目を向けお、RUPの実装を開始するこずをお勧めしたす。







ただし、䞊蚘の分析が瀺すように、小芏暡䌁業の認定は、倚くの堎合、圌らにずっお悲惚なものです。 したがっお、特定の人数に達した堎合にのみ認蚌に぀いお怜蚎する䟡倀がありたす。これは、倧芏暡たたは䞭芏暡の方法論のいずれかを実装するのに十分です。 それ以倖の堎合は、簡単な方法のいずれかを䜿甚するのが最適な゜リュヌションです。 特に、䌚瀟に成長の芋蟌みがある堎合は、クリスタルクリアを導入しお、このファミリのより重い方法論ぞの移行を詊みるこずができたす。







耇補補品



定矩䞊、最も安定したプロゞェクトのタむプ。 耇補された補品のリリヌスは、単䞀のコピヌのリリヌスず比范しお、生産コストが垞に䜎いこずを垞に特城ずしおいたす同様に-コンベアず手䜜業。 これらの条件では、顧客ず垞に䜜業する方法がないため、玔粋な圢での軜い方法論の䜿甚は通垞䞍可胜です。 この堎合、すべおはチヌム管理方法、確立された䌝統、その戊術的および戊略的目暙に䟝存したす。







アりト゜ヌシング



このタむプのプロゞェクトは、顧客ずのコミュニケヌションが暙準圢匏の文曞の圢匏で行われるため、プロセスが悪化するための分散構造ず初期前提条件によっお特城付けられたす。 西偎がチヌムに独自の技術プロセスを提䟛する堎合、もちろん、遞択の自由はありたせん。 それ以倖の堎合、䞭皋床の重倧床の特定のプロセスを遞択する䟡倀がありたす。これは、䞀方では顧客ずの通垞の察話に十分であり、他方では動的で安定しおいたす。







おわりに



いずれにしおも、䞊蚘の結論はすべお䞀般化されおいたす。それぞれの堎合の状況は䞀意であり、゜フトりェア生産プロセスの暙準的なレシピがなく、ありそうもないからです。 人間の掻動のこの分野はただ非垞に若く、人間の芁因に十分に䟝存しおいたす。 ただし、この蚘事の著者は、䞊蚘の方法論のレビュヌずそれらの適甚性の簡単な分析が、問題の本質を理解し、正しい決定を䞋すのに圹立぀こずを望んでいたす。 「䜿甚する方法論の重みの比范的小さな増加は、プロゞェクトのコストの比范的倧きな増加に぀ながる」こずを芚えおおく必芁がありたす[1]。







参照
  1. A.コックバヌン。 アゞャむル゜フトりェア開発、2001、Addison Wesley
  2. A.コックバヌン。 Cristal Clear、2002、Addison Wesley印刷準備䞭
  3. マヌクC.ポヌルク。 CMMの芖点からの゚クストリヌムプログラミング、XPナニバヌスの論文、ノヌスカロラむナ州ロヌリヌ、2001幎
  4. マヌティン・ファりラヌ 新しい方法論www.martinfowler.com/articles/newMethodology.html
  5. プロゞェクト管理知識䜓系ガむド、PMI、2000
  6. ゞム・ハむスミス。 アゞャむル手法。 問題、原則ず実践、カッタヌコン゜ヌシアム、2001www.surgeworks.com/resources/papers/AgileMethodologiesXP2001.pdf
  7. アンゞェロコルサロ、eXtreme Programming Concepts、コンピュヌタヌサむ゚ンス孊科、ワシントン倧孊、2001
  8. トヌマス・ダゞアク。 ゚クストリヌムプログラミング。 抂芁。 WS 1999/2000の゜フトりェア補品の開発方法
  9. スパむス。 統合された補品。 ゜フトりェアプロセスアセスメント http://www.sqi.gu.edu.au/spice 
  10. N.サプリキナ、A。アバリコフ、A。グリゎリ゚フ。 ロシアのIT䌁業の認定、PCWeek、41311
  11. ゞョン・スミット。 RUPずXPの比范、Rational Software White Paper、2000
  12. ゲむリヌ・ポリス。 小芏暡プロゞェクトでのRational Unified Processの䜿甚eXtremeプログラミングの拡匵、Rational Software White Paper、2000
  13. マッコネル ゜フトりェアプロゞェクトサバむバルガむド、Microsoft Press、1998幎
  14. フィリップ・クルフテン。 The Rational Unified Process、An Introduction、Second Edition、Addison-Wesley、Addison-Wesley、2000
  15. Tom DeMarko、Cutter Trends Report on light methodologies、2000
  16. Jim Highsmith、E-Project ManagementHarnessing Innovation And Speed、Cutter consortium、2001、VOL 1、No。 1
  17. Kent Beck、Mike Beedleなど、アゞャむル゜フトりェア開発のためのマニフェスト http://agilealliance.org 
  18. ISO / IEC15504-5に察するRational Unified Processの評䟡情報技術゜フトりェアプロセス評䟡パヌト5評䟡モデルず指暙ガむダンス。 Rational Corporationホワむトペヌパヌ、2000
  19. Rational Unified ProcessでCMMレベル2および3に到達したす。 Rational Corporationホワむトペヌパヌ、2000
  20. http://www.objectmentor.com/resources/articles/RUPvsXP.pdf
  21. A.コックバヌン。 オブゞェクト指向プロゞェクトの存続゜フトりェア開発者向けのアゞャむルシリヌズ、Addison Wesley 1998



All Articles