今日のソフトウェア開発では、多くの方法論が使用されています。ウォーターフォール、アジャイル、スクラム、かんばん、リーン、エクストリームプログラミングなどの流行語を聞いたことがあるかもしれません。
この記事では、これらの用語を定義し、それらが互いにどのように関連しているか、およびそれらが互いにどのように異なるかについて説明します。前述の流行語の多くは、 リーン生産方式 もともとに基づいていた トヨタ生産方式(TPS) それで、これについて最初に話します。
「リーン」という用語は、元々ヘンリー・フォードに触発された豊田佐吉、豊田喜一郎、大野耐一によって開発されたトヨタ生産方式(TPS)に基づく製造モデルを表すために造られた製造に由来します。 TPSは、「すべての廃棄物を完全に排除する」という哲学に焦点を当て、1950年代から1970年代にかけて製造業に革命をもたらしました。 TPSは、1990年に「リーン生産方式」として知られるようになりました。 「世界を変えた機械」 公開されました。
TPSは、トヨタで3つの幅広い種類の廃棄物を特定しました。
過剰な処理: 貧弱な工具や製品設計から
TPSは、次の2つのコアコンセプトを適用することにより、無駄をなくすように努めました。
TPSが進化するにつれて、これらのコアの柱と価値観は、 Jidoka そして JIT そして定着した:
次の図は、コアコンセプトとコアバリューが互いにどのように関連しているかを示しています。
トヨタ製品システムとリーン生産方式は時間とともに進化し、管理を含む多くの分野で適用されました。
リーン経営 継続的な改善と人々の尊重というコアバリューを適用し、それを5つの規範的なリーン原則のセットに蒸留しました。これは、無駄を継続的に改善して排除するために何度も繰り返されます。
リーン管理のこれらの原則およびその他の側面は、Womack&Jonesが1996年に「リーン思考」を発表したときに正式化されました。
それ以来、リーンは管理、ソフトウェア開発、その他の分野に適用されてきました。
1980年代と1990年代に、ソフトウェア開発業界は、従来のウォーターフォール手法を使用して実行されるプロジェクトにますます時間がかかるため、危機に近づいていました。これにより、ビジネスニーズの特定とソフトウェアソリューションの提供の間に大きな遅れが生じることがよくありました。この遅れは、航空宇宙産業など、特定の要件を持つ特定の産業では、数年、あるいは数十年で測定されることもありました。
これらの複数年の期間中に、要件、システム、さらにはビジネス全体が変化しました。多くの場合、プロジェクトは途中でキャンセルされるか、スコープを完了しますが、プロジェクトの開始時に特定されたビジネスニーズを満たさなくなったことがわかります。
ザ・ ウォーターフォールの方法論 何が必要かわからなかったとしても、契約書の作成を余儀なくされたため、すべてのことを考えた利害関係者に報いました。ウォーターフォールの方法論では、要件または設計段階で決定を下す必要があり、これらの決定は、契約を変更してプロジェクトにコストを追加せずに変更することは非常に困難でした。ソフトウェアプロジェクトの大部分が完全に失敗したか、遅れて予算を超えて配信されたか、必要なものを配信できませんでした。
この一般的な欲求不満は、ウォーターフォールを改善しようとするさまざまな思考リーダーにつながりました。初期の例には次のものがあります 迅速なアプリケーション開発(RAD) これは、プロトタイプを迅速に開発し、ビジネスと協力して要件をさらに開発することにより、要件と設計フェーズを短縮することで無駄を削減することに重点を置いていました。小さなプロジェクトが完了し、継続的な反復で機能が追加される反復型開発への動きもありました。これらの方法論は役に立ちましたが、解決しませんでした ウォーターフォールに関連する主要な問題 。
1990年代から2000年代初頭に、数人の著者がリーン原則をソフトウェア開発に適用することに関する本を出版しました。ロバート・シャレット博士が発表 「リーンソフトウェア開発」 1993年と2003年の「リーンソフトウェア開発の12の原則」。
トムとメアリーポッペンディークが出版 「リーンソフトウェア開発:アジャイルツールキット」 この本は、リーン製造における7つの廃棄物の形態に直接関連するリーン開発の7つの原則を詳述しています。 2つの異なるリーン出版物とアジャイル(次のセクションで説明)の類似点と相違点を次の図に示します。
Charette博士によると、リーンとアジャイルの主な違いの1つは、アジャイルがボトムアップであるのに対し、リーンはトップダウンであるということです。
目標シャレットのリーンソフトウェア開発 | アジャイルマニフェスト | ポッペンディークのリーン |
---|---|---|
|
|
シャレットのリーンソフトウェア開発 | アジャイルマニフェスト | ポッペンディークのリーン |
---|---|---|
|
|
|
CharetteとPoppendiecksが本を出版したのとほぼ同時に、同じ問題を解決するためにアジャイルフレームワークが作成されました。 2001年2月、アジャイルの先駆者のグループがユタ州スノーバードで開催された悪名高いスノーバード会議に集まり、解決策を考え出しました。
結果は アジャイルマニフェスト これは、変化する要件と顧客のニーズに適応し、無駄を削減し、段階的で反復的なアプローチを使用してより迅速に利益を提供しようとする方法論の一連の価値と原則を示しました。
アジャイルマニフェストは次のように読みます。
「私たちは、ソフトウェアを開発し、他の人がそれを行うのを助けることによって、ソフトウェアを開発するより良い方法を発見しています。この作業を通じて、私たちは価値を得るようになりました。
つまり、右側のアイテムには価値がありますが、左側のアイテムにはもっと価値があります。」
マニフェストの価値観と一致しているのは、アジャイルマニフェストの背後にある12の原則です。
「私たちは次の原則に従います。
上記の価値観と原則は、Jidoka、JIT、Genchi Genbutsu、Kaizen、Hansei、Heijunkaなどのリーン原則の適用と廃棄物の削減です。
ウェブデザインでcmsはどういう意味ですか
アジャイルは、アジャイルの価値観と原則のセットを適用するすべてのプロセスに適用される包括的なフレームワークです。
いくつかの例は次のとおりです。
スクラムは、複数の人々によって別々に発明されたアジャイルの原則を適用するフレームワークであり、その何人かはアジャイルマニフェストに署名しました。
SchwaberとSutherlandは、1990年代を通じて協力して、ソフトウェア開発のコンテキストでフレームワークを開発および改良し、さまざまな会議で講演しました。 SchwaberはMikeBeedleと協力して、2001年の著書「AgileSoftware DevelopmentwithScrum」でこの方法を説明しました。
Schwaberはさらに、主要なスクラム認証局の両方を作成しました。
スクラムはもともと小さなチーム(7人以上またはマイナス2人のメンバー)向けに設計されていたため、時間の経過とともに、スクラムフレームワークをより大きなチームやプロジェクトにスケーリングするためにいくつかのフレームワーク/認証機関が作成されました。
erisbotdiscordの使い方
スクラムアライアンスによると:
スクラムは、チームが短いサイクルで製品を提供するのに役立つ、シンプルでありながら非常に強力な一連の原則と実践であり、迅速なフィードバック、継続的な改善、および変化への迅速な適応を可能にします。
スクラムは、アジャイルの原則を適用するソフトウェアを開発するための規範的で漸進的かつ反復的なフレームワークです。スクラムの値と原則は以下のチャートに概説されており、リーンおよびアジャイルの値と原則と大きく一致しています。
作業は、スプリントと呼ばれる短いタイムボックスの反復に分割されます。これは通常1〜3週間です。これは、ウォーターフォールの詳細な計画とはまったく対照的です。現在のスプリントで計画されている作業は、製品バックログ(プルシステム、平準化)と呼ばれる作業項目の優先バックログの先頭から選択され、スプリントが開始されると修正されます。目標は、各スプリントの最後に動作するソフトウェアを用意して、迅速なフィードバックを可能にすることです。
スプリントの最後に、チームは、完了した作業、スプリントがどのように進んだかを確認し、次のスプリントを計画するために集まります。スプリントの長さ、およびスプリントの儀式とリズムは、スプリントごとに固定されています。
スプリントは、スプリントでの作業を完了するために必要なすべてのスキルを含む部門横断的なチームによって実行されます。毎日の計画と進捗状況の追跡は、スクラムボードやスプリントバーンダウンチャートなどの視覚的なアーティファクトを使用して行われます。
スプリントの作業は、優先順位付けされたバックログから取得されます。これらの方法に従うことで、時間の経過とともに要件を変更でき、エンドユーザーからの絶え間ないフィードバックが促進されます。
以下のマインドマップ図は、次のセクションで説明するScumの主要な概念の概要を示しています。
スクラムには3つの役割があります。
上で説明したように、スクラムには定義されたフローと一連の儀式と活動があります。スプリントの流れは次のとおりです。
スプリントが始まる前に、スクラムマスターは、スクラムチームと製品所有者とのスプリント計画会議と呼ばれる会議を促進します。この会議では、製品所有者が次のスプリントの目的を特定し、チームは目的に従って作業を計画します。
これは通常、次のアクティビティで実行されます。
スプリントのためにコミットされた作業または範囲の合計量は、ストーリーポイントで測定されます。
スプリント中に、チームメンバーは、スプリントのTo Doリストの一番上から作業項目(ユーザーストーリー、タスクなど)をプルして作業します。さまざまなチームメンバーがさまざまな作業項目またはそのサブタスクに取り組みます。必要に応じて、アイテムを1つの列から次の列に移動することで、アイテムのステータスを更新します(通常は やること>進行中>テスト>完了 またはそのバリエーション)が完了するまでスクラムボード上で。
進捗状況は、完了した作業量と残りの作業量をストーリーポイントで測定したバーンダウンチャートを使用して追跡されます。残りのストーリーポイントはY軸に表示され、残りの時間はX軸に表示されます。ストーリーが完了すると、バーンダウンチャートが更新されます。
毎日、スクラムマスターは以下に焦点を当てています。
毎日のスタンドアップ
スプリントの毎日の初めに、スクラムマスターは、スクラムチームおよび製品所有者との短い15分間の会議を促進して、その日の計画を立て、スプリントの進捗状況を確認します。これは、全員がスクラムボードの前に立って、会議の各人がスプリントボードの特定の項目を参照して、2分以内に次の質問に答える短い会議です。
これにより、誰もが何に取り組んでいるのか、どのような進展があったのか、あるいはなされていないのかを確認し、障害や必要な支援を特定できます。
スクラムマスターは、次のスプリントを計画する前に、2つのセレモニーがスプリントを終了するのを容易にします。
スプリントデモ
スプリントの最後に、スクラムマスターは、完成した各ストーリーが製品の所有者とチームの他のメンバーに作業ソフトウェアでデモンストレーションされるスプリントデモミーティングを促進します。製品の所有者は、すべての受け入れ基準が満たされた場合にストーリーを受け入れるか、ストーリーを拒否します。ストーリーが拒否された場合、不足が特定され、ストーリーは優先順位に従って製品バックログに戻され、後で完了するか、まったく完了されません。多くの場合、製品の所有者が受け入れないストーリーの部分は別のストーリーに分割され、元のストーリーは閉じられます。
スプリントごとに完了したストーリーポイントの総数(速度)が計算され、スプリントが閉じられます。速度は、チームの出力レベルを追跡するために使用され、機能またはリリースがいつ完了するかを見積もるために使用されます。
スプリント回顧展
スプリントデモの後、次のスプリント計画会議の前に、スクラムマスターは、チームが完了したばかりのスプリントを振り返り、何がうまくいったか、何がうまくいかなかったかについて話し合うスプリントレトロスペクティブを促進し、プロセスを継続的かつ段階的に改善できるようにします。時間の経過に伴う品質(カイゼン、反省)。チームがディスカッションを生成するのに役立つ、遡及的な形式や演習が多数あります。
改善アクションアイテムのリストが作成され、アイテムが製品バックログに追加されたり、DoDまたはチーム憲章が変更されたりする場合があります。
製品バックログの作成
スプリントを計画または実行する前に、製品の所有者は製品の作業のバックログを作成する必要があります。バックログは通常、製品の所有者によって書かれたストーリーと呼ばれる機能開発アイテムから始まり、時間の経過とともに、チームのメンバーによって作成される可能性のある開発またはQAタスク、スパイク、欠陥などが追加されます。バックログのすべてのアイテムは優先順に配置されます。
バックロググルーミング
最初の製品バックログが作成され、優先順位が付けられると、進行中のバックロググルーミングプロセスが引き継ぎます。目標は、スプリント計画会議中にスプリントに引き込まれる準備ができるように、少なくとも、バックログの上位アイテムを常に十分に手入れして見積もることです。これは通常、定期的に継続的なバックロググルーミングミーティングを行うことによって行われます。 プロダクトマネージャー チームはスクラムマスターによって促進されました。
ミーティングの前に、ストーリーのリストがチームに送信され、グルーミングミーティングのレビューと準備ができるようになります。グルーミングミーティングでは、各項目が受け入れ基準、複雑さ、リスク、サイズ、実装戦略などの観点から議論されます。受け入れ基準およびストーリーの他の詳細は、チーム、製品所有者、およびスクラムマスターまでレビューおよび改訂されます。ストーリーを共通に理解している。その時点で、ストーリーはプランニングポーカーと呼ばれる手法を使用してストーリーポイントで推定されます。
ストーリーポイントの見積もり
ストーリーポイントは、ストーリーが以前の既知のよく理解されている作品と比較される相対的なサイズ設定を使用する取り組みの単位です。あなたはいつも、他の作品と「この物語は大きいのか、小さいのか、それともほぼ同じサイズなのか」という質問をしています。
フィボナッチスケール(1、2、3、5、8、13、21…)は最も一般的に使用されるスケールであり、各増分は前のスケールの約2倍です(つまり、5ポイントストーリーは多かれ少なかれ2倍です)スリーポイントストーリーとして大きな)。 Tシャツのサイズ(XS、S、M、L、XL)や魚(ミノー、金魚、マス、マグロ、クジラなど)のような他のスケールが使用されることもあります。何かのサイズを別のサイズと比較できるスケールならどれでも機能します。
ストーリーポイントは、開発、テスト、設計、および完了の定義に必要なその他のその他のタスクを含む、ストーリーを実装するためのチームの全努力を表しています。見積もりでは、作業量、複雑さ、およびリスクが考慮されます。ストーリーの相対的なサイズが決定されると、スケール上のサイズが見積もりとして割り当てられます。
チームは、チーム全体が参照ストーリーとして理解する「最も中程度」のサイズのストーリーを選択することにより、推定のベースラインを最初に確立することにより、ストーリーポイントの推定プロセスの準備をします。ますます大きくなるいくつかの追加のリファレンスストーリーも選択されます。
ストーリーポイントの見積もりは、グルーミングミーティング中に行われ、PlanningPokerを使用したスプリント計画中に行われることもあります。
ストーリーポイント推定の利点は次のとおりです。
リリースの見積もりと追跡
ストーリーポイントの見積もりは、次の手法を使用したリリース計画のコンテキストでも使用されます。
デザインポートフォリオの作り方
チームの速度と組み合わせたリリース内のすべてのストーリーのストーリー見積もりにより、リリースがいつ完了するかを見積もり、その進行状況を追跡できます。これは、リリースバーンアップチャートによく示されます。
スクラムの主な利点は、アジャイルの価値観と原則、およびセイリ、ジドカ、ジャストインタイム、カイゼン、ゲンチゲンブツ、平準化、プルシステム、イテレーションなどのリーンコンセプトを適用できることです。これらの原則を適用することで、プロジェクトチームは継続的なフィードバックを受け取り、変化する要件と不確実性に迅速に適応し、無駄を減らし、可視性と透明性を高め、継続的な改善に努めることができます。スクラムは、製品バックログの最も重要な項目に常に焦点を合わせ、常に機能するソフトウェアを生成する短い反復でのみ機能することにより、顧客に焦点を合わせ、顧客が好きなもの(および嫌いなもの)を確認し、必要に応じて変更を加えることができます。プロセスと管理に関するオーバーヘッドコストが小さいため、より迅速で安価な結果が得られます。
スクラムは、要件が明確に知られていない、および/または変更が予想されないプロジェクトに最適な方法論です。これはほとんどのプロジェクトに当てはまります。スクラムは、チームが自分で作業を整理できるようにし、進行状況と問題の両方に対する可視性、透明性、および説明責任を提供するため、経験豊富で意欲的なチームにも最適です。これらすべてにより、チームは時間の経過とともに改善され、生産性が向上します。
スクラムにはいくつかの欠点があり、状況によっては最善の方法ではありません。
かんばんは、リーン値とアジャイル値の多く、およびスクラム値と原則のサブセットを適用する軽量プロセスですが、いくつかの基本的な違いもあります。かんばんは、視覚化、フロー、および進行中の作業の制限に重点を置いています。
かんばんは、「看板」または「看板」を意味する日本語です。トヨタのラインワーカーは、かんばん(実際のボード)を使用して、製造プロセスのさまざまなステップで追加の容量を通知しました。ソフトウェアでは、これは、スクラムボードと非常によく似たかんばんボードを使用して行われます。作業項目が持つことができるステータスごとに、ToDo項目と垂直列の優先バックログがあります。スクラムと同様に、作業項目はあるステータスから別のステータスに移動されます。ただし、かんばんでは、進行中の作業量は、チームのキャパシティに基づいて、各ステータスのアイテムの最大数に厳密に制限されています。既存の作業がプロセスの次のステップに移動されるまで、新しい作業を取り込むことはできません。スクラムでは、スプリントで計画されている作業量を制御することにより、進行中の作業が間接的に制限されます。
かんばんには、固定された反復やスプリントはなく、作業項目が1つのステージから次のステージにプルされる一定のフローがあります。これは、かんばんボードがリセットされないことを意味します。それはまた、スクラムの儀式の多くが使用されていないことを意味します。かんばんチームは、毎日スタンドアップミーティングを行うことがよくありますが、規定されていません。定期的に計画されているスプリント計画会議、スプリントデモ、またはスプリント回顧展はないため、プロセスはより軽量です。これらの儀式の活動のいくつかは、非公式なレベルで行われる場合と行われない場合があります。継続的な改善は、ある状態から別の状態へのアイテムの流れを追跡および分析し、発見された問題に基づいて一定の段階的な改善を行うことによって達成されます。
かんばんは、スクラムが果たす役割も規定していません。必要な役割はチームメンバーの役割だけですが、多くの場合、 プロジェクトマネージャ チームとバックログを管理します。多くの場合、単一のかんばんボードは、特定のステータスのアイテムのみを処理する複数の機能ベースの役割やチームにサービスを提供できます。たとえば、開発チームがToDoからInProgressにアイテムをプルしてテストに移動し、テストチームがテストでアイテムをテストしてDoneに移動する場合があります。
作業項目の優先順位付けとグルーミングのためのバックログ管理アクティビティの多くは、特定の作業項目が十分に理解され、作業の準備ができていることを確認するために実行する必要がありますが、作業項目の見積もりはオプションとして規定されています。
次の表では、スクラムとアジャイルを比較しています。
Kanban | スクラム |
---|---|
継続的デリバリー | タイムボックス化されたスプリント |
プロセスとオーバーヘッドが少ない | スプリントの儀式と役割を規定している |
個々のアイテムをすばやく完了することに重点を置いています | 作業のバッチを迅速に完了することに焦点を当てています |
サイクルタイムを測定します | スプリント速度を測定します |
効率的な流れに焦点を当てる | 予測可能性に焦点を当てる |
個々のアイテムの仕掛品を制限します | スプリントレベルで仕掛品を制限する |
個々の作業項目がプルされます | SprintPlanningでは作業がバッチでプルされます |
規定された役割はありません | 所定の役割(スクラムマスター、プロダクトオーナー、チームメンバー) |
かんばんボードは、単一の部門横断的なチームまたは複数の専門チームを中心に編成できます | スクラムボードは、単一のクロスファンクショナルチームを中心に編成されています |
変更はいつでも行うことができます->より柔軟 | 変更は、製品バックログでのみ許可されます。スプリント内での変更は許可されていません |
必要なトレーニングが少なくて済みます | より多くのトレーニングが必要 |
漸進的な改善のみが必要なチームに適しています | 基本的な変更が必要なチームに適しています |
このパートでは、ソフトウェア開発に使用される最も一般的な方法論のいくつかを確認しました。これで、リーン、アジャイル、スクラム、かんばん、およびリーン生産方式とTPSにおけるそれらの歴史的ルーツについて十分に理解できたはずです。シリーズの次のパートでは、次のような他のソフトウェア開発方法論のレビューと比較を続けます。 滝 、 JTBD 、および 安全 (および他のスケーリングフレームワーク)、およびハイブリッド方法論。したがって、それらすべてを1か所で簡単に説明できます。
アジャイルは、アジャイルの価値観と原則のセットを適用するすべてのプロセスに適用される包括的なフレームワークです。例としては、エクストリームプログラミング、スクラム、かんばんなどがあります。
スクラムは、チームが短サイクルで製品を提供するのに役立つ、シンプルでありながら非常に強力な一連の原則と実践です。スクラムは、複数の人々によって別々に発明されたアジャイルの原則を適用するフレームワークであり、その何人かはアジャイルマニフェストに署名しました。
かんばんは、リーン値とアジャイル値の多く、およびスクラム値と原則のサブセットを適用する軽量プロセスですが、いくつかの基本的な違いもあります。かんばんは、視覚化、フロー、および進行中の作業の制限に重点を置いています。