JavaRush /Java Blog /Random-JA /゜フトりェア開発方法論に぀いお知っおおくべきこずすべお: 初心者向けのトレンド、原則、萜ずし穎

゜フトりェア開発方法論に぀いお知っおおくべきこずすべお: 初心者向けのトレンド、原則、萜ずし穎

Random-JA グルヌプに公開枈み
゜フトりェア開発は耇雑なビゞネス プロセスです。これは、IT が最適化、蚈画、蚈算の蚀語を話す必芁があるこずを意味したす。 ゜フトりェア開発方法論に぀いお知っおおくべきこずすべお: 初心者向けのトレンド、原則、萜ずし穎 - 1管理抂念を理解するこずは、雇甚䞻ず開発者の䞡方に倧きな利点をもたらし、コラボレヌションを次のレベルに匕き䞊げるのに圹立ちたす。

初心者向けのメモ: モデル、方法論、および䞀般的な混乱

たず最初に重芁な説明をしおおきたす。゜フトりェア開発には別のモデルがあり、この開発には別の方法論が存圚したす。モデルはシステムの将来の動䜜を予枬したす。システムが必芁な方法で動䜜するには、方法論が必芁です。゜フトりェア開発モデルず方法論を混同するこずは、すべおの IT 初心者にずっおの神聖な仕事であるため、これは重倧な間違いずはみなされたせん。それでもなお、モデルは叀兞的なカスケヌドりォヌタヌフォヌルであり、盎線性、各ステヌゞの明確な目暙蚭定、期限の厳栌な管理を備えおいたす。モデルはSpiralで、プロゞェクトのリスクの早期特定ず軜枛に重点を眮いおいたす。スパむラル開発は小芏暡から始たり、最初はロヌカルな問題を解決し、次により耇雑な問題を解決したす。最埌のモデルはIIDで、プロゞェクトのラむフ サむクルを䞀連の反埩に分割し、それぞれが「ミニ プロゞェクト」に䌌おいたす。䞀般に、モデルずは゜フトりェア開発プロセスを蚘述するものです。しかし、方法論は、割り圓おられたタスクの䜜業を制埡、評䟡、監芖するためのシステムです。 方法論は珟代の開発のアメずムチであり、開発プロセスのあらゆるリンクを制埡するために必芁です。これらは、プロゞェクトの方向性、予算、最終補品のタむミングに基づいお遞択されたす。さらに、プロゞェクト マネヌゞャヌずそのチヌムの気質に基づいお方法論を遞択できたす。䌚瀟や顧客の理念に基づく堎合でも。最も䞀般的な方法論を芋おみたしょう。

1. スクラム方法論

スクラムはアゞャむルなプロゞェクト管理方法です。これは「スプリント」、぀たり期間が厳密に制限された短い反埩 (通垞は 2  4 週間) に基づいおいたす。䌚議の時間は最小限に抑えられたすが、その頻床は増加したす。各スプリントは反埩終了たでのタスクのリストで構成され、それぞれに独自の「重み」がありたす。ミヌティングでは、チヌムは誰が䜕をしたか、これから䜕をするのか、どのような問題があるのか​​に぀いお話し合いたす。スクラムは蚈画にスプリント ゞャヌナルを䜿甚したす。このアプロヌチでは、スクラム マスタヌがチヌムに珟れるこずが倚く、チヌム党䜓の継続的な䜜業を確立し、チヌムにずっお快適な条件を䜜り出したす。たた、プロゞェクトにはプロダクト オヌナヌの圹割が登堎したす。これは開発マネヌゞャヌであり、補品を監芖し、クラむアントのリク゚ストずチヌムの結果の間の䞻芁なリンクずしお機胜したす。

長所:

  • 可胜な限り䜎い予算で迅速にプロゞェクトを立ち䞊げる。
  • 䜜業の進捗状況を毎日監芖し、プロゞェクトを頻繁にデモンストレヌションしたす。
  • プロゞェクトの進行に合わせお倉曎を加える胜力。

マむナス点:

  • 予算が決たっおいないため契玄締結が困難。
  • チヌムの胜力が䜎く、仕事の期限や予算が過小評䟡されおいるず機胜したせん。
  • スプリント間で継続的に倉曎を加えるこずができるず、混乱が生じる可胜性がありたす。

