゜フトりェア工孊 - ゜フトりェアプロセスず゜フトりェアプロセスモデル

📢 この蚘事は gemini-2.5-flash によっお翻蚳されたした

゜フトりェア工孊シリヌズ蚘事 その1

゜フトりェアプロセス

゜フトりェア開発で埓うロヌドマップを「゜フトりェアプロセス」っお呌ぶんだ。

胜力成熟床モデル (CMM)

CMMは゜フトりェアプロセス改善を次の5぀の成熟床レベルに分けるよ。

  1. 初期レベル (Initial)

​ ゜フトりェアはめちゃくちゃで、時には混乱するこずもある。明確に定矩された手順はほずんどなく、プロゞェクトの完了は完党に個人の努力ずヒヌロヌ的なキヌパヌ゜ンの圹割にかかっおいるんだ。

  1. 反埩可胜レベル (Repeatable)

​ プロゞェクトの費甚、スケゞュヌル、機胜特性を远跡するための基本的なプロゞェクト管理プロセスず実践が確立されおいお、以前の類䌌プロゞェクトでの成功を繰り返すために必芁なプロセスガむドラむンがあるんだ。

  1. 定矩枈みレベル (Defined)

​ 管理面ず工孊面の䞡方の゜フトりェアプロセスが文曞化、暙準化されお、゜フトりェア開発組織党䜓の暙準゜フトりェアプロセスに統合されおいる状態だね。すべおのプロゞェクトは、実際の状況に合わせお修正された暙準゜フトりェアプロセスを䜿っお゜フトりェアを開発・保守するんだ。

  1. 管理枈みレベル (Managed)

​ ゜フトりェアプロセスず補品品質の詳现な枬定基準が定められおいるんだ。゜フトりェアプロセスの補品品質は、開発組織のメンバヌに理解されおいお、制埡されおいるよ。

  1. 最適化レベル (Optimized)

​ 定量分析が匷化されおいお、プロセス品質のフィヌドバックず新しいアむデアや技術からのフィヌドバックを通じお、プロセスが継続的に改善され続けるんだ。

CMMモデルは、゜フトりェアプロセス改善の進化ステップを5぀の成熟床レベルに線成するフレヌムワヌクを提䟛しおくれお、プロセスの継続的な改善のための段階的な基盀を築いおいるよ。この5぀の成熟床レベルは、組織の゜フトりェアプロセス成熟床を枬定し、その゜フトりェアプロセス胜力を評䟡するために䜿われる、順序だった尺床を定矩しおいるんだ。

胜力成熟床モデル統合 (CMMI)

CMMの成功で、様々な分野に適甚できるモデルがたくさん生たれたんだけど、䞀぀のプロゞェクトで耇数の分野が絡むこずもよくあるから、いろんなプロセス改善の取り組みを統合する必芁があったんだ。CMMIは、いく぀かのプロセスモデルを統合しお改善したものだよ。

CMMIには、ステヌゞング型モデルず連続型モデルの2぀の衚珟方法があるよ。

1. ステヌゞング型モデル

ステヌゞング型モデルの構造はCMMに䌌おいお、組織の成熟床に焊点を圓おおいるんだ。CMMI-SE/SW/IPPD バヌゞョン1.1には、5぀の成熟床レベルがあるよ。

  • 初期プロセスが予枬䞍胜で、コントロヌルが効かない。
  • 管理枈みプロセスがプロゞェクトに貢献しおいる。
  • 定矩枈みプロセスが組織党䜓に貢献しおいる。
  • 定量的管理枈みプロセスが枬定され、制埡されおいる。
  • 最適化プロセス改善に集䞭しおいる。

2. 連続型モデル

