ウォーターフォール開発とアジャイル開発の違いとは?メリット・デメリットを解説!
システム開発の世界は、さまざまな開発手法がありますが、中でも「ウォーターフォール開発」と「アジャイル開発」は、その代表的なものとして多くのプロジェクトで取り入れられています。しかし、これらの開発手法を聞いたことはあっても具体的にどのように異なるのか知らない方も多いかと思います。この記事では、ウォーターフォール開発とアジャイル開発の違いを明確にし、それぞれの特徴やメリット・デメリットを詳しく解説します。さらに、最近注目されているハイブリッド開発についても触れていきますので、システム開発の手法を選ぶ選択肢の参考として、ぜひお役立てください。
初心者
【初心者用】SWCについて
Reactの開発関連の勉強などをしていく中で、SWCなどを適用するかどうかなどの文言が出てきました。導入すると開発でメリットがあるようなのですが、どんなことができるのか理解していないため勉強のためにまとめます。
その他(PG/フロントエンド)
【ソフトウェアテスト】テスト技法の有用性
世に存在するさまざまなソフトウェアテスト技法について、自身のナレッジ整理もかねて詳細をまとめようと思いました。ですが、いろいろなプロジェクトで開発エンジニア・PdM・PM・QAなどさまざまな方と関わらせていただく中で、QAテスター/テストエンジニア等のポジションの方以外には、ソフトウェアテストに技法が存在するということや、テスト技法を用いる意味とメリットについてあまり認識されていないかも知れないと思いました。まずはソフトウェア開発現場でソフトウェアテスト技法を用いたテストを実施することの理由などについてまとめます。
テスト(運用・保守・サポート)
【ソフトウェアテスト】状態遷移テスト
何かの操作を行うと何かのアクションを実行して実行後の状態になり、実行後の状態からさらに次の操作を行うとまたアクションを返すといったように、ソフトウェアに限らず何かしらの機能を持つものは、機能を使う前と機能を使った後でそれぞれ状態が変わります。状態が仕様想定どおりに遷移しているかどうかを確認する技法として、状態遷移テストがあります。
テスト(運用・保守・サポート)
【ソフトウェアテスト】欠陥分析手法について
「【ソフトウェアテスト】不具合報告のインシデントレポートについて」記事で記載したとおり、インシデントはチケット作成して報告されたのち、内容を分析して対応をし、作成から完了に至るまで管理します。そうして蓄積されたインシデントレポートは、報告対応されたそのレポート自体が、以降で類似の現象を検出した際の資料として用いられる面もありますが、内容を分析することで、今後の開発品質向上を目指すための判断材料として活用することができます。いずれのインシデントレポートも、何かしら問題があったから作成されているものであり、問題点は解決した時点で完了とはせずに、内容を振り返って同じ轍を踏まないように以降の活動を随時改善していくことが肝要です。近年のアジャイル化が進んでいるプロジェクトなどの場合は、直近の開発内容に対するインシデントレポート単体を都度分析するような時間も設けられずに次々進んでいくことがありますが、プロジェクト全体としてインシデントレポートを統合管理し、アジャイル開発の各プロジェクト進行とは別途で機会を設けて、振り返りと共に不具合分析を行うことは、高品質な開発を目指す上で必要な活動です。ソフトウェア開発現場の現状として、プロジェクト形式もインシデントレポート形式もさまざまある状況なので、欠陥分析の手法もこれが絶対という唯一のものではなく、状況や期間などに合わせて必要な手法でアプローチをすべきです。統計的内容に基づく分析、インシデントごとの要因に基づく分析、その両面からの分析など、どのような面からアプローチするかによって用いる手法もさまざまあります。
テスト(運用・保守・サポート)
【ソフトウェアテスト】ソフトウェア開発とテスト活動について②
「【ソフトウェアテスト】テストレベルについて ①」記事に記載のとおり、開発ライフサイクルモデルには形式や期間によってさまざまなモデルがあり、テストを実施するタイミングもモデルによってさまざまです。先に挙げた開発工程の例である要件定義→設計→開発→テスト→リリース/保守を一連の流れとする開発ライフサイクルも、このフローを開発期間の流れとして実施するのはあくまでウォーターフォール型モデルのようなシーケンシャルな開発ライフサイクルであり、イテレーティブ開発モデルやインクリメンタル開発モデルでは、各工程とテストが同時に進行したり、無駄をなくすことを目的としてあえて一部工程を省くこともあります。V字モデルは各工程とテストが同時進行する例です。要件定義の段階で要件定義に対するテストを実施、システム設計の時点で設計された内容に対してテストを実施といったかたちで、開発完了後にようやくテストではなく、常に工程の早期段階でテストを実施します。開発完了後のテストで不具合が検出されると工程の手戻りが発生してしまい、工数に無駄が生じますが、早期にテストを実施することにより、上流工程の段階で不具合や懸念を可能な限り取り去って開発作業の手戻りを少なくし、無駄な工数の増加を防いだり、最終的な品質の向上を目指すことができます。このようにV字モデルの左側で行う開発活動に対して早期にテストを実施して効率的な開発活動を目指す手法をシフトレフトと呼びます。イテレーティブ開発モデルやインクリメンタル開発モデルとなると、さらに各工程とテストが早期段階で実施されていきます。全体的な流れをより細かく迅速に行い、それを細かく繰り返していくサイクルが、現在のソフトウェア開発形式の主流になってきています。
テスト(運用・保守・サポート)
【QA】今更聞けない3つのテスト工程
ソフトウェアや機能の評価にはいくつかの工程があり、それぞれ異なる範囲と粒度でシステムを評価する目的があります。しかしシステム開発の現場によってはローカルなテスト名が運用されることが多く、自分が具体的にどの工程のテストに触れてきたのか曖昧にしか把握していない方も少なくないのではないでしょうか。様々な種別のテストがどういう目的で行われているのかを知ることで、プロジェクトにおける評価工程の在り方を理解していきましょう。
初心者
【初心者用】SQLのテーブル取得について色々操作をしてみた
SQLには色々なテーブル取得の方法がある。 今回は、実際の現場で使用されることが想定されるSQLのデータ取得について操作をしながら学んでいく。 参考サイト 指定した値の範囲と比較する(BETWEEN演算子) https://style.potepan.com/articles/27029.html SQL BETWEEN演算子の構文と使い方 データを範囲指定して抽出する https://tech.pjin.jp/blog/2020/12/28/%E3%80%90sql%E5%85%A5%E9%96%80%E3%80%91in%E6%BC%94%E7%AE%97%E5%AD%90%E3%81%AB%E3%82%88%E3%82%8B%E6%9D%A1%E4%BB%B6%E6%8C%87%E5%AE%9A/ SQL基礎 IN演算子に夜条件指定 https://tech.pjin.jp/blog/2020/12/25/%E3%80%90sql%E5%85%A5%E9%96%80%E3%80%91like%E6%BC%94%E7%AE%97%E5%AD%90%E3%81%AB%E3%82%88%E3%82%8B%E6%9D%A1%E4%BB%B6%E6%8C%87%E5%AE%9A/ SQL基礎 LIKE演算子による条件指定 https://www.sejuku.net/blog/72923 SQL GROUP BYで自在に集計! 集計関数やHAVINGと合わせて使おう https://www.sejuku.net/blog/72918 SQLで並び替え! ORDER BYを基礎から応用まで学ぼう https://www.sejuku.net/blog/54990 SQL入門 DISTINCTで重複行をまとめる方法
製造・コーディング(SE)
テスト技法と種類
テスト技法とは、ソフトウェアテストのテストケースを作成するための技法です。同値分割法、境界値分析、デシジョンテーブルテストなど、さまざまなテスト技法が存在します。テスト技法を利用することで、テストケースの抜け漏れを防いだり、効率よくテストケースを作成することができます。
初心者
関連タグ
カテゴリ別人気記事
もっと見るテレワーク関連人気記事
2023年10月02日
製造・コーディング(PG/フロントエンド)2023年07月18日
アーキテクト・技術選定(PG/バックエンド)2023年11月17日
学習・スキル2023年10月26日
テスト(運用・保守・サポート)2023年01月09日
詳細設計(内部設計)(インフラ)
週間人気記事
もっと見る【初心者向け】Packet Tracerでネットワークを学ぶ(DHCP)
DHCP(Dynamic Host Configuration Protocol)は自動的にIPアドレスやサブネットマスク等をPCやルータに配布してくれるプロトコルです。
詳細設計(内部設計)(インフラ)
【初心者用】CakePHPを学んでいこう⑨(バッチ)
前回はCakePHPでFormsテーブルの情報を取得する簡単なAPIを作成しました。今回はバッチ処理とは何か、そしてCakePHPのCommandクラスを使ってバッチを作成・実行する方法をご紹介します。
製造・コーディング(PG/バックエンド)
【これからJP1に触れる人向け】JP1とは
開発プロジェクトに携わる際にJP1というツールに触れたことはあるだろうか。JP1は開発工程、特にテスト作業においては非常に利便性の高いツールである。この記事ではまだJP1に触れたことがない人向けにJP1の概要やJP1を合う買う際に知っておくべき用語を取り上げる。
テスト(運用・保守・サポート)
【HTML】基本のまとめ | 初心者向け
今回は、マークアップ言語のHTMLについてまとめました。HTMLは、Web開発をするにあたって欠かせない知識となっています。ぜひ最後までお読みください!
製造・コーディング(PG/フロントエンド)
【初心者用】JavaとJavaScriptの違いは?Javascriptで出来ることは?
JavaScript(ジャバスクリプト)は、プログラミング言語の一種です。 名前は聞いたことがあっても「実際に、どういうことに使われているのか?」「JavaScriptは何のジャンルが得意で、どういったことが実現できるのか?」ということまでは、あまり知られていないのではないでしょうか? 初心者の方で特に多いのが「Javaが得意な人は、JavaScriptも得意」という誤った認識です。 良く混同されがちですが、JavaとJavaScriptとはまったくの別物です。 では、具体的にどのような違いがあるのでしょうか? JavaScriptの詳しい説明も交えながら、JavaとJavaScriptの違いについてまとめてみました。
製造・コーディング(PG/バックエンド)
DBのビューとは?メリットデメリットや使用方法についても紹介!
アプリケーション開発にとってデータベースは必須スキルとなっております。データベースの知識がないと、アプリケーション開発に難航することでしょう。しかしデータベースの知識を身に付けるとなると、かなりの勉強量を要します。というのもデータベースオブジェクトには様々な種類があり、一朝一夕では身に付くものではありません。今回は、データベースのビューについてご説明いたします。ビューそのものは必ず覚えてなくてはならないと言うものではありませんが、よく使われます。まずは本記事でビューの基礎知識を身に付けてください。本記事ではメリットデメリットや具体的な使用方法について紹介しております。
学習・スキル
【CSS】基本のまとめ | プロパティ編
今回は、Webページの見た目を設定するCSSのセレクターについてまとめました。CSSは、Web開発をするにあたって欠かせない知識となっています。ぜひ最後までお読みください!
製造・コーディング(PG/フロントエンド)
【初心者用】JavaScriptについて少しかじってまとめてみた
タイトル通り、JavaScriptについて勉強してみて、得た知識を軽くまとめていこうと思います。 初心者用、とある通り、極力専門用語は使わないか、噛み砕いて説明していきます。
製造・コーディング(PG/バックエンド)
【初心者用】Javaのループ処理についてまとめてみた
ループ処理とは、ループ(繰り返し)の名前の通り、同じ処理を繰り返し実行させる処理のことです。 全く同じ処理を繰り返させるだけであれば、大した仕事はできないのですが、ループ処理の中で変数の値を変化させたり、ループ処理の中にさらにループ処理を加えて入れ子にしてみたりすることで、複雑な処理をこなせるようになります。 今回は、Javaで使われるループ処理について、以下の4種類の文法を調べたので、それらについて説明していきたいと思います。
製造・コーディング(PG/バックエンド)