今回は、アジャイル開発に関する内容だね!
アジャイル開発の質を高める秘訣を教えてください!
目次
・アジャイル開発における作業方針
最近では、アジャイル開発手法を採用する開発現場が増えてきました。現代のサービス開発において求められていることが、アジャイル開発だと実現しやすいのだと思います。そこで今回は、アジャイル開発の質をさらに上げるためのいくつかの秘訣を紹介したいと思います。本記事を読み、その内容を実践することで、あなたの、そしてあなたのチームの開発力が上がること間違いなし!
(こちらもチェック↓)
適切な開発手法は? ウォーターフォール開発 vs アジャイル開発
アジャイル開発とは、アジャイルソフトウェア開発宣言1に基づいた開発手法で、イテレーション(反復)と呼ばれる、短期間での開発を繰り返します。スパイラルモデル2やプロトタイプモデル3を踏襲し、機敏にソフトウェアを開発することを目指しています。
それでは、アジャイル開発が具体的にどのように進んでいくかを説明していきましょう。ここでは、アジャイル開発の代表的なフレームワークであるスクラムを例に、説明していくことにします。
チームのコミュニケーションを重視して、アジャイル開発を実践する手法です。ラグビーのスクラムに由来しています。プロダクトオーナ、スクラムマスタ、開発チームから成るスクラムチームで稼働します。
・スクラムマスタ: チームを支援する奉仕型のリーダ
・プロダクトオーナ: ROI(開発投資効果)に責任をもち、プロダクトバックログ(製品に必要な機能一覧)を管理する。
スクラムは、スプリントと呼ばれる単位で開発を繰り返します。
開発プロジェクトの最初に、プロダクトバックログを作成します。プロダクトバックログは、プロジェクトに関連する要件、機能、タスク、改善点などのアイテムのリストです。
計画のフェーズでは、スプリントの期間を決めます。一般的に、2週間から4週間が目安とされています。また、このフェーズでは、スプリントゴールを設定し、それに従ってスプリントバックログ4を作成します。
次に、選択したタスクに取り組みます。開発チームは、毎日デイリースクラムを行い、進捗の確認や障害や課題を共有しながら、機能の開発を目指します。また、必要に応じて、開発チームとプロダクトオーナーとの間で要件の調整や問題の解決を行います。
スプリントの終了時に、開発チームはプロダクトオーナーおよびステークホルダーと一緒に、スプリントで達成された成果物をレビューします。プロダクトのデモンストレーションが行われ、フィードバックを受け取ります。フィードバックを受けて、プロダクトバックログを更新し、次のスプリントの計画を調整することがあります。
チームで一連の作業を振り返り、次のスプリントのために改善点を検討する作業です。ブレーンストーミングなどを行い、うまくいった行動とうまくいっていないと考える問題点を洗い出します。
アジャイル開発では、2~5を繰り返すことで開発を進めていきます。
時間の経過とともに残作業量が減っていく様子を表すチャートです。イテレーションごとに作成します。
残作業を顧客視点で簡潔に表現したものがユーザストーリです。具体的なユーザをペルソナとして定義し、ストーリとなる要件や優先順位を決定します。メンバーはこれに向けて、完全燃焼 (burn down) します。また、残作業量は、メンバ全員が意見を出し合うプランニングポーカという手法で見積もります。
継続して機能を提供し続けるための取り組みのことです。開発中のみならず、リリース後も顧客のニーズに合わせて仕様変更や機能追加に迅速に対応することを目指します。
リーンソフトウェアは、以下の七つの原則を用いてアジャイル開発を実践する手法です。
・ムダをなくす
・品質を作り込む
・知識を作り出す
・決定を遅らせる
・早く提供する
・人を尊重する
・全体を最適化する
これらの原則は、トヨタ自動車のリーン生産方式の考え方が元になっています。ムダな作業を無くしても品質に関する作業は減らさない、そのために効率よく作業するための新しい方法を作り出します。また、結論がすぐに出ないことは先送りして作業を進め、遅れることなく製品を提供します。これを実践するためには、メンバーの行動が不可欠であるため人を尊重し、全体を最適化します。
eXtreme Programming の略で、コミュニケーション、シンプル、フィードバック、勇気、尊重という五つの価値に基づきアジャイル開発を実践する手法です。六つの作業方針があります。
・テスト駆動型開発
はじめにテストを設計し、そのテストをクリアできるようにプログラムを作成します。
・ペアプログラミング
2人1組でプログラミングを行い、1人がプログラムを作成し、もう1人がその内容を見ながらレビューを行い、高品質なプログラムを作成します。
・リファクタリング
プログラムの実行結果を変えないように、ソースコードを改定します。
・ソースコードの共同所有
ソースコードに対して開発チーム全員が責任を負い、ソースコードの修正などは、全員で行います。
・継続的インテグレーション (CI; Continuous Integration)
単体テストが終わったらすぐに結合テストを行い、動作が正常かどうかを確認します。
・YAGNI (You Aren’t Going to Need It)
「現時点で必要なことだけを行う」という意味で、必要最低限のシンプルな設計を目指します。
アジャイル開発は元々、数名のチームで行う小規模開発向けの手法とされてきましたが、これを大規模に適用したものです。
本記事では、アジャイル開発の質を高めるための秘訣を紹介しました。ぜひ、本記事の内容を実践し、開発力を高めていきましょう!
各種お問い合わせ