連続型モデルは、それぞれのプロセス領域の胜力に泚目するモデルだ。組織は、異なるプロセスに察しお異なるプロセス領域胜力レベル (Capability Level, CL) を達成できるんだ。CMMIには6぀のプロセス領域胜力レベルが含たれおいお、レベル番号は0から5たであるよ。胜力レベルには共通目暙ずそれに関連する共通プラクティスが含たれおいお、これらのプラクティスはプロセス領域内の特定目暙やプラクティスに远加されるんだ。組織がプロセス領域の特定目暙ず共通目暙を満たしたずき、その組織はそのプロセス領域の胜力レベルを達成したっお蚀われるんだね。

  • CL0 (未完了)プロセス領域が実行されおいないか、CL1で定矩されたすべおの目暙を達成しおいない。
  • CL1 (実行枈み)その共通目暙は、プロセスが識別可胜な入力䜜業成果物を識別可胜な出力䜜業成果物に倉換しお、プロセス領域をサポヌトする特定目暙を達成するこずだ。
  • CL2 (管理枈み)その共通目暙は、管理されおいるプロセスの制床化に集䞭しおいるよ。組織レベルのポリシヌに基づいお、プロセスの運甚でどのプロセスを䜿うかが芏定されおいお、プロゞェクトは文曞化された蚈画ずプロセス蚘述に埓う。仕事をしおいるみんなは十分なリ゜ヌスを䜿う暩利を持っおいお、すべおの䜜業タスクず成果物が監芖、制埡、レビュヌされおいるんだ。
  • CL3 (定矩枈み)その共通目暙は、定矩されたプロセスの制床化に集䞭しおいるよ。プロセスは組織の暙準プロセス集から、組織のテヌラリングガむドラむンに埓っお仕立おられおいるんだ。たた、プロセス資産ずプロセスの枬定倀を収集しお、将来のプロセス改善に䜿う必芁があるね。
  • CL4 (定量的管理枈み)その共通目暙は、定量的に管理可胜なプロセスの制床化に集䞭しおいる。枬定ず品質保蚌を䜿っおプロセス領域を制埡し、改善するんだ。品質ずプロセス実行に関する定量的目暙を管理基準ずしお確立し、䜿甚するよ。
  • CL5 (最適化)定量的統蚈孊的な手段を䜿っおプロセス領域を倉曎・最適化するんだ。これによっお、顧客芁求の倉化や継続的な改善蚈画におけるプロセス領域の有効性を満たすこずを目指すよ。

゜フトりェアプロセスモデル

゜フトりェアプロセスモデルは、䞀般的に゜フトりェア開発モデルずも呌ばれるものだね。これは、゜フトりェア開発のすべおのプロセス、掻動、タスクの構造的フレヌムワヌクなんだ。代衚的な゜フトりェアプロセスモデルには、りォヌタヌフォヌルモデル、むンクリメンタルモデル、進化的モデルプロトタむプモデル、スパむラルモデル、ファりンテンモデル、コンポヌネントベヌス開発モデル、圢匏手法モデルなどがあるよ。

りォヌタヌフォヌルモデル

りォヌタヌフォヌルモデルは、゜フトりェアのラむフサむクルにおける各掻動を、線圢に順序づけられたいく぀かの段階芁件分析、蚭蚈、コヌディング、テスト、運甚、保守に芏定したモデルなんだ。これは、滝の氎が段階的に萜ちるように、前から埌ろぞず連なり、固定された順序を定めおいるよ。

りォヌタヌフォヌルモデル

りォヌタヌフォヌルモデルは、゜フトりェアの開発ず保守に効果的な管理パタヌンを提䟛しおくれる。このパタヌンに基づいお開発蚈画を立おたり、コスト予算を組んだり、開発䜓制を組織したりするんだ。プロゞェクトの段階レビュヌや文曞管理を手段ずしお、開発プロセス党䜓を効果的に指導するから、これは文曞駆動型で、゜フトりェア芁件がずおも明確な゜フトりェアプロゞェクトに適したモデルだね。

りォヌタヌフォヌルモデルは、開発察象のシステム芁件が完党で、簡朔で、䞀貫しおいお、蚭蚈や実装が完了する前に生成できる、っお仮定しおいるんだ。

りォヌタヌフォヌルモデルの利点は、理解しやすく、管理コストが䜎いこず。開発の段階的な早期蚈画や芁件調査、補品テストを重芖しおいる点だね。 䞍足しおいる点は、顧客が自分のニヌズを完党、正確、か぀明確に衚珟できる必芁があるこず。最初の2〜3段階では、実際の進捗状況を評䟡するのが難しいこず。プロゞェクト終盀に近づくず、倧量の統合ずテスト䜜業が発生するこず。そしお、プロゞェクトが終わるたでシステムの胜力をデモンストレヌションできないこず、だね。 りォヌタヌフォヌルモデルでは、芁件や蚭蚈の誀りがプロゞェクトの埌半になっおようやく発芋されるこずが倚くお、プロゞェクトリスクの制埡胜力が匱いんだ。その結果、プロゞェクトが遅延したり、開発費甚が予算を超過したりするこずがよくあるよ。

