エクストリームプログラミングとは何ですか?
エクストリームプログラミングは、ソフトウェアの品質と、顧客またはクライアントの変化するニーズに適切に適応する能力を向上させるために設計されたソフトウェア開発方法です。 クライスラー総合報酬システム(C3)に取り組んでいる間、ソフトウェアエンジニアのケン-ベックは、最初に極端なプログラミング方法論を開発しました。, 1999年には”Extreme Programming Explained”を出版し、その後まもなく公式ウェブサイトも立ち上げられた。
他のアジャイル開発方法と同様に、Extreme Programmingはプロジェクト全体で反復的かつ頻繁な小さなリリースを提供することを目的としており、チームメンバーと顧客の両方がSDLC全体を通してプロジェクトの進捗状況を調べてレビューできる。,
この記事では、エクストリームプログラミングとは何か、そしてその背後にある価値観や原則から、新しいエクストリームプログラミングプロジェクト,/td>
extreme values
これらの五つの基本的な価値観は、エクストリームプログラミングパラダイム全体が構築される基盤を提供し、プロジェクトに関わる人々がプロジェクトが取っている方向に自信を持ち、彼らの個人的なフィードバックと洞察を理解することが必要であり、他の誰としても歓迎される。,
シンプルさ:私たちは必要と求められていることを行いますが、それ以上は行いません。 これは、これまでに行われた投資のために作成された価値を最大化します。 私達は私達の目的に小さく簡単なステップを踏み、起こると同時に失敗を軽減します。 私達は私達がの自慢している何かを作成し、適度な費用のための長期維持します。
コミュニケーション:誰もがチームの一員であり、私たちは毎日直面してコミュニケーションを 私たちは、要件からコードまですべてに協力します。 私達は私達が一緒にできる私達の問題に最もよい解決を作成します。,
フィードバック:私たちは、作業ソフトウェアを提供することにより、真剣にすべての反復 私達は私達のソフトウェアを早く示し、頻繁にそして注意深く聞き、必要な変更を加える。 私たちはプロジェクトについて話し、それに私たちのプロセスを適応させます。
尊敬:誰もが大切なチームメンバーとして値する尊敬を与え、感じています。 それが単に熱意であっても皆は価値を貢献する。 開発者は顧客の専門知識を尊重し、その逆も同様です。 経営陣は、責任を受け入れ、私たち自身の仕事に対する権限を受ける権利を尊重します。,
勇気:私たちは進歩と見積もりについて真実を伝えます。 私達は成功することを計画するので失敗のための弁解を文書化しない。 誰も一人で働かないので、私たちは何も恐れていません。 私たちは変化が起こったときに変化に適応します。
極限のルール
最初公開となる井戸は、1999年には主にExtreme Programming、ウェブサイトの極端なプログラミングルールcustom…予約したすることができることとなったと伝カウンターには、Extreme Programmingに失敗した支援の著名な学問分野に必要な現代の開発.,
計画
- ユーザーストーリーが書かれています。
- リリース計画は、リリーススケジュールを作成します。
- 頻繁に小さなリリースを行います。
- プロジェクトは反復に分割されます。
- イテレーション計画は、各イテレーションを開始しま
管理
- チームに専用のオープンワークスペースを与えます。li>
- 持続可能なペースを設定します。
- スタンドアップミーティングは毎日開始されます。
- プロジェクト速度が測定されます。
- 周りの人を移動します。
- それが壊れたときに極端なプログラミングを修正します。
デザイン
- シンプルさ。,
- システムメタファーを選択します。
- デザインセッションにCRCカードを使用します。
- 作スパイクソリスクを削減します。
- 機能は早期に追加されません。
- いつでも可能な限りリファクタリングします。
コーディング
- 顧客はいつでも利用可能です。
- コードは合意された標準に書き込まれなければなりません。
- ユニットテストを最初にコード化します。
- すべての生産コードはペアプログラムされています。
- 一度にコードを統合するのは一つのペアだけです。
- しばしば統合します。
- 専用の統合コンピュータをセットアップします。
- 一括所有を使用します。,
Testing
- すべてのコードは単体テストを持っている必要があります。
- すべてのコードは、リリースする前にすべての単体テストに合格する必要があります。
- バグが見つかると、テストが作成されます。
- 受け入れテストは頻繁に実行され、スコアが公開されます。
Extreme Practices
当時のソフトウェア開発のベストプラクティスと考えられていたものを使用して作成された、これらのtwelve Extreme Programming Best Practicesは、Extreme Programmingを使用してプロジェクトを実装する際に従うべき具体的な手順について詳述しています。,
ファインスケールフィードバック
ペアプログラミング
本質的に、ペアプログラミングとは、生産コードを開発するときに、同じシステム上で二人がタンデムで作業することを意味します。 頻繁にチーム中のパートナーを回すことによって、極度なプログラミングはよりよいコミュ
計画ゲーム
多くの場合、これはプロジェクトの計画の大部分が行われる頻繁かつ明確に定義された間隔(一つまたは二週間)で会議の形をとります。,
この手順の中には、リリース計画段階があり、差し迫ったリリースに必要なものについて決定が行われます。 部門のリリース計画を含
- 探鉱段階の物語カードを使っての価値があります。
- ミ位相の計画およびコミットメントからチームへのニーズに応え、次の日程でリリースが出ます。,
- ステアリングフェーズ:これにより、他の多くのアジャイルモデル方法論と同様に、プロジェクトの進化するニーズに基づいて、以前に開発された計画を調
リリース計画に続いて、イテレーション計画セクションもあります。
- 探査フェーズ:すべてのプロジェクト要件が書き留められています。
- 探査フェーズ:すべてのプロジェクト要件が書き留められています。
- 確相に必要な作業はまだ完了し、今後の繰り返しプレスリリースに割り当てる開発者や予定が適切に,
- ステアリングフェーズ:開発が行われ、完了すると、結果の反復が計画手順の開始時に作成された概説されたストーリーカードと比較されます。
テスト駆動開発
テスト駆動開発について記事全体を書くことができますが、このコンセプトは開発者の間ではかなりよく知られており、プロジェクトのすべての要件に対してテストが生成され、それからそれらのテストに合格するコードが開発されることを効果的に意味します。,
チーム全体
他の多くのSDLCの方法とプラクティスと同様に、Extreme Programmingは、プロジェクトを常に形作るために彼らのフィードバックを使用して、プロセス全体を通して顧客とクライアントを含めることを促進します。
継続的プロセス
継続的インテグレーション
現代の開発では、継続的インテグレーションの背後にある考え方は、チーム全体で開発されたすべてのコードが日に何度も一つの共通リポジトリにマージされるということです。, これにより、プロジェクト全体の統合に関する問題ができるだけ早く気付かれ、対処されることが保証されます。
コードリファクタリング
もう一つの非常に一般的な方法は、コードリファクタリングの背後にある考え方は、基本的な動作を変更することなく、既存のコードの構造を改善して再設計することです。 リファクタリングの簡単な例には、不適切な名前の変数やメソッドを修正したり、繰り返しコードを単一のメソッドや関数に減らしたりすることが,
小さなリリース
反復モデルの実践に沿って、このコンセプトは、プロジェクトが頻繁に反復された小さなリリースを特徴とすることを保証し、すべてのチームメンバーとして、顧客もプロジェクトがどのように発展しているかを理解することができます。
共通の理解
コーディング標準
コーディング標準は、単に書式設定やスタイルなど、コード自体のベストプラクティスのセットであり、チーム全体がプロジェクトのライフサイクルを通じて遵守しています。, これにより、現在のメンバーだけでなく、将来の開発者にとっても、コードのより良い理解と可読性が促進されます。
集団コード所有権
このプラクティスでは、チーム全体の開発者が必要に応じてコードの任意のセクションを変更することができます。 このプラクティスは危険に聞こえるかもしれませんが、開発時間を短縮し、潜在的な問題は適切な単体テストで鎮圧することができます。
シンプルなデザイン
シンプルなオプションが利用可能なときはいつでも、物事を複雑にする理由はほとんどありません。, すべてのコンポーネントとコードをできるだけシンプルに保つというこの基本的な練習により、チーム全体が常に簡単な方法で物事ができるかどうかを
システムメタファー
コーディング標準の一部として考えられているシステムメタファーは、チームのすべての人が開発された高レベルのコードを見て、そのコードがどのような機能を実行しているかを明確に理解できるようにするという考えです。,
Programmer welfare
Sustainable pace
エクストリームプログラミングプロジェクトの開発者とのより良いワークライフバランスのための重要な概念は、通常のスケジュールされた作業週を超えて作業する必要はないという概念である。 開発者はリリースの終わり近くに極端な時間を働かせて、すべてを時間通りに完了させることが期待される”クランチタイム”の概念と同様に、残業は眉