ViewsTweetCheckPocket商品の開発には、設計や構築に加えて、品質管理や保守という複数の流れがあります。プログラム開発においてこれらのプロセスが手続き上の手間を増やしているので、開発速度が落ちてしまう欠点に繋がります。した中で、開発速度を落とさないことのできる開発手法がアジャイルです。今回は、そんなアジャイルに関してわかりやすく解説していきます。スポンサーリンク目次アジャイル開発とは主な3つの手法アジャイルの特徴アジャイルのメリットアジャイルのデメリットアジャイルでの具体的な開発の進め方リリース計画イテレーションアジャイルへの取り組み方とチーム編成のポイント少数精鋭の均等なチームまとめアジャイル開発とは「機敏」などの意味を持つ「アジャイル」という言葉の通り、「スピーディー」「臨機応変」に開発・対応できるのが特徴です。コミュニケーションを蜜にとりながら、短期間で実装やテストを繰り返しおこなっていきます。フットワークの軽い開発手法が追求された結果、新しく登場して定着しつつある開発の取り組み方です。2001年にアメリカで「アジャイルソフトウェア開発宣言」がおこなわれ、それ以来ソフトウェア開発の手法として使われています。のちに特徴を詳しくご説明しますが、機能に関する要求の採り入れが積極的で、随時反映するスピード感がメリットです。実用的なプログラムの更新サイクルが速くなるので、日々変化が起こるWeb関連やオープンソース圏で積極的に採用されています。「スクラム」「エクストリーム・プログラミング」「ユーザー機能駆動開発(FDD)」の主な3つの手法があります。スクラムアジャイル開発の代表的手法の1つであるスクラムは、開発チームのコミュニケーションを重視した手法です。プロジェクトの進捗状況や問題などを毎日メンバー同士で確認し、作っている機能が正しいかどうか・間違っていないかを定期的に確認もします。機能により優先順位をつけ、およそ1週間〜4週間程度の短期間を1つの単位として計画を組み開発・修正をおこないます。スクラム開発であればチーム内で発生している問題を早く認識・共有できるため、軌道修正も素早くできます。優先順位の高い機能から1つずつ集中して開発できるため、短期間で最大限の成果が期待できる手法です。エクストリーム・プログラミング(XP)エクストリーム・プログラミングという手法もあります。エクストリーム・プログラミングは、アジャイル開発の中でも最も最初に普及した手法であり、プログラマ中心に開発をしていく方法です。素早いフィードバック・単純さの採用・インクリメンタルな変更・変化を取り込む・質の高い作業という5つの基本原則をもとに開発を進めます。計画ゲーム・リファクタリング・ペアプログラミング・テスト駆動開発・継続的インテグレーション・ソースコードの共同所有など、いくつものプラクティスがあります。4つの立場ごとに分類されています。Development)は初期アジャイル開発手法の1つで、ユーザー機能のリスト抽出をしてインクリメンタルに開発をおこないます。ユーザー機能を中心に設計・開発するため、顧客に価値・メリットのあるソフトを提供することができます。アジャイルの特徴アジャイルのメリットでは、従来の開発方法と比較すると、アジャイルはどのようなメリットがあるのでしょうか。開発者・ユーザー双方の代表的なメリットについて見ていきましょう。停滞しにくい従来のソフトウェアは、計画から立案、企画書の完成を経て、ようやく実装やテストに進むのが一般的でした。段階毎にしか進めませんでしたから、行き詰まる度に全体が停滞する、それが難点だったといえます。開発にアジャイルの反復の概念を採り入れれば、全行程がコンパクトに分割され、停滞が起こりにくくなる利点が発揮されます。全体像が見えにくいという指摘もあるアジャイル開発ですが、プロジェクト管理ツールなどを使えば、全体の進捗状況を簡単に共有することができます。Trackerなど、さまざまなプロジェクト管理ツールがあり、ひと目で状況を確認できます。情報共有が行いやすいアジャイル開発は、開発チームで蜜にコミュニケーションをとる機会があり、開発に参加する全員が常に最新の情報共有を行うことができます。ユーザーからのフィードバックも頻繁に受ける仕組みもあります。コミュニケーションがより綿密になることで、問題共有が素早くでき、早期の軌道修正が可能になります。短期間で修正が可能アジャイル開発のメリットの1つが、短期間で修正可能な点です。短期間でテストや実装をおこなうため、何らかの問題が生じてもその場ですぐに修正することができます。従来の開発手法であるウォーターフォールの場合は、計画を必ず守る必要がありスパンも長いため、問題が生じるとかなり前の工程まで戻り修正しないといけないこともあります。アジャイル開発であれば、その場その場でしっかりと対応ができます。短期間での修正によって、運用を行いながらフィードバックを得て素早く改善するということもできるようになります。プログラムの完成時に完成度が低くても、期待した通りに動作するなら公開するというような姿勢で取り組みが行うことができます。チームの質を保ちやすいアジャイルは、少数精鋭が主流なので、人材の入れ替わりに対応しやすく、流動的で常にチームの質を一定に保つことができるという特徴があります。規模が大きくなれば、それに応じて難易度が高まりますが、小規模なら小さいリスクで挑戦する価値が得られます。作業単位が明確ですから、変更があっても対応しやすく、俊敏に適応可能な点もまた優れたメリットと言えるでしょう。アジャイルのデメリットアジャイル開発のデメリットについて見ていきましょう。チームの質がプログラムの完成度に大きく影響するアジャイル開発は個人よりもチームに重きを置いて開発をおこないます。それゆえに担当するチームの質が低ければ、完成するプログラムの質も低いものになってしまいます。完成度にチームの質が大きく影響するため、力がないチームが担当すると期待した完成度に達することは少ないです。この点に関して、リスクを最小限に抑えたいなら、開発に関わるメンバーの選考を十分に行うのがおすすめです。方向性がぶれやすいアジャイル開発は短期サイクルにより、ニーズに臨機応変に対応できるメリットを持ちますが、頻繁に変更をするとプロジェクトの方向性がぶれてしまう場合があります。方向性がぶれないようにプロジェクトマネージャーなどがしっかりと管理をしなければなりません。アジャイルでの具体的な開発の進め方リリース計画アジャイル開発は、「開発の途中で設計変更や仕様変更があることは当たり前である」という前提のなかで計画を組みます。そのため、厳密な仕様・計画は組まず、おおまかな仕様・計画・要求のみを決めて開発をおこないます。これにより、顧客の要望などに臨機応変に対応できるようになります。具体的な開発方法はまず、計画を打ち立てメンバーを集め、顧客を含めて目指す方向性を決めるのがポイントです。顧客もメンバーの一人に数えられますから、必要であれば開発に加えるといいかもしれません。イテレーションイテレーションとは「反復」という意味で、サイクルを示します。テストを繰り返しおこなっていき、機能をリリースします。1週間ごとなどでイテレーションを繰り返し、細かく開発をしていきます。アジャイルへの取り組み方とチーム編成のポイントでは、実際にアジャイルで開発するにあたって少数精鋭の均等なチームでは、アジャイル開発が行いやすい開発チームとはどんなチームなのでしょうか。そのポイントをご説明していきます。最大でも10人クラスの開発チーム同じ環境で共同作業を行うメンバーが長期的にチームに参加出来るメンバーの能力に偏りがあって、何らかの理由でチームを抜ける事態や優秀なメンバーへの過度な依存による問題が発生すれば、アジャイルでも行き詰まってしまう可能性が十分にあります。少数精鋭がアジャイルの特徴でもあるため、同程度の能力を持つメンバーで構成を行い、1人の能力に依存し過ぎないよう気を付ける必要があります。無理のある依存体制を避けてバランス良く進捗を行う、これが理想的な現場の姿になります。皆実践重視で取り組むのが特徴ですから、一人一人に対し変化について行く対応力が求められます。何よりも、チームワークがアジャイル開発の根幹を支えるので、信頼関係や相談しやすさが成功の鍵を握ります。開発を始めるにあたって一番重要なのは、メンバー全員がアジャイルの経験を持ち、基本から応用まで実践で学んでいる点にあります。ある程度の開発経験がなければ、習得自体が難しい開発手法なので、チームの完成度を高めたいなら、経験者を優先して選考するのが効果的です。プログラムの基本設計が今後の運用に関わるので、実装や変更が行いやすい設計が行える人材を登用するのもポイントです。方向性の定まらない作業が起これば、メンバーが迷走に突入しかねませんから、全体を引っ張るリーダーの存在も欠かせません。リーダーが舵を取り、顧客やメンバーとの話し合いを繰り返し、方向性を見定めながら実際に反復して進むのが理想的です。作業の分割をする分割こそがアジャイルの特徴なので、計画から実装、テストまでをコンパクトに分けて、金太郎飴の一欠片のように捉え、その中で反復的に作業を行う結果に繋がります。飴の一欠片が完成したら次に進む、このようなやり方で一本の完成を目指します。共同作業が主体ですから、これまで主流だった単純な分業とは異なり、全員が顔を合わせて取り組むスタイルになるのが特徴的です。現場のコミュニケーションが疎かであれば、意思の疎通が上手く出来なくなったり、進捗や問題解決に支障が出始めます。意見の食い違い等の放置が停滞の切っ掛けになるので、問題を見付けたら早めに解決する必要があります。まとめコンパクトに考えて作業する、これが新しいやり方の原点なので、挑戦して得られる価値のある手法だと考えられます。一度開発が始まれば、フィードバックを受けたり反映する作業が止められなくなります。立ち止まるのが許されない開発手法ですから、毎日が刺激を求める開発メンバーにとってエキサイティングですし、充実した日々が送れるようになるでしょう。1つの機能変更や追加を目前の目標に定め、そのやり方を繰り返し反復しながらプログラムの質を高める、これがアジャイル開発の姿です。欠点がないわけではありませんが、それ以上に効率化の可能性を秘めているので、開発の現場で採用される事例が増えています。今までのやり方に比べ、取り組み方の姿勢が根本から異なるので、未経験者なら誰しも戸惑うでしょう。このやり方を採り入れる挑戦によって、話し合いの大切さに加え、進捗を細かく分割して少しずつ進める重要性に気が付けます。参考資料になる文書の少なさを始め、作業次第で雑に仕上がるケースもありますから、これらの点を注意するのが肝心なポイントになります。現在の工程の単位が明確なので、完成形こそイメージに描きやすいものの、話し合いが不十分であればチグハグな情報共有に結び付くのが欠点です。文書が足りないケースが少なくありませんから、必要な情報は紙に書き出し、視覚情報を交えて情報を共有することが不可欠です。