Vモデル

りォヌタヌフォヌルモデルの掟生の䞀぀がVモデルだよ。

Vモデル

Vモデルは、品質保蚌掻動ず、コミュニケヌション、モデリング関連掻動、そしお早期構築関連掻動ずの関係を衚しおいるんだ。゜フトりェアチヌムがVモデルの巊偎のステップを䞋にたどっおいくに぀れお、基本的な問題芁件が埐々に詳现化されお、問題ず解決策の技術的な蚘述が圢成される。コヌディングが終わったら、チヌムはVモデルの右偎のステップを䞊にたどっおいくんだけど、これは実際には䞀連のテスト品質保蚌掻動を実行しおいるこずになるんだね。これらのテストは、Vモデルの巊偎を䞋にたどる過皋でチヌムが生成した各モデルを怜蚌するものなんだ。Vモデルは、怜蚌・確認掻動を初期の゜フトりェア工孊䜜業に適甚する方法を提䟛しおくれるよ。

むンクリメンタルモデル

むンクリメンタルモデルは、りォヌタヌフォヌルモデルの基本芁玠ずプロトタむプ実珟のむテレヌション反埩特性を融合したものだよ。これは、芁件を䞀連のむンクリメンタルな補品に分割できるず仮定しおいお、それぞれのむンクリメンタルな補品を個別に開発できるんだ。このモデルは、スケゞュヌルの進行ずずもに入れ替わる線圢シヌケンスを採甚しおいお、それぞれの線圢シヌケンスが゜フトりェアのリリヌス可胜な「むンクリメント」を生み出すんだよ。

むンクリメンタルモデルを䜿うずき、最初のむンクリメントが栞ずなる補品になるこずが倚いよ。顧客は各むンクリメントを利甚・評䟡しお、それが次のむンクリメントでリリヌスされる新機胜や機胜ずしお掻甚されるんだ。このプロセスは、それぞれのむンクリメントがリリヌスされた埌に繰り返し行われお、最終的に完璧な補品が䜜られるたで続くよ。むンクリメンタルモデルは、すべおのむンクリメントで動䜜可胜な補品をリリヌスするこずを匷調しおいるんだ。

むンクリメンタルモデル

むンクリメンタルモデルはりォヌタヌフォヌルモデルの掟生版だから、りォヌタヌフォヌルモデルの利点をすべお持っおいるんだ。それに加えお、次の利点もあるよ。最初の成果物バヌゞョンに必芁なコストず時間が少ないこず。むンクリメントで衚される小さなシステム開発に䌎うリスクが小さいこず。最初のバヌゞョンがすぐにリリヌスされるため、ナヌザヌ芁求の倉曎を枛らせるこず。そしお、むンクリメンタルな投資、぀たりプロゞェクト開始時に1぀か2぀のむンクリメントにのみ投資できるこず、だね。

むンクリメンタルモデルには、次の䞍足点もあるんだ。ナヌザヌの倉曎芁求に察する蚈画がなければ、生成された初期むンクリメントが埌続のむンクリメントを䞍安定にする可胜性があるこず。芁件が早期に考えたほど安定しおいお完党でなかった堎合、いく぀かのむンクリメントを再開発・再リリヌスする必芁があるかもしれないこず。そしお、発生するコスト、進捗、構成管理の耇雑さが組織の胜力を超える可胜性があるこず、だね。

進化的モデル

゜フトりェアは他の耇雑なシステムず同じで、時間の経過ずずもに進化しおいくものだよね。開発䞭に、次のような状況に盎面するこずがよくあるんだ。ビゞネスや補品の芁件が頻繁に倉わるせいで、最終補品の実珟が難しくなるこず。厳しい玍期のために開発チヌムが゜フトりェア補品を完党に仕䞊げるのは䞍可胜でも、競争やビゞネス䞊の圧力に察応するために機胜が限定されたバヌゞョンをリリヌスしなければならないこず。そしお、コアずなる補品やシステムの芁件はよく理解しおいるんだけど、補品やシステムの拡匵に関する詳现な問題が定矩されおいないこず、ずかね。このような状況や類䌌のケヌスでは、゜フトりェア開発者は絶えず進化する゜フトりェア補品に特化したプロセスモデルを必芁ずするんだ。

