技術ブログ 知らなきゃ損!?アジャイル開発の質を高めるための秘訣
知らなきゃ損!?アジャイル開発の質を高めるための秘訣

知らなきゃ損!?アジャイル開発の質を高めるための秘訣

今回は、アジャイル開発に関する内容だね!

アジャイル開発の質を高める秘訣を教えてください!

本記事で学べること

・アジャイル開発における作業方針

はじめに

最近では、アジャイル開発手法を採用する開発現場が増えてきました。現代のサービス開発において求められていることが、アジャイル開発だと実現しやすいのだと思います。そこで今回は、アジャイル開発の質をさらに上げるためのいくつかの秘訣を紹介したいと思います。本記事を読み、その内容を実践することで、あなたの、そしてあなたのチームの開発力が上がること間違いなし!

(こちらもチェック↓)

適切な開発手法は? ウォーターフォール開発 vs アジャイル開発

アジャイル開発の基本

アジャイル開発とは

アジャイル開発とは、アジャイルソフトウェア開発宣言1に基づいた開発手法で、イテレーション(反復)と呼ばれる、短期間での開発を繰り返します。スパイラルモデル2やプロトタイプモデル3を踏襲し、機敏にソフトウェアを開発することを目指しています。
 

アジャイル開発の流れ

それでは、アジャイル開発が具体的にどのように進んでいくかを説明していきましょう。ここでは、アジャイル開発の代表的なフレームワークであるスクラムを例に、説明していくことにします。

スクラムとは

チームのコミュニケーションを重視して、アジャイル開発を実践する手法です。ラグビーのスクラムに由来しています。プロダクトオーナ、スクラムマスタ、開発チームから成るスクラムチームで稼働します。

・スクラムマスタ: チームを支援する奉仕型のリーダ

・プロダクトオーナ: ROI(開発投資効果)に責任をもち、プロダクトバックログ(製品に必要な機能一覧)を管理する。

スクラムは、スプリントと呼ばれる単位で開発を繰り返します。

 

1. プロダクトバックログの作成

開発プロジェクトの最初に、プロダクトバックログを作成します。プロダクトバックログは、プロジェクトに関連する要件、機能、タスク、改善点などのアイテムのリストです。
 

2. スプリントプランニング

計画のフェーズでは、スプリントの期間を決めます。一般的に、2週間から4週間が目安とされています。また、このフェーズでは、スプリントゴールを設定し、それに従ってスプリントバックログ4を作成します。
 

3. 実行

次に、選択したタスクに取り組みます。開発チームは、毎日デイリースクラムを行い、進捗の確認や障害や課題を共有しながら、機能の開発を目指します。また、必要に応じて、開発チームとプロダクトオーナーとの間で要件の調整や問題の解決を行います。
 

4. レビュー

スプリントの終了時に、開発チームはプロダクトオーナーおよびステークホルダーと一緒に、スプリントで達成された成果物をレビューします。プロダクトのデモンストレーションが行われ、フィードバックを受け取ります。フィードバックを受けて、プロダクトバックログを更新し、次のスプリントの計画を調整することがあります。
 

5. レトロスペクティブ

チームで一連の作業を振り返り、次のスプリントのために改善点を検討する作業です。ブレーンストーミングなどを行い、うまくいった行動とうまくいっていないと考える問題点を洗い出します。

 

アジャイル開発では、2~5を繰り返すことで開発を進めていきます。

アジャイル開発よく使われる用語

バーンダウンチャート

時間の経過とともに残作業量が減っていく様子を表すチャートです。イテレーションごとに作成します。

残作業を顧客視点で簡潔に表現したものがユーザストーリです。具体的なユーザをペルソナとして定義し、ストーリとなる要件や優先順位を決定します。メンバーはこれに向けて、完全燃焼 (burn down) します。また、残作業量は、メンバ全員が意見を出し合うプランニングポーカという手法で見積もります。
 

継続的デリバリ (CD; Continuous Delivery)

継続して機能を提供し続けるための取り組みのことです。開発中のみならず、リリース後も顧客のニーズに合わせて仕様変更や機能追加に迅速に対応することを目指します。
 

リーンソフトウェア

リーンソフトウェアは、以下の七つの原則を用いてアジャイル開発を実践する手法です。
 

・ムダをなくす

・品質を作り込む

・知識を作り出す

・決定を遅らせる

・早く提供する

・人を尊重する

・全体を最適化する

 
これらの原則は、トヨタ自動車のリーン生産方式の考え方が元になっています。ムダな作業を無くしても品質に関する作業は減らさない、そのために効率よく作業するための新しい方法を作り出します。また、結論がすぐに出ないことは先送りして作業を進め、遅れることなく製品を提供します。これを実践するためには、メンバーの行動が不可欠であるため人を尊重し、全体を最適化します。
 

XP

eXtreme Programming の略で、コミュニケーション、シンプル、フィードバック、勇気、尊重という五つの価値に基づきアジャイル開発を実践する手法です。六つの作業方針があります。
 

・テスト駆動型開発

はじめにテストを設計し、そのテストをクリアできるようにプログラムを作成します。
 

・ペアプログラミング

2人1組でプログラミングを行い、1人がプログラムを作成し、もう1人がその内容を見ながらレビューを行い、高品質なプログラムを作成します。
 

・リファクタリング

プログラムの実行結果を変えないように、ソースコードを改定します。
 

・ソースコードの共同所有

ソースコードに対して開発チーム全員が責任を負い、ソースコードの修正などは、全員で行います。
 

・継続的インテグレーション (CI; Continuous Integration)

単体テストが終わったらすぐに結合テストを行い、動作が正常かどうかを確認します。
 

・YAGNI (You Aren’t Going to Need It)

「現時点で必要なことだけを行う」という意味で、必要最低限のシンプルな設計を目指します。

 

エンタープライズアジャイル

アジャイル開発は元々、数名のチームで行う小規模開発向けの手法とされてきましたが、これを大規模に適用したものです。

まとめ

本記事では、アジャイル開発の質を高めるための秘訣を紹介しました。ぜひ、本記事の内容を実践し、開発力を高めていきましょう!

  1. アジャイルソフトウェア開発の原則を示す文書で、「プロセスやツールよりも、個人の対話を重視」、「包括的なドキュメントよりも、動くソフトウェアを重視」、「契約交渉よりも、顧客との協調を重視」、「計画に従うよりも、変化への対応を重視」の四つの基本方針を掲げている。
  2. 対象システム全体ではなく、サブシステムなどの独立性の高いいくつかの部分に分けて小さい単位で開発プロセスを繰り返す。開発プロセスごとにシステムの範囲や機能が増えるので、段階的モデル(インクリメント型)に分類される。
  3. まず、システムの要件を満たすプロトタイプを作成し、それを顧客に評価してもらい、フィードバックを得ながら修正し、最終的にシステムを完成させる開発モデル。
  4. 開発のための計画を、スプリントごとに実現可能なタスクレベルに詳細化した文書

この記事の執筆者

Takanobu Morishita(インターン)

株式会社taiziiiでインターンをしている森下です!

SNSでシェアする

各種お問い合わせ

お問い合わせ・ご相談


開発に関することならお気軽にご相談ください。
お見積もり依頼も可能です。

お問い合わせする

私たちは一緒に働く
メンバーを探しています。


私たちはミッション・価値観への共感を何よりも大切に考え、
一緒に働くメンバーを探しています。

採用情報をみる