MENU

「エクストリームプログラミング」の解説 〜 ITパスポート R4年 問38 〜

当ページのリンクには広告が含まれています。
目次

エクストリームプログラミングとは?

「エクストリームプログラミング(XP)」(英: Extreme Programming)とは、アジャイル開発手法の一つであり、プロジェクトが途中で変更されることを前提に、プロジェクト全体を非常に細かな部分に分け、一つずつの要素の開発サイクルを短くして開発を進める手法のことです。

created by Rinker
¥2,372 (2024/04/18 14:06:19時点 Amazon調べ-詳細)

なお、「アジャイル開発」とは、最初に綿密な計画を立てず、臨機応変に進める開発方法のことになります。設計・実装・テストを短期間で何度も繰り返しながら、顧客の意見や要望を都度取り入れて開発を進めていきます。設計・実装・テストの1サイクルをイテレーションと呼びます。

あわせて読みたい
「チャットボット」「アジャイル開発」の解説 【チャットボットとは?】 「チャットボット(Chatbot)」とは、「対話(Chat)」と「ロボット(bot)」を組み合わせた言葉であり、テキストや音声で、自動的に対話をす...

エクストリームプログラミング(XP)では、柔軟性に優れており、スピード感と変化に対応することを重要とした開発手法になります。素早いリリースを必要とする小規模な開発のため、10人程度の少人数でのチームを組む場合に最適な手法といわれています。

エクストリームプログラミングの5つの価値

エクストリームプログラミングを用いて、開発を行う上で、重視すべき点として、5つの価値が定義されています。それぞれの価値を説明していきます。

  • コミュニケーション:コミュニケーションは、ソフトウェア開発で重要になります。失敗の要因の多くは、コミュニケーション不足にあります。チーム内のコミュニケーションはもちろんのこと、顧客とのコミュニケーションも大切になります。プロジェクトに生じた要件や状況の変化を逐一共有し、素早く対応するために、相互のやり取りを密にすることが開発の成功のために重要な要素を占めます。
  • シンプル:素早い開発の進行と柔軟性を維持するため、設計をシンプルにします。その上で、機能が必要になるなどの状況の変化に合わせて、設計変更をしていきます。最初から複雑な設計を行うことで、変更を加える際に影響を受ける部分が増えるだけでなく、チーム内での共有が難しくなるため、顧客を含めたコミュニケーションに齟齬が発生してきます。エクストリームプログラミングでは、スピードと柔軟性が大切であるため、すべてにおいてシンプルであることを心がけます。
  • フィードバック:最初に決めた方法が永続的に正しい方法とは限らないため、顧客からフィードバックをもらい、適宜修正していきます。エクストリームプログラミングは、このフィードバックと対応を細かなサイクルで繰り返すことによって、成果物の精度を高めていきます。顧客から、適切なフィードバックを受けるためにコミュニケーションが、素早いフィードバック対応するためにはシンプルな設計が必要となります。
  • 勇気:最初に綿密な計画を立てないため、途中で大胆な変更が求められる場合があります。その場合、すでに開発してきたものに対して、思い切った取捨選択や変更の勇気を持たなければならないこともあります。そのため、行動する際、強い意志と勇気が必要になります。勇気を持って行動することで、解決策や信頼が強化されることに繋がります。
  • 尊重:チームで開発を行う上で、他のメンバーを尊重することが重要です。経験量は関係なく、積極的な意見交換や提案を行い、考えや行動を尊重する姿勢を持つことは、お互いのモチベーションの向上にも繋がり、生産性を高めることもできます。

エクストリームプログラミングの4つのプラクティス

エクストリームプログラミングを実践するには、5つの価値を19のプラクティスとして活用します。このプラクティスは、要素ごとに4つのカテゴリに分類できます。

ここで、それぞれ4つのプラクティスについて、説明していきます。

共同プラクティス