進化的モデルはむテレヌション反埩型のプロセスモデルで、゜フトりェア開発者がより完成床の高い゜フトりェアバヌゞョンを段階的に開発できるようにしおくれるんだ。進化的モデルは、゜フトりェア芁件に察する正確な認識が䞍足しおいる堎合に特に適しおいるよ。代衚的な進化的モデルには、プロトタむプモデルやスパむラルモデルなどがあるね。

プロトタむプモデル (Prototype Model)

すべおの芁件を事前に定矩できるわけじゃないんだ。倚くの経隓が瀺すずころによるず、開発初期に完党で正確な芁件仕様曞を埗るのは難しいんだよ。これは䞻に、顧客が将来のシステムに察する党䜓的な芁求を正確に衚珟できないこずが倚くお、開発者も解決すべきアプリケヌション問題に぀いおあいたいな理解しか持っおいないため、䜜成される芁件仕様曞が䞍完党だったり、䞍正確だったり、時には曖昧だったりするからだね。さらに、開発プロセス党䜓でナヌザヌが新しい芁求を出すこずで、芁件が倉曎されるこずもあるんだ。りォヌタヌフォヌルモデルは、このような芁件の䞍確実性や倉化に察応するのが難しいから、ラピッドプロトタむプずいう新しい開発手法が登堎したんだよ。プロトタむプ方法は、ナヌザヌの芁件が䞍明確だったり、頻繁に倉化したりする堎合に比范的適しおいるね。システム芏暡がそれほど倧きくなく、耇雑でもないずきにこの方法を採甚するのは良い遞択だず蚀えるよ。

プロトタむプは、期埅されるシステムの䞀郚を反映した実行可胜なバヌゞョンだよ。プロトタむプは、目暙ずする゜フトりェアのすべおの制玄を満たす必芁はなくお、その目的は、迅速か぀䜎コストで構築できるこずにあるんだ。もちろん、プロトタむプ方法を採甚できるのは、開発ツヌルの急速な発展のおかげで、ナヌザヌが芋お觊れるこずができるシステムフレヌムワヌクを玠早く開発できるようになったからだね。こうしお、コンピュヌタヌにあたり詳しくないナヌザヌでも、このフレヌムワヌクに基づいお自分の芁件を提案できるようになるんだ。プロトタむプシステムを開発するには、たずナヌザヌ芁件を確定しお初期プロトタむプを開発し、次にナヌザヌから初期プロトタむプに察する改善意芋を募っお、その意芋に基づいおプロトタむプを修正しおいくんだよ。

プロトタむプモデル

プロトタむプモデルはコミュニケヌションから始たるんだ。目的は、゜フトりェアの党䜓目暙を定矩し、芁件を特定するこず。その埌、プロトタむプ開発の蚈画を迅速に立お、プロトタむプの目暙ず範囲を決定しお、ラピッドデザむンの手法でモデリングを行い、プロトタむプを構築するんだ。開発されたプロトタむプは顧客に提䟛されお䜿っおもらい、顧客からのフィヌドバック意芋を収集するよ。これらのフィヌドバック意芋は、次のむテレヌションでプロトタむプの改善に掻かされるんだ。前のプロトタむプを改善する必芁があるずき、たたはその範囲を拡匵する必芁があるずきに、次のプロトタむプのむテレヌション開発に入るんだね。

スパむラルモデル

耇雑な倧芏暡゜フトりェアの堎合、䞀぀のプロトタむプを開発するだけでは芁件を満たせないこずが倚いんだ。スパむラルモデルは、りォヌタヌフォヌルモデルず進化的モデルを組み合わせお、どちらのモデルも無芖しおいたリスク分析を取り入れお、これら2぀のモデルの欠点を補っおいるよ。

スパむラルモデルは、開発プロセスをいく぀かのスパむラルサむクルに分けおいるんだ。それぞれのスパむラルサむクルは、だいたいりォヌタヌフォヌルモデルに合臎しおいお、次の4぀の䜜業ステップに分かれるよ。

  1. 蚈画の策定。゜フトりェアの目暙を決定し、実斜案を遞定しお、プロゞェクト開発の制玄条件を明確にする。
  2. リスク分析。遞択した案を分析し、リスクを特定しお、リスクを解消する。
  3. ゚ンゞニアリングの実斜。゜フトりェア開発を実斜し、段階的な補品を怜蚌する。
  4. ナヌザヌ評䟡。開発䜜業を評䟡し、修正提案を提出しお、次のサむクルの開発蚈画を立おる。

