アジャイルにドキュメントは不要?

コラムカテゴリー:, , ,

【はじめに】
アジャイル(アジャイルソフトウェア開発)とは、開発期間の単位を短くして順次継続的にリリースをする開発手法のことです。
システム開発のリスク最小化とシステム開発の効果享受までの時間が短縮化されることが期待できるため、多くの開発プロジェクトで採用の検討がなされているかと思います。
しかし、アジャイルを採用したプロジェクトを成功させるためには、顧客の積極的な参加や少数精鋭のエンジニアチームが必要であるなど、いくつかの条件があります。
これらの条件を満たすことも難しいのですが、幸いにも条件を満たせたとしても、徐々にうまくいかなくなるケースがあります。

【アジャイルソフトウェア開発宣言】
古くからシステム開発に携わっている方々にとって「アジャイル」は、まだ新しい響きがあるかもしれませんが、英語版の「アジャイルソフトウェア開発宣言」が公開されたのは2001年であり、公式な日本語版が公開されたのは2010年ですので、比較的歴史があると感じる方もいらっしゃるでしょう。「アジャイルソフトウェア開発宣言」の内容は以下のとおりです。


アジャイルソフトウェア開発宣言

私たちは、ソフトウェア開発の実践
あるいは実践を手助けをする活動を通じて、
よりよい開発方法を見つけだそうとしている。
この活動を通して、私たちは以下の価値に至った。

  • プロセスやツールよりも個人と対話を、
  • 包括的なドキュメントよりも動くソフトウェアを、
  • 契約交渉よりも顧客との協調を、
  • 計画に従うことよりも変化への対応を、
  • 価値とする。すなわち、左記のことがらに価値があることを認めながらも、
    私たちは右記のことがらにより価値をおく。

    Kent Beck、Mike Beedle、Arie van Bennekum、Alistair Cockburn、Ward Cunningham、
    Martin Fowler、James Grenning、Jim Highsmith、Andrew Hunt、Ron Jeffries、
    Jon Kern、Brian Marick、Robert C. Martin、Steve Mellor、Ken Schwaber、
    Jeff Sutherland、Dave Thomas

    © 2001, 上記の著者たち
    この宣言は、この注意書きも含めた形で全文を含めることを条件に自由にコピーしてよい。

    これらは、今でもアジャイルで開発を行う上で大事な思想であり、これらに則ってアジャイルを推進するべきだと私も強く思っています。しかし、この宣言で多くの人が見落としがちな点があります。それは、最後の文に「左記のことがらに価値があることを認めながらも」とある点です。この「左記のことがら」の価値を認めずに、ことさら軽視してしまっているプロジェクトは、徐々にうまく回らなくなってきます。

    【ドキュメント不要論】
    宣言の2つ目において「動くソフトウェア」を重要視しているところだけを独り歩きさせて、「ドキュメントが不要である」と誤解をしている人がいます。プロジェクトの初期においては、少数精鋭でやってきていることもあり、またシステムが単純な状態でリリースをしてきているため、ドキュメントがなくても、それぞれの頭の中で補完をしてプロジェクトを進めることができます。しかし、システムが徐々に複雑化してくると、どこかで限界が出てきます。
    この限界を超えたところで開発を進めると、不具合が頻発し、そのリカバリを実施しなければならなくなります。そのリカバリもドキュメントが不十分な状態で設計をすると、抜け漏れが発生しやすくなります。そうなると、リカバリのリカバリ、つまり二次災害が発生してしまいます。こうなると、リカバリが止まらなくなり、最悪の場合では「動かないソフトウェア」になってしまいます。

    【ドキュメント作成の自動化】
    では、ドキュメント作成の工数を確保すれば良いのか、ということになりますが、限られた開発工数が減ってしまうことは得策では無いと私は考えています。
    昨今の流行である「超高速開発ツール」でも、ドキュメントの自動生成機能を持っているものがあります。また、ソースコードやテーブル定義を解析し、ドキュメントを自動生成してくれるツールもあります。プロジェクトが回り出しましたら、これらの導入検討を開始した方が良いでしょう。
    また合わせて、テストの自動化も積極的に導入し、「個人との対話」「顧客との協調」「変化への対応」をするための時間を創出した方が、プロジェクトは安定します。

    【まとめ】
    アジャイルは、臨機応変に要件を調整し、毎日のように優先度を検討し、計画を目まぐるしく立て直すため、マネジメントラインも開発メンバーも運用メンバーも、相当なスキルとメンタルが必要になります。この優秀なメンバーにかかる負荷を可能な限り最小化することが、アジャイルを採用したプロジェクトの成否を左右します。
    ぜひ要件が山積みになっているときこそ、可能なところからで構いませんので、ドキュメントの自動化をご検討されてください。

    関連サービス

    プロジェクトマネジメント

    2017年05月15日 (月)

    青山システムコンサルティング株式会社

    長谷川 智紀