です。ソフトウェアが最初に開発されたとき、開発プロセスはどのような種類のガバナンスにも適合しませんでした。次に、アプリケーションが作成または構築されるまでにソフトウェア開発を決定できるという考えを導入したウォーターフォールが登場しました。
開発プロセス中にバランスやチェックがなかったため、ソフトウェアのテストと展開に現在よりもはるかに長い時間がかかりました。その結果、設定された期限よりもはるかに遅れて作成された、エラーやバグのある低品質のソフトウェアを受け取りました。主な焦点は、長く長期にわたるプロジェクト計画でした。
滝のデザインはトリプルコンストレイントモデルにリンクされています、プロジェクト管理トライアングルとも呼ばれます。三角形の各辺は、プロジェクト管理の制約の1つであるスケール、時間、およびコストを表しています。以下のようアンジェロベレッタの書き込み、コスト、時間と体積の関数は、トリプル制約モデル状態である」ということ、そしてこれらの三つの要因は、我々がリードタイム(時間)を短縮したい場合は、我々はコストを増加させなければならない...特定し、予測可能な方法で関連しています。このモデルは、ボリュームを増やしたい場合は、コストまたはリードタイムを増やす必要があることも意味します。」
滝から敏捷性への移行
滝は、線形プロセスなしでは想像するのが難しい生産と機械工学から私たちにもたらされました。屋根を作る前に、壁を作ります。ソフトウェア開発の問題も、計画によって解決できるものと見なされていました。
結局、ウォーターフォールは、ソフトウェア開発への直感的なアプローチとは対照的に、有害なアプローチとして認識されました。多くの場合、プロジェクトの価値は、プロジェクトサイクルの最後まで決定できませんでした。多くの場合、プロジェクトは失敗しました。さらに、プロジェクトが終了するまで、顧客には動作するソフトウェアが表示されませんでした。
アジャイルは、プロジェクト全体の計画から離れ、推定日とレポートに拘束される別のアプローチを意味します。アジャイル手法は、不確実性を想定し、考慮に入れます。変更を無視するのではなく、変更に対応することをお勧めします。変化は、顧客のニーズを満たす方法と見なされています。
アジャイルバリュー
アジャイルはアジャイルマニフェストによって管理されています。これが彼の12の原則です:
- 顧客満足は最優先事項です。
- 開発の後の段階であっても、要件を変更することをお勧めします。
- 動作する製品は、できるだけ頻繁にリリースする必要があります。
- 開発者とビジネス担当者は協力する必要があります。
- やる気のある専門家がプロジェクトに取り組む必要があります。
- ライブコミュニケーションは、情報を交換するための最も実用的で効果的な方法です。
- 実用的な製品は、進歩の主な指標です。
- アジャイルプロセスは持続可能な開発に貢献します。
- 卓越した技術と優れたデザインに注意を払うことが重要です。
- シンプルさが不可欠です。
- 最高のアーキテクチャソリューション、要件、および設計アイデアは、自己組織化チームからもたらされます。
- パフォーマンスを改善し、ワークスタイルを調整する方法を定期的に検討してください。
アジャイルの 4つの主なアイデア:
- 人と相互作用は、プロセスとツールよりも重要です。
- 実用的な製品は、包括的なドキュメントよりも重要です。
- 契約条件に同意するよりも、お客様との協力が重要です。
- 当初の計画に従うよりも、進んで変更することが重要です。
このアプローチは、硬い滝とは大きく異なります。Agileでは、クライアントは開発チームのメンバーです。滝では、彼はビジネス要件を定義するときに最初にのみ参加し、最終製品を検討するときに最後に参加します。Agileでは、クライアントはチームが製品の受け入れ基準を作成するのを支援し、プロセス全体に関与し続けます。さらに、アジャイルには、組織のすべてのメンバーによる変更と継続的な改善が必要です。開発チームは、プロジェクトマネージャーやテスターを含む他のチームと協力します。誰がいつ何をするかは、割り当てられた役割によって異なり、チーム全体と話し合います。
機敏なソフトウェア開発
アジャイルなソフトウェア開発には、適応計画、進化的設計、および最終製品の提供が必要です。多くのソフトウェア開発の方法論、構造、および実践は、以下を含むアジャイルとして分類されます。
- スクラム
- Kanban ( )
- XP ( )
- Lean
- DevOps
- FDD ( )
- TDD ( )
- Crystal
- DSDM ( )
- ASD ( )
これらはすべて、単独で、またはソフトウェアの開発と展開のための他の方法と組み合わせて使用されます。最も一般的なのは、Scrum、Kanban(またはScrumbanと呼ばれる組み合わせ)およびDevOpsです。
スクラムは、チームが独立して機能を超えて作業し、完成品の配送速度を上げ、クライアントのビジネスに付加価値を与えるフレームワークです。チームは通常、スクラムマスター、製品マネージャー、および開発者で構成されます。 Scrumの主な焦点は、より少ない改善でより高速な反復にあります。
かんばんアジャイルフレームワークであり、ワークフロー管理システムとも呼ばれます。これは、チームが作業を視覚化し、効率を向上させるのに役立ちます(俊敏性を維持します)。Kanbanは通常、デジタルまたは物理的なホワイトボードです。チームのタスクは、ステージに応じてボード上を移動します。タスクはまだ開始されておらず、進行中であり、テストされ、完了しています。かんばんでは、各チームメンバーがタスクのステータスを確認できます。
DevOps値
DevOpsは、文化、考え方、ソフトウェアまたはインフラストラクチャを開発する方法、およびソフトウェアとアプリケーションを構築および展開する方法です。運用と開発は分離されていません。それらは互いに干渉することなく同時に動作します
。DevOpsは他の2つの領域に基づいています:リーンとアジャイル。DevOpsは、会社の名前や役割ではありません。これは実際には、継続的な製品の提供、展開、および統合に関して組織またはチームが行うコミットメントです。よるとジン・キム、フェニックスとユニコーンプロジェクトの作者、DevOpsチームの原則を定義する3つの「パス」はあります。
- フローの原則、
- フィードバックの原則、
- 無限の学習の原則。
DevOpsソフトウェア開発
DevOpsは機敏な方法です。その真の形では、ソフトウェア開発と情報技術またはインフラストラクチャの実装についての共通の文化と考え方を表しています。
自動化、クラウド、マイクロサービスについて考えるとき、DevOpsについて考えます。
Nicole Forsgren、Jez Humble、JinKimがHurryUp!という本を書きました。高性能組織を構築および拡張する方法。」でインタビュー、彼らが何であるかDevOpsチーム説明しました:
- 効果的なソフトウェア配信が重要です。これは、収益性、市場シェア、品質、顧客満足度、組織の目標および使命に大きな影響を及ぼします。
- 高効率の企業は、高い開発速度、安定性、品質を実現します。これらすべてを達成するために何も犠牲にする必要はありません。
- Lean、AgileのDevOpsの原則と実践を実装することで、パフォーマンスを向上させることができます。
- これらの慣行と機会の実施は、組織文化にも影響を及ぼします。これは、ソフトウェアの有効性と組織の生産性の両方に影響を及ぼします。
- 効率を上げる方法を見つけるには多くの作業が必要です。
DevOpsとアジャイル
類似性にもかかわらず、DevOpsとAgileは同じものとはほど遠いです。DevOpsはAgileよりも優れていると主張する人もいます。混乱を避けるために、ストーリーの最後に到達することが重要です。
類似点
- どちらもソフトウェア開発の方法論であり、それについて議論することはできません。
- アジャイルは20年以上前から存在しており、DevOpsも比較的新しいものです。
- どちらのアプローチも、迅速なソフトウェア開発を信じています。彼らの原則は、顧客や業務に害を及ぼすことなくソフトウェアを迅速に開発する方法に基づいています。
違い
- , .
- , DevOps, Agile. , Agile , . DevOps, , , . .
- Agile , . DevOps , DevOps . , .
- DevOps , Agile . Agile MVP ( ) .
- Agile — , .
Agile | DevOps |
---|---|
, | |
AgileとDevOpsは異なるものですが、それらの類似性により、多くの人はそれらが同一であると考えるようになります。この誤解は、AgileとDevOpsに不利益をもたらしています。
私はアジャイルで働いていましたが、私の経験から、チームや組織がDevOpsとアジャイルとは何かを理解することは非常に重要であると言えます。また、チームがより速く、より効率的に作業し、製品の品質を確保し、顧客満足度を向上させるのにどのように役立つかを理解する必要があります。
AgileとDevOpsは決して互いにライバルではありません(少なくともまだ理由はありません)。彼らは機敏な分野の敵ではなく味方です。 AgileとDevOpsは排他的かつ包括的な方法で機能できるため、同じスペースに存在できます。
翻訳:ダイアナシェレミエバ
SkillFactoryの有料オンラインコースを受講して、注目を集める職業をゼロから取得する方法、またはスキルと給与をレベルアップする方法の詳細をご覧ください。
- DevOpsコース(12か月)
その他のコース
- Machine Learning (12 )
- Data Science (12 )
- (9 )
- «Python -» (9 )