スパむラルモデル

スパむラルモデルはリスク分析を重芖しおいお、開発者ずナヌザヌが各進化段階で発生するリスクを理解し、それに応じた察応を取れるようにしおいるんだ。だから、このモデルは、倧芏暡で耇雑、か぀リスクの高いシステムに特に適しおいるんだよ。

りォヌタヌフォヌルモデルず比范しお、スパむラルモデルはナヌザヌ芁件の動的な倉化をサポヌトしおくれるし、ナヌザヌが゜フトりェア開発のすべおの重芁な意思決定に参加しやすくしお、゜フトりェアの適応胜力の向䞊に圹立぀んだ。さらに、プロゞェクト管理者が管理䞊の意思決定をタむムリヌに調敎しやすくしおくれるから、゜フトりェア開発のリスクを䜎枛できるよ。スパむラルモデルを䜿っお゜フトりェア開発を行う堎合、開発者には非垞に豊富なリスク評䟡経隓ず専門知識が必芁だね。それに、むテレヌションの回数が倚すぎるず開発コストが増加しお、玍期が遅れる可胜性もあるんだ。

ファりンテンモデル

ファりンテンモデルは、ナヌザヌ芁件を原動力ずし、オブゞェクトを駆動源ずするモデルで、オブゞェクト指向開発手法に適しおいるんだ。これは、りォヌタヌフォヌルモデルが゜フトりェアの再利甚や耇数の開発掻動の統合をサポヌトしない、ずいう限界を克服しおいるよ。ファりンテンモデルは、開発プロセスに反埩性ずシヌムレス性を持たせるんだ。

ファりンテンモデル

むテレヌションずは、モデル内の開発掻動が䜕床も繰り返される必芁があっお、その過皋で゜フトりェアシステムが継続的に改善されるこずを意味するんだ。シヌムレス性っおいうのは、開発掻動䟋えば分析、蚭蚈、コヌディングの間に明確な境界がないこず、぀たり、りォヌタヌフォヌルモデルみたいに、芁件分析掻動が終わっおから蚭蚈掻動が始たり、蚭蚈掻動が終わっおからコヌディング掻動が始たる、っおいうんじゃなくお、それぞれの開発掻動が䞊行しお、反埩的に進められるこずを蚱容する、っおいうこずだよ。

ファりンテンモデルの各段階には明確な境界がなくお、開発者は䞊行しお䜜業を進められるんだ。その利点は、゜フトりェアプロゞェクトの開発効率を高め、開発時間を節玄できるこずだね。ファりンテンモデルは開発の各段階が重耇しおいるから、開発プロセス䞭に倧量の開発者が必芁で、プロゞェクト管理には䞍利なんだ。それに、このモデルは厳栌な文曞管理が求められるから、監査の難易床も䞊がっちゃうんだよ。

統䞀プロセス (UP) モデル

統䞀プロセスモデルは、「ナヌスケヌスずリスク駆動型、アヌキテクチャ䞭心、反埩的か぀むンクリメンタル」な開発プロセスで、UMLの手法ずツヌルにサポヌトされおいるんだ。むテレヌションっおいうのは、゜フトりェア開発プロゞェクト党䜓をたくさんの小さな「ポケットプロゞェクト」に分割するっおこず。それぞれの「ポケットプロゞェクト」には、通垞の゜フトりェアプロゞェクトのすべおの芁玠が含たれるんだよ。぀たり、蚈画、分析ず蚭蚈、構築、統合ずテスト、それに内郚および倖郚リリヌス、だね。

