アジャイル開発の現場を体験して思ったこと

アジャイル開発についての個人的な感想

はじめに

近年よく耳にするようになったソフトウェア開発手法のひとつであるアジャイル開発。
企業の注目度も高く、KDDIなど3社、アジャイル開発専門の新会社を設立のニュースもあります。
でも実際にどのような開発手法かと聞かれると、はっきりと答えられる人は少ないのではないでしょうか。
今回、自分が関わったプロジェクトがアジャイル開発で行われる事から、概要と個人的な感想をまとめてみました。

代表的な開発手法について

アジャイル開発を説明する前に、代表的なソフトウェア開発手法を挙げてみます。

  • ウォーターフォールモデル
    現状、最も多くの現場で使用される代表的な開発手法。 開発の段階を川の流れに例えているところから名づけられています。
メリット

工程の進捗管理が容易であるところ。
詳細な定義を開発初期に決定し、その定義を実装するためプロジェクト全体として何を作っているか明確となっています。

デメリット

製造の段階に入るまでに時間がかかる。
開発途中での定義変更が難しい。

  • スパイラルモデル
    よくアジャイルと比較される手法です。 設計・実装・テストの一通りの工程を繰り返してシステムの質を高めていく開発モデルになります。

アジャイル開発とは

アジャイルとは『すばやい』『俊敏な』という意味で、2001年に提唱されたアジャイルソフトウェア開発宣言を基に確立され、宣言内容は心構えのような哲学的な内容になっており、明確な手法があるわけではありません。
複数の開発手法があり、共通して反復 (イテレーション) と呼ばれる短い開発期間単位を採用する反復型開発手法になります。
具体的には「計画」「要件定義」「設計」「実装」「テスト」といった工程を分割した機能単位毎に反復的に行い、小さな機能を1つずつ追加開発していくことで、最終的にシステム全体の完成を目指します。

アジャイル型開発手法

  • スクラム(Scrum)
    ネット上の実例でよく見かける代表的な開発手法です。

    スクラムのカギとなる基本原則は、プロジェクト開発の途中で、顧客は、要求や必要事項を変えられるという認識である。予想できない変更について、計画に基づく方法で対処することは、容易ではない。したがって、スクラムは経験に基づくアプローチを採用する。問題を十分に理解することも、定義することもできないので、現れた要求へ素早く対応するためのチームの能力を最大化することに集中する、というアプローチである。

  • エクストリーム
    ネット上の実例ではあまり見かけない方の代表的な開発手法です。

    柔軟性の高い開発手法であるが、古典的には開発が進むにつれ変更コストは大きくなると言うことを前提に開発手法が構築されているのに対して、自動テストを導入するなど様々な対策をすることにより開発が進んでも変更コストが大きくならないような工夫を持ち込むことにより、変更に対する柔軟性を実現している。この変更コストが増大しないという前提[1]が破綻すると、この手法も破綻する。
    XPは比較的少人数の開発にもっとも適用しやすく、5つの価値と19の具体的なプラクティス(実践)が定義されている。XPはドキュメントよりもソースコードを、組織的開発の歯車となることよりも、個人の責任と勇気を重んじる人間中心の開発プロセスであるとしている。

アジャイル開発でのメリット

従来のウォーターフォールモデルと比べ迅速に開発に入ることができます。
実装途中の仕様変更にも対応しやすく、製品への柔軟性と高品質を両立した開発が可能です。

アジャイル開発でのデメリット

全体の設計が未確定の状態で開発がスタートするため、期限までに全ての機能を実装できるかが不確定です。
明確な設計が無いため、統率が取れない場合は保守性の低い製品になってしまう。

実際の現場での印象

詳細設計を書かなくて済む分、開発のスピードはウォーターフォールモデルと比べ体感で1か月近く早く始まったように感じた。その反面、場当たり的な対応が多く、アジャイルであっても初期の実施計画の重要性が伺えた。
どのアジャイル型開発手法を見てもチーム内でのコミュニケーションが強く求められるが、実際はあまり無く各々の裁量で開発が進んでいる。そのため実装方法がバラバラであったり、共通認識の齟齬など後々に与える影響が大きくなりそうに感じた。
メンバー内にスクラムなどの開発手法をよく理解した人が数人でも居れば、メンバー全員のスキル向上や製品の品質に対しても従来の開発手法より良いアプローチが出来そうな雰囲気は感じられた。
逆に上手く機能していないアジャイル開発は、設計書なし、急な仕様変更、スケジュールが見えないなどの悪循環に陥る可能性がある。


Related Link (Reference Blog)

Comments

Add your comment

user-symbol

Stay in touch

Get Practical Tips For Business and Developers.

Learn about PieceX Community Needs for Source Code Projects.

Be the First to Know PieceX Newest Free Community Code Projects.