既存のウォーターフォール開発に限界を感じているが,アジャイル開発は難しそうでなかなか踏み切れない......。Agileを使って実際にプロジェクトを進めていく流れを解説します。Agile顧客の要求に柔軟に対応しつつ,変更要求によって発生するリスクを最小限に抑えるために,徐々に広まりつつあるのが「アジャイル開発」です。当初は自社で展開するWebサービスやソーシャルゲームの開発など,比較的規模が小さい開発現場で使われることが多かったアジャイル開発ですが,昨今では大規模システム開発にも適用する事例が増えつつあります。このアジャイル開発を実践するには,従来のウォーターフォール型の開発手法とは異なる考え方,そしてアジャイルならではのプロジェクトの進め方について理解しなければなりません。インターネット上にはアジャイルについて解説したコンテンツが無数にあり,また書籍も数多く発行されていますが,それらだけを見て実際にアジャイル開発に臨むのは難しいでしょう。そこでぜひ活用したいのが,アジャイル開発のノウハウを詰め込んだツールです。Agile」などがあります。Agileでアジャイル開発を進めていく流れを見ていきます。短期間の開発を繰り返すことで手戻りのリスクを回避アジャイル開発の手法はいくつか存在しますが,その中でも多くの開発現場で使われているのが,チームでプロジェクトを進めるためのフレームワークである「スクラム(Scrum⁠)⁠」です。Agileはこの手法でアジャイル開発を進めるように設計されています。このスクラムを含むアジャイル開発に共通する特徴として,1週間から2週間,あるいは1ヵ月といった短い期間で開発を繰り返し,その期間ごとにユーザが利用できる機能を提供していくことが挙げられます。従来のウォーターフォール型の開発では,ユーザは実際に動作するソフトウェアをプロジェクトの終わり間際まで見られないため,開発者はそのときまでユーザからのフィードバックを得られないという問題がありました。これに対してアジャイル開発では,短い期間で開発を繰り返し,そのたびに実際に動作するソフトウェアをユーザに見せてフィードバックを得ます。これにより,プロジェクトの終わり間際に修正依頼が多発して大きな手戻りが生じ,プロジェクトが遅延してしまうといったリスクを回避できます。スクラムでは,この繰り返す開発期間のことを「スプリント」と呼んでいます。「プロダクトバックログ」と「スプリントバックログ」で作業すべき内容を管理することもアジャイル開発の特徴でしょう。いずれのバックログも作業すべきタスクをまとめるためのものですが,プロダクトバックログがプロジェクト全体のタスクを羅列したものであるのに対し,スプリントバックログはそのスプリントで実施するタスクをまとめたものです(図1⁠)⁠。プロジェクト全体のタスクをプロダクトバックログにまとめ,そこからスプリントで開発するものをスプリントバックログに抜き出していくというのが実際の流れです。Agileのインターフェース。Agileにおいてプロダクトバックログに相当するのが「計画ボード」と呼ばれるインターフェースです。ここにタスクを追加し,そこからスプリントで実行するタスクを抜き出してスプリントバックログを作成していきます。タスクを登録する際に重要なのが「ストーリーポイント」の割り当てです(図2⁠)⁠。ストーリーポイントは,タスクを実行するのに必要な作業量を表す相対的な値です。この値は,特定の単位を持つものではありません。短時間で完了する簡単なタスクには「1⁠」⁠,その倍の作業量だと思われるタスクには「2⁠」⁠,さらに難しいタスクには「3」を割り当てるというように,それぞれのタスクのストーリーポイントを見積もって設定します。登録したタスクにストーリーポイントを割り当てているところ。設定したストーリーポイントは,一覧表示されている各タスクの右端に表示されるこのストーリーポイントを割り当てることが重要な理由は,1回のスプリントで実行できるタスクを見極めるためです。1回のスプリントで,ストーリーポイントが「1」のタスクを2つ,「⁠2」のタスクを1つ消化できたとしましょう。すると,1スプリントあたりの作業量は4ストーリーポイントということになり,次回のスプリントでも同じだけのストーリーポイントを消化できるという前提で,作業すべきタスクを選択することが可能になります。Agileでは,このようにして作成したタスクを「バージョン」や「エピック(カテゴリ⁠)⁠」で分類するためのしくみを用意しています(図3⁠)⁠。洗い出したタスクを複数のバージョンに割り当てる,あるいはサーバサイドとフロントサイドでタスクをカテゴライズする,といった場面で便利でしょう。ボードに登録したタスクはドラッグ&ドロップで上下に動かすことができ,これによって優先順位を指定します。優先順位が高いものを上にすれば,処理すべき順番を一目で把握できます。バージョンの登録インターフェース。それぞれのタスクをバージョンで分類し,そのタスクにどのバージョンで対応するかを指定できるプロジェクトの進捗状況を一目で把握できる“かんばん”このようにボードにタスクを登録したら,スプリントバックログの作成に進みます。画面右にある「スプリントの作成」をクリックすると,ボードの中に「スプリント1」という項目が現れます。登録したタスクをここにドラッグ&ドロップで移動し,そのスプリントで作業する内容を決定します。最後に「スプリントの開始」ボタンをクリックし,開始日と終了日を設定すれば,いよいよスプリントが始まります。スプリントの実行中は,「⁠作業ボード」でタスクの進捗状況を見ることができます(図4⁠)⁠。これはアジャイル開発で一般的に使われる「かんばん」と呼ばれるもので,左側に作業前のタスクが配置されており,作業を開始したらそのタスクを中央の「進行中」に,作業が完了したら右側にある「完了」にドラッグ&ドロップで動かします。これにより,どのタスクが進行中で,どのタスクが完了しているのか,スプリントの進捗状況が一目瞭然になります。スプリントの進捗を確認できる「作業ボード⁠」⁠。ドラッグ&ドロップでタスクをそれぞれのステータスに動かせる。標準で用意されているかんばんのステータスは3段階(作業前/進行中/完了)ですが,新たにステータスを追加したり,既存のステータスを削除したりすることもできます。進行中と完了の間に,「⁠ユーザ確認中」というステータスを追加できます。実際のチームのワークフローに合わせて設定すればよいでしょう。作業中にできるタスクは3つまで,というようにそれぞれのステータスのタスク数に上限を指定したり,ユーザやエピックごとにタスクを分割するスイムレーンを設定したりすることもできます。Agileには用意されています(図5⁠)⁠。残りのストーリーポイントがどれだけあるのかを時間軸で見ることができるため,このチャートをチェックすればスプリントバックログに登録しているタスクをすべて完了できそうか,それともタスクが残りそうかを把握できます。ストーリーポイントをベースに,スプリントの進捗度合いをグラフで確認できる「バーンダウンチャート⁠」⁠。Agileにはこのほかにもさまざまなレポート機能があるもう1つ,重要なレポート機能が「ベロシティグラフ」です。ベロシティは,チームが1回のスプリントで消費したストーリーポイントで,スプリントにどの程度のタスクを割り当てるかを考えるときに役立ちます。一般的には,過去数回のベロシティの平均値をそのチームが1回のスプリントで消化できるストーリーポイントだととらえ,それに応じてスプリントバックログを作成します。スプリントへのタスクの割り当て時に,このベロシティグラフの内容が参考になるでしょう。Agileに登録したプロジェクトやタスクはJIRA本体にも同時に登録されるので,前回解説したとおり,タスクごとに用意されたコメント欄を使ってメンバーと議論したり,豊富なレポート機能を使ってプロジェクトをチェックしたりすることができます。Agileだというわけです。Agileの大きな魅力です。Agileはプロダクトバックログの作成やスプリントバックログへのタスクの割り当て,かんばんやバーンダウンチャートによる進捗状況の確認など,スクラムで進められているプロジェクトの管理に必要な機能を一通りそろえています。Agileで提供されている機能を一種のテンプレートとして利用すれば,アジャイル開発を始める際,プロジェクトの進行を管理するのに役立つでしょう。Agileの体験版をダウンロードできます。Expertsの盾にはアジアパシフィック市場においてトップセラーを証す刻印が...日本だけでなく,アジア圏でもアトラシアン製品販売のトップエキスパートであるリックソフトのWebサイトでは,各アトラシアン製品の体験版を提供しているほか,アトラシアン製品専用のコミュニティも運営しています。言うは易く行うは難し。言うは易く行うは難し。2019」を開催しました。DAY1・DAY2の様子を注目セッションとともにお伝えします。LINEのエンジニア3名がイベントに先駆けて見どころを紹介します。コードの安全性・安定性を高める開発サイクル~テスト管理の効率を上げ,脆弱性診断を自動で行う~本連載では,連載「業務を改善する情報共有の仕掛け」を受けつつ,安全性・安定性を加えた開発サイクルについて考えていきます。若者世代から圧倒的な人気を誇るライブ配信&動画投稿コミュニティアプリ「MixChannel」(ミクチャ)の裏側(レコメンドシステムやサーバサイド開発など)について解説していきます。その他の連載CSS3アニメーションでつくるインターフェイス表現CSS3によるアニメーション表現を紹介していきます。その中でも,幅広い読者に応用してもらえるだろうインターフェイスを主なお題とします。MySQL道普請便り本連載では,MySQLを使ったアプリ開発・運用に関するノウハウをご紹介していきます。RecipeUbuntuの強力なデスクトップ機能を活用するための,いろいろなレシピをお届けします。JavaScriptセキュリティの基礎知識JavaScriptに関するセキュリティ上の問題はどこで発生し,どうすれば防ぐことができるのか?について解説していきます。〜システムをきちんと運用するための基礎知識システムは「作って終わり」ではなく,運用の中でさまざまな問題が発生します。問題の発生に備えて事前にどのような対応をしておくべきなのか,問題発生時に何をしなければならないのか,ポイントを解説していきます。きたみりゅうじの聞かせて珍プレーソフトウェア開発の現場で体験したトホホな失敗,思わずうなる珍プレーをきたみりゅうじ氏が四コママンガで紹介。Linuxのメンテナンスの傍ら,Linuxやオープンソースソフトと日々を過ごす著者が,その魅力とつきあい方を,エッセイ風味でお届けします。PRESS特別編集部員,さわやか笑顔のスーパーハカーはまちちゃんとネット大好き14歳わかばちゃんが,毎号,読者の皆さんから寄せられたおたよりを紹介します。皆さんの日頃の悩みにも答えちゃいますよ。]メールでのお知らせメールで次の案内をお送りしております。メールの配信を希望する方は,利用したい項目をチェックしてメールアドレスを入力し,[登録]ボタンをクリックしてください。UPDATES[ほぼ週間に1回]新刊メールマガジン[ほぼ週間に1回]電脳会議の各号案内[ほぼ1ヵ月半に1回]※変更する場合や停止する場合は,登録情報変更ページをご覧ください。※登録いただいたメールアドレスには,そのお知らせ以外,配信いたしません。Ltd.ページ内容の全部あるいは一部を無断で利用することを禁止します。個別にライセンスが設定されている記事等はそのライセンスに従います。