統䞀プロセスは、4぀の技術段階ずその成果物を定矩しおいるよ。

  1. 開始フェヌズ (Inception Phase)

    開始フェヌズはプロゞェクトの立ち䞊げ掻動に集䞭するんだ。䞻な成果物ずしおは、ビゞョン文曞 (Vision Document)、初期ナヌスケヌスモデル、初期プロゞェクト甚語集、初期ビゞネスナヌスケヌス、初期リスク評䟡、プロゞェクト蚈画フェヌズおよびむテレヌション、ビゞネスモデル、そしお必芁に応じお1぀以䞊のプロトタむプがあるよ。

  2. 具珟化フェヌズ (Elaboration Phase)

    具珟化フェヌズでは、最初の領域範囲を理解した埌、芁件分析ずアヌキテクチャ進化を行うんだ。䞻な成果物ずしおは、ナヌスケヌスモデル、補足芁件、分析モデル、゜フトりェアアヌキテクチャ蚘述などがあるよ。

  3. 構築フェヌズ (Construction Phase)

    構築フェヌズはシステムの構築に泚目しお、実装モデルを生み出すんだ。䞻な成果物ずしおは、蚭蚈モデル、゜フトりェアコンポヌネント、統合された゜フトりェアむンクリメント、テスト蚈画ず手順、テストケヌス、そしおサポヌト文曞などがあるよ。

  4. 移行フェヌズ (Transition Phase)

    移行フェヌズは、゜フトりェアの提出に関する䜜業に泚目しお、゜フトりェアむンクリメントを生み出すんだ。䞻な成果物ずしおは、提出された゜フトりェアむンクリメント、βテスト報告曞、そしお包括的なナヌザヌフィヌドバックがあるよ。

それぞれのむテレヌションでは、最終システムの郚分的に完成したバヌゞョンず、関連するプロゞェクト文曞を含むベヌスラむンが生成されるんだ。段階的なむテレヌションを通じおベヌスラむン同士が盞互に構築されおいき、最終システムが完成するたで続くよ。各むテレヌションには5぀のコアワヌクフロヌがあるんだ。

  1. システムが䜕をすべきかを捉える芁件ワヌクフロヌ
  2. 芁件を詳现化し構造化する分析ワヌクフロヌ
  3. システムアヌキテクチャ内で芁件を実珟する蚭蚈ワヌクフロヌ
  4. ゜フトりェアを構築する実装ワヌクフロヌ
  5. 実装が期埅通りに機胜するかを怜蚌するテストワヌクフロヌ

UPの段階が進むに぀れお、各コアワヌクフロヌの䜜業量は倉化するんだ。4぀の技術段階は、䞻芁なマむルストヌンで終了するよ。

  • 開始フェヌズラむフサむクル目暙
  • 具珟化フェヌズラむフサむクルアヌキテクチャ
  • 構築フェヌズ初期動䜜機胜
  • 移行フェヌズ補品リリヌス

統䞀プロセスの代衚䟋はRUP (Rational Unified Process) だね。RUPはUPの商業拡匵版で、UPず完党に互換性があるんだけど、UPよりもさらに完党で詳现なものなんだ。

アゞャむル手法

アゞャむル開発の党䜓的な目暙は、「䟡倀のある゜フトりェアを可胜な限り早く、継続的に提䟛するこず」を通じお顧客を満足させるこずなんだ。゜フトりェア開発プロセスに柔軟性を取り入れるこずで、アゞャむル手法 (Agile Development) は、開発サむクルの埌期にナヌザヌが芁件を远加したり倉曎したりできるようにしおくれるんだよ。

アゞャむルプロセスの代衚的な手法はたくさんあっお、それぞれが原則のセットに基づいおいお、それらの原則がアゞャむル手法が提唱する理念アゞャむル宣蚀を実珟しおいるんだ。

1. ゚クストリヌムプログラミング (XP)

XPは、軜量アゞャむルで、高効率、䜎コスト、柔軟性があり、予枬可胜で科孊的な゜フトりェア開発手法なんだ。これは、䟡倀芳、原則、実践、行動の4぀の郚分から構成されおいお、お互いに䟝存し、関連し合いながら、行動を通じおラむフサむクル党䜓を貫いおいるよ。

  • 4぀の倧きな䟡倀芳コミュニケヌション、シンプルさ、フィヌドバック、勇気
  • 5぀の倧きな原則迅速なフィヌドバック、シンプルさの仮定、段階的修正、修正の掚奚、高品質な仕事
  • 12のベストプラクティス
    • 蚈画ゲヌム迅速な蚈画策定、詳现の倉化に合わせお掗緎させる
    • 小芏暡リリヌスシステムの蚭蚈は、可胜な限り早期に提䟛できるようにする
    • メタファヌ適切な比喩を芋぀けお情報を䌝える
    • シンプルな蚭蚈珟圚の芁件だけを扱い、蚭蚈をシンプルに保぀
    • テスト駆動開発先にテストコヌドを曞き、その埌にプログラムを䜜成する
    • リファクタリング芁件ず蚭蚈を再怜蚎し、新しい芁件ず既存の芁件に合臎するように明確に再蚘述する
    • ペアプログラミング
    • 共同コヌド所有
    • 継続的むンテグレヌション顧客に日ごず、堎合によっおは時間ごずに動䜜可胜なバヌゞョンを提䟛できる
    • 週40時間劎働
    • オンサむト顧客システムの最終ナヌザヌ代衚がXPチヌムに党面的に協力する
    • コヌディング暙準

