練馬のみなさまへ 協業のお願い!

情報処理技術者試験にでてくるアジャイル開発まとめ

マネジメント系記事アイキャッチ

アジャイル開発とは

アジャイル開発とは、従来の段階的な開発手法とは対照的に、ペアプログラミングやイテレーションなどの手法を利用してソフトウェア開発を迅速に行おうとする開発手法です。

スクラム

スクラムとはチームで開発を進める手法のことで、反復的・漸進的な開発の手法です。
例えば、毎日決まった時刻にチームメンバが集まって開発の状況を共有し、問題が拡大したり、状況が悪化することを回避するための日次スクラムを開催することがあります。

イテレーション

イテレーション(iteration)とは反復・繰り返しという名前の通り、ソフトウェアを複数の小規模な機能に分割し、設計、プログラミング、テストという手順を1回実行して開発を進める手法です。

イテレーションの目的

イテレーションを実施する目的はソフトウェアに存在する顧客の要求との不一致を解消したり、要求の変化に柔軟に対応することです。
ソフトウェアを分割せず、全体を開発してから顧客に見せると、「ぜんぜんイメージとちがった」ということがあります。
こうしたトラブルを回避することがイテレーションの目的です。

ふりかえり(レトロスペクティブ)

イテレーションの開発手法をとった場合、イテレーションの最後のタイミングでふりかえり(レトロスペクティブ)を実施します。

ペアプログラミング

ペアプログラミングとは、2人が1組のペアとなって、ソフトウェアの開発を行っていく手法です。
基本的に1人はコーディングを行い、もう1人はコードのレビューを行います。
コーディングを行うのはドライバ、チェックを行うのはナビゲータと呼ばれます。

ペアプログラミングの目的

ペアプログラミングの目的は、品質の向上や知識の共有を図ることです。
開発をコーディングを行うプログラマーだけで対応すると、技術力の低いプログラマーであれば洗練されていないコードを書いてしまうことがあります。また、高い技術力をもっていても1人でコーディングをしていれば、その知識を他のプログラマーに共有することができません。
そのため、2人1組で開発を行い、コードのブラッシュアップや指導の場を設けて知識の共有をしていきます。

ピンポンペアプログラミング

ピンポンペアプログラミングでは、ペアプログラミングのドライバとナビゲータを固定化させず、役割を変えながら開発を行います。

リファクタリング

リファクタリングとは、外部から見たプログラムの振る舞いを変えずに、プログラムの保守性を向上させ、デバッグや保守を容易にしていくことです。
コンピュータプログラムに手を加えたことによる影響を確認する回帰テストを前提とし、ソースコードを修正した後に他のプログラムが正常に動作するかを確認していきます。

タスクボード

タスクボードではタスクの実施状況を可視化して、いつでも確認できるようにします。
例えばボードを「残タスク」「開発中」「テスト」「完了」などの4つの領域に分け、どんなタスクが残っており、何が完了したのかを把握していきます。

バーンダウンチャート

バーンダウンチャートの例

バーンダウンチャートの例(Wikiより)

バーンダウンチャートとは残りの作業量を縦軸にとり、横軸に時間をとったグラフです。
現在の開発の進捗がどの程度のものなのかを把握することができます。