共同プラクティスでは、エクストリームプログラミングに関わる全員を対象としたプラクティスになります。以下の4つのプラクティスからなります。

  • 反復:1つのイテレーション(設計・実装・テスト)が約1~2週間で終わるような開発計画とし、これを何度も繰り返しながら開発を進めます。
  • 共通の用語:用語集を作成することになります。コミュニケーションの齟齬を防止します。
  • 開けた作業空間:開発チームと顧客間で、密なコミュニケーションをとりやすく、作業に集中できる環境を構築します。
  • 回顧:ミスが再発しないよう、作業状況を明らかにし、過去のフィードバックを活かしていきます。

開発プラクティス

開発プラクティスでは、プログラマーなどの開発チームを対象としたプラクティスになります。19つのプラクティスに分けられますが、ここでは大きな括りで分類して紹介していきます。

  • テスト後に実装を行う「テスト駆動開発」:テスト駆動開発とは、プログラムの実装よりもテストコードを先に作成することです。それにより、求められる機能が洗い出され、シンプルな設計を実現することができます。なお、テストはユニットテストと受け入れテストからなり、どちらのテストも自動化することが望ましいです。
  • 2人1組で行う「ペアプログラミング」:ペアプログラミングは、2人1組でプログラミングを行うことになります。1人がコードを記述し、もう1人はそれを確認・補佐します。記述しながら確認を行うと、細々とした問題をその場で解決できるメリットがあります。また、記述されたコードを把握している人物が2人いるので、その後の問題発生時にも迅速な対応が期待されます。
  • 内部構造を整える「リファクタリング」:リファクタリングとは、完成したコードをわかりやすく書き換えることになります。外部の動作を変えずに、内部構造だけを変更します。同じ動作をするコードでも、わかりやすいものに変換されるので、メンテナンス性の向上や不具合の発生頻度の低下が期待できます。
  • 必要なコードだけを記述する「YAGNI」:YANGIは「You Aren’t Going to Need It」の略であり、「今必要なことだけをする」という意味になります。つまり、必要なコードのみを記述することを意味しています。開発時には、後に必要になるであろう機能を考慮して、あれこれと盛り込みたくなる場合があります。しかし、そうした思惑は外れる場合が多く、結果として無駄になります。今必要とされるコードの記述に注力することが大切になります。

管理者プラクティス

管理者プラクティスでは、管理者を対象としたプラクティスになります。開発が適切に進行しているのか把握し、チームで共有する必要があります。チームの負荷が大きすぎないか常に確認することが求められます。エクストリームプログラミングでは、短期間で集中して作業を行う方法であるため、過度な労働を避ける必要があります。

顧客プラクティス

顧客プラクティスでは、顧客を対象としたプラクティスになります。エクストリームプログラミングでは、顧客も開発に携わるチームメンバーとして扱います。ビジネス的な視点から必要な機能を考え、開発の優先順位を付けるのが顧客の役割になります。

エクストリームプログラミングに関する問題(令和4年問38)

XP(エクストリームプログラミング)の説明として,最も適切なものはどれか。

ア. プログラムを先に作成し,そのテストに合格するようにコードを記述する開発手法のことである。

イ. 一つのプログラムを2人のプログラマが,1台のコンピュータに向かって共同で開発する方法のことである。

ウ. プログラムの振る舞いを変えずに,プログラムの内部構造を改善することである。

エ. 要求の変化に対応した高品質のソフトウェアを短いサイクルでリリースする,アジャイル開発のアプローチの一つである。

出典:令和4年度  ITパスポート試験公開問題 問38

正しいと思う選択肢をクリックしてみてください!!!

ア. プログラムを先に作成し,そのテストに合格するようにコードを記述する開発手法のことである。

不正解です。

イ. 一つのプログラムを2人のプログラマが,1台のコンピュータに向かって共同で開発する方法のことである。

不正解です。

ウ. プログラムの振る舞いを変えずに,プログラムの内部構造を改善することである。

不正解です。

エ. 要求の変化に対応した高品質のソフトウェアを短いサイクルでリリースする,アジャイル開発のアプローチの一つである。

正解です。

エクストリームプログラミング

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次