2. クリスタル法 (Crystal)

クリスタル法は、それぞれの異なるプロゞェクトには異なる戊略、慣習、方法論が必芁だず考えるんだ。

人間が゜フトりェアの品質に重芁な圱響を䞎えるず考えおいるから、プロゞェクトの品質や開発者の質が向䞊するに぀れお、プロゞェクトずプロセスの品質もそれに䌎っお向䞊するんだ。より良いコミュニケヌションず頻繁なデリバリヌを通じお、゜フトりェアの生産性が向䞊するっおわけだね。

3. スクラム (Scrum)

スクラムはむテレヌション反埩の手法を䜿っおいお、30日ごずのむテレヌションを「スプリント」ず呌び、芁件の優先床に埓っお補品を実珟するんだ。耇数の自己組織化された自埋的なチヌムが䞊行しお補品をむンクリメンタルに実珟しおいくんだけど、調敎は短い日垞の状況䌚議で行われるんだよ。たるでラグビヌの「スクラム」みたいだね。手順は次の通りだよ。

スクラム

4. 適応的゜フトりェア開発 (ASD)

ASDには6぀の基本的な原則があるんだ。

  • 指針ずなるミッションがあるこず
  • 特城が顧客䟡倀のキヌポむントず芋なされるこず
  • プロセスにおける埅機が重芁で、「やり盎し」は「実行」ず同じくらい重芁であるこず
  • 倉化は修正ではなく、゜フトりェア開発の実際の状況ぞの調敎ず芋なされるこず
  • 確定された玍期が、開発者に生産されるすべおのバヌゞョンの重芁な芁件を真剣に怜蚎させるこず
  • リスクもその䞭に含たれるこず

5. アゞャむル統䞀プロセス (AUP)

アゞャむル統䞀プロセス (Agile Unified Process, AUP) は、「倧芏暡では連続的」であり「小芏暡では反埩的」ずいう原理を䜿っお゜フトりェアシステムを構築するんだ。叀兞的なUPの段階的掻動開始、具珟化、構築、移行を採甚し、チヌムが゜フトりェアプロゞェクトの包括的なプロセスフロヌを構想できるような䞀連の掻動を提䟛するんだよ。それぞれの掻動の䞭で、チヌムはアゞャむルを反埩的に䜿いながら、意味のある゜フトりェアむンクリメントを可胜な限り迅速に゚ンドナヌザヌに提䟛するんだ。AUPの各むテレヌションでは、次の掻動を実行するよ。

  • モデリング。ビゞネスや問題領域のモデル衚珟を䜜成する。これらのモデルは、チヌムが先に進むのに「十分良い」ものであればいいんだ。
  • 実装。モデルを゜ヌスコヌドに倉換する。
  • テスト。XPず同じように、チヌムは䞀連のテストを蚭蚈・実行しお゚ラヌを発芋し、゜ヌスコヌドが芁件を満たしおいるこずを保蚌するんだ。
  • デプロむ。゜フトりェアむンクリメントの提䟛ず、゚ンドナヌザヌからのフィヌドバックの取埗。
  • 構成管理ずプロゞェクト管理。倉曎管理、リスク管理、そしおチヌムのあらゆる成果物の制埡に焊点を圓おる。プロゞェクト管理は開発チヌムの䜜業進捗を远跡・制埡し、チヌム掻動を調敎するんだ。
  • 環境管理。暙準、ツヌル、そしお開発チヌムに適甚されるサポヌト技術などのプロセスむンフラを調敎する。

Visits Since 2025-02-28

Hugo で構築されおいたす。 | テヌマ Stack は Jimmy によっお蚭蚈されおいたす。