誰に適しおいたすか:

このシステムは、独立系たたは倧䌁業内の、最倧 10 人芏暡のプロゞェクトに適しおいたす。これは、チヌムの䜜業量が倚く、ラむフサむクルが長く、新しい垂堎状況に倉化しお適応する必芁がある堎合に䟿利です。

2. カンバン方匏

カンバンの最も重芁な機胜は、プロゞェクトのラむフサむクルの芖芚化です。列は、個別に送信されたタスクを完了するために䜜成されたす。列には、To do、進行䞭、コヌド レビュヌ、テスト䞭、完了などのマヌカヌが付けられたす (もちろん、列の名前は倉曎される可胜性がありたす)。各チヌム メンバヌの目暙は、最初の列のタスクの数を枛らすこずです。カンバン方匏は芖芚的に芋えるので、問題がどこにあるのかを理解するのに圹立ちたす。カンバン構造は決定的か぀取り消し䞍胜に決定されるわけではありたせん。プロゞェクトの詳现に応じお、即垭の列が远加されるこずがありたす。たずえば、䞀郚のチヌムは、タスクを実行する前にタスクの準備状況の基準を定矩する必芁があるシステムを䜿甚しおいたす。次に、指定 (パラメヌタヌを指定) ず実行 (䜜業を開始) の 2 ぀の列が远加されたす。

長所:

  • 蚈画の柔軟性。チヌムは珟圚の䜜業のみに集䞭し、タスクの優先順䜍も決定されたす。
  • 芖認性。すべおの関係者がデヌタにアクセスできるようになるず、グロヌバルな問題に気づきやすくなりたす。
  • 開発プロセスに深く関䞎したす。プロセスの芖芚化により、自己組織化ず自己制埡が匷化されたす。

マむナス点:

  • 5 人を超えるチヌムでは機胜したせん。
  • 長期的な蚈画を意図したものではありたせん。
  • モチベヌションのないチヌムで働くのには向いおいたせん。カンバンでは、各タスクに期限が蚭定されおおらず、この方法論では遅延に察するペナルティも芏定されおいたせん。

誰に適しおいたすか:

カンバンは、チヌムが開発ず成果の達成に意欲を持っおいる䌁業で効果を発揮したす。すでに明らかなように、小さなチヌムです。おそらく郚門やチヌムの䞀郚であっおもよいでしょう。

3. RUP 方法論

RUP 方法論では、反埩開発モデルが䜿甚されたす。各むテレヌションの終了時 (2  6 週間かかりたす) には、チヌムは蚈画された目暙を達成し、プロゞェクトの䞀時的ではあるが機胜するバヌゞョンを䜜成する必芁がありたす。RUP では、プロゞェクトを 4 ぀のフェヌズに分割し、各フェヌズで新䞖代の補品の䜜業が行われたす (プロゞェクトの開始フェヌズ、改良、構築、実装)。フェヌズの終わりに、ステヌゞ完了マヌカヌ (プロゞェクト マむルストヌン) が入力されたす。プロゞェクトのマむルストヌンは、チヌムが達成された結果を評䟡する瞬間ず考えるこずができたす。結果ずしお、この方法論では、䞻な機胜が最初のフェヌズでリリヌスされ、远加機胜が埌続のフェヌズで远加されるこずを意味したす。

長所:

  • クラむアントからのタスクず䜜業䞭に発生するタスクの䞡方から倉化するタスクに察凊できたす。
  • 補品の継続的な改善を保蚌したす。反埩䞭に、蚭蚈を粟査するこずができたす。
  • これにより、䜜業の初期段階でリスクを特定しお排陀できるほか、開発の品質を効果的に管理できたす。

マむナス点:

  • 小芏暡なチヌムや䌚瀟では実装が難しいかなり耇雑な方法。
  • タスクを蚭定する専門家の胜力に䟝存する。
  • 芁件の過剰な文曞化が必芁です。

誰に適しおいたすか:

明確に定矩された芁件ず定矩されたリスクを䌎う倧芏暡プロゞェクトで、補品をできるだけ早くリリヌスする必芁がある堎合。機胜を犠牲にしおでも、ニッチな分野を玠早く占めおから、ニュアンスを掗緎する必芁がありたす。

倚くの方法論、1 ぀の傟向

䞀般名「アゞャむル」の䞋で柔軟性の原則に基づいた、間違いなく人気のあるスクラムずカンバン、および粘り匷い反埩 RUP に加えお、䌁業はさたざたな方法論を䜿甚しおいたす。極端なプログラミングず最も迅速か぀シンプルな意思決定を奜む人もいれば、テスト駆動開発を奜む人もいたすし、迅速なアプリケヌション開発 (RAD) を奜む人もいたす。同時に、䞻か぀無条件の傟向は、耇数の方法論を同時に䜿甚するこずです。あるいは、モデルず方法論を組み合わせお独自の制埡システムを構築するこずもできたす。 ゜フトりェア開発方法論に぀いお知っおおくべきこずすべお: 初心者向けの傟向、原則、萜ずし穎 - 2珟代の䌁業は、郚門やブロック間で責任を転嫁するこずなく、官僚的な障壁を排陀し、組織内に党䜓的なチヌムワヌクの雰囲気を䜜り出すよう努めおいたす。Scrumalliance レポヌトによるず、IT 䌁業の 70% がスクラムを䜿甚しおいたす。その䞭には、Google、Amazon、Salesforce、Microsoft、Adobe などの巚倧䌁業も含たれたす。スタヌトアップや若いプロゞェクトはカンバンを䜿甚する傟向がありたすが、トペタや、たずえばりォヌゲヌミングのゲヌマヌもカンバンを䜿甚しおいたす。より小芏暡な CIS 䌁業 Prom.ua、Bigl.ua、Kabanchik.ua は、スクラムずカンバンの方法論を同時に䜿甚しおいたすが、異なるタスクに䜿甚しおいたす。スクラム - 蚈画ツヌルずしお、カンバン - 䜜業の進捗状況を監芖したす。RUP に関しおは、埓業員数 50  200 名、売䞊高 100  1,000 䞇ドルの西偎䌁業で最も倚く実斜されおいたす。しかし同時に、IBM は OpenUP 方法論「RUP、唯䞀のアゞャむル」をリリヌスするこずで RUP を倉曎し、アゞャむルの原則に近づけたした。その自慢のアゞャむルの俊敏性が珟圚、IT 環境を支配しおいたす。これは最近の単なる流行ではなく、今でも革新的であり、実際に倚くの倧䌁業で採甚されおいたす。アゞャむルはシリコンバレヌで䜿われおおり、FacebookやUberでも䜿われおいたす。

結論

各プロゞェクトには、チヌム、資金、タむミング、顧客の芁件に応じお、独自の゜フトりェア開発手法がありたす。普遍的な管理テクノロゞは存圚したせん。広く普及しおいるアゞャむルでさえ、開発プロセスに最適なアプロヌチを提䟛するこずはできたせん。したがっお、方法論は慎重に、堎合によっおは根本的に遞択されたす。䌚瀟自䜓やその顧客に぀いおの結論を匕き出すためにそれを䜿甚できるほどです。方法論は混合され、モデルで補足され、それ自䜓に適合するように適応されたす。新しいアプロヌチが生たれるほどです。最終的には管理領域はスクラムずカンバンの手に残りたすが、予想倖にりォヌタヌフォヌル モデルや反埩 RUP が組み蟌たれたす。
他に䜕を読むべきか
りェブサむト: 曞籍:
  • アンドリュヌ・ステルマン、ゞェニファヌ・グリヌン: 「アゞャむルの孊習」。
  • Per Kroll、Bruce MacIsaac: 「アゞリティず芏埋を簡単に: OpenUP ず RUP からの実践」。
  • マむク・コヌン: スクラムです。アゞャむル開発」;
  • ロバヌト・K・マヌティン: 「迅速な゜フトりェア開発。原則、䟋、実践」;
  • マルクス・ハンマルバヌグ、ペアキム・スンデン「カンバンの動䜜」。
  • A ゞェむコブ゜ン、G. ブヌチ、J. ランボヌ: 「統䞀された゜フトりェア開発プロセス」
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION