アンケートご協力のお願いgihyo.jpでは,2010年度に向けて豪華プレゼントが当たる読者属性アンケートを実施しております。ご協力ください。

gihyo.jp » DEVELOPER STAGE » 連載 » アジャイル開発者の習慣-acts_as_agile » 第4回 ドキュメントを大切にする

アジャイル開発者の習慣-acts_as_agile

第4回 ドキュメントを大切にする

ソースがドキュメントだ。バグも完全に記述されている。

――まつもとゆきひろ(注1

注1)
オブジェクト指向スクリプト言語Ruby』(まつもとゆきひろ/石塚圭樹(著),アスキー)p.563

はじめに

本連載ではアジャイル開発を「アジャイルに開発する人たち(アジャイル開発者)が開発するからアジャイル開発」と考え,アジャイル開発者に必要なスキルを磨くための習慣を紹介しています。

これまでの3回を費して紹介した「フィードバックを重視する」「仕組みを育てる」「スケール間に連続性を築く」といった習慣は,チームによるシステム開発の現場でアジャイルにプログラムを書くことを重視したものでした。

しかし,これでは開発対象となるシステムを構成する2つの要素のうち主に1つしか説明していません。2つの要素とは,プログラムとドキュメントです。今回は,これまであまり触れてこなかった,2つの要素のうちの1つであるドキュメントに関する習慣を紹介します。

そのためにまず,アジャイル開発者にとってのドキュメントの位置づけを説明します。それから,アジャイル開発に限らないドキュメントについての考え方を紹介します。そして,ドキュメントを大切にするためにアジャイル開発者が身につけている習慣を紹介します。

“アジャイルだからドキュメントを書かない”

アジャイル開発にまつわる代表的な誤解が「アジャイルだからドキュメントを書かない」というものです(注2)。

この誤解は根強いものですが,その原因はアジャイル開発を推進している側にもあります。具体的には,最初によく知られることになったアジャイル開発手法の名前が「エクストリームプログラミング(極端プログラミング)」であることや,「アジャイルソフトウェア開発宣言」と訳されることもあるアジャイルマニフェスト「包括的なドキュメントよりも,動作するソフトウェアを」という項目があることがすぐに思い当たります。

しかし,それ以上に誤解を根強くしている原因は,開発対象のシステムとその構成要素(プログラムとドキュメント)の認識にあります。

注2)
アジャイル開発に関してよく誤解されているものはほかにも何点かあります。そのうちの代表的な誤解を「アジャイル勘違い集」で簡単にまとめています。

システムとドキュメント

経験からも言えることですが,開発対象システムのとらえ方としてよく見られるのは「システムとはプログラムであり,ドキュメントはシステムとは別物である」という認識です(図1)。心の持ち方として,開発を進めるうえでドキュメント作成とシステム構築とを完全に別物として考えていることはありませんか? システム(プログラム)をこの構図でとらえている人が「動作するソフトウェアを重視する」と聞くと,「じゃあドキュメントを軽視するんだな」と考えてしまいがちです。私もかつてはそうでした。

図1 ドキュメントはシステムとは別物

図1 ドキュメントはシステムとは別物

ドキュメントはシステムの本質的な構成要素

ところが実際にはアジャイル開発者はドキュメントを大切にします。これは私が周囲のアジャイル開発者との交流から学んだことの中でも二番目に重要なことです(注3)。

アジャイル関連の著作が多いScott Amblerも,『オブジェクト開発の神髄』(注4)の中で「どんなシステムにもドキュメントは本質的な部分として含まれます。アジャイルソフトウェア開発手法で作られたシステムでも同じです」と宣言しています。つまり,アジャイル開発者のシステムとその構成要素に対する認識は図2のようになっているのです。

図2 ドキュメントはシステムの本質的な構成要素

図2 ドキュメントはシステムの本質的な構成要素

注3)
一番重要なことは「テスト駆動開発者は本当にテストを先に書くこと」です。
注4)
オブジェクト開発の神髄 ― UML 2.0を使ったアジャイルモデル駆動開発のすべて』(Scott W.Ambler(著),越智 典子(訳),オージス総研(監訳),日経BP出版センター)

ドキュメントとコードは同じぐらい大切

ちなみに図2では「ドキュメント」の四角が「プログラム」の四角に重なっていますが,これは作図ミスではありません。アジャイル開発者にとってドキュメントにはプログラムも含まれます。これについては後述します。

アジャイル開発者にとってドキュメントはシステムの本質的な一部ですから,プログラムとして書くコードと同じように大切なものです。ということは,アジャイル開発者にとってドキュメントはコードと同じようにビジネス価値を提供しなければなりません。

ソフトウェアに対する要求を動作するソフトウェアとして早めに実現し,こまめに提供し続けることがアジャイル開発の核心です。連載の第1回(本誌Vol.39)で説明したように,ソフトウェアの価値は「価値の大きさ×価値を生み続けている時間」です。よって,システムのビジネス価値の提供に結びつかないドキュメントはムダであり,削減の対象となります。

著者プロフィール

角谷信太郎(かくたにしんたろう)

(株)永和システムマネジメント,サービスプロバイディング事業部所属プログラマ。「『楽しさ』がシステム開発の生産性を左右する」と信じてRubyによるアジャイル開発を現場で実践するテスト駆動開発者。目標は達人プログラマ。好きな言語はRuby。好きなメソッドはextend。著書に『アジャイルな見積りと計画づくり』(共同翻訳),『JavaからRubyへ』(翻訳),『アジャイルプラクティス』(共同監訳),『インターフェイス指向設計』(監訳)。

URLhttp://kakutani.com/

著書

  • アジャイルな見積りと計画づくり ~価値あるソフトウェアを育てる概念と技法~

    アジャイルな見積りと計画づくり ~価値あるソフトウェアを育てる概念と技法~(毎日コミュニケーションズ)

  • JavaからRubyへ — マネージャのための実践移行ガイド

    JavaからRubyへ — マネージャのための実践移行ガイド(オライリー・ジャパン)

  • アジャイルプラクティス 達人プログラマに学ぶ現場開発者の習慣

    アジャイルプラクティス 達人プログラマに学ぶ現場開発者の習慣(オーム社)

  • インターフェイス指向設計

    インターフェイス指向設計(オライリー・ジャパン)

コメント

コメントの記入

パスサポ

多数の情報処理技術者試験対策書籍の発行実績を誇る技術評論社がお届けする,資格試験合格サイト「めざせ! 情報処理試験 パスサポ」が開設されました。

ピックアップ

サクセスストーリーに続く,快適サーバー運用管理のヒント!

データの増大,煩雑な管理,システムダウン,セキュリティなど,迫りくる課題からシステム管理者の負担を軽くするポイントを解説します。

gihyo.jp インフラエンジニア情報局

ネットワークやITにかかわるあらゆる業種で必要とされるインフラエンジニアに向けた技術情報や心構え,その魅力について多角的に紹介。

テストエンジニア ステーション

いま,ITに関わるあらゆる開発業務で注目されつつあるテスト系エンジニアをターゲットにしたコンテンツサイトを展開します。

一行クイックアンケート

gihyo.jpで取り上げてほしいネタは?

※検索はページ右上の検索ボックスをご利用ください。

その他の連載

Ubuntu Weekly Recipe

Ubuntuの強力なデスクトップ機能を活用するための,いろいろなレシピをお届けします。

C/C++プログラマのためのDTrace入門

よくカーネルのチューニングや解析で活用されるDTraceですが,実はユーザプログラムの開発においても非常に有用です。連載ではC/C++プログラマやテストに関わる方向けにDTraceの使い方を解説します。

Blogopolisから学ぶ計算幾何

計算幾何学は,図形に関するアルゴリズムを研究するコンピュータサイエンスの一分野です。本連載では,ビジュアルブログ検索エンジン「Blogopolis」で採用されている計算幾何のアプローチを例に取り上げながら,計算幾何の初歩を実践的に学習します。

検索エンジンはいかにして動くのか?

本連載では, 今や誰もが利用している検索エンジンの中身を,全体の仕組みやデータ構造,アルゴリズムから分散インデックスまで,最近の研究事例も交えて紹介します。

サイエンスに片思い

本連載では,サイエンスという学問を軸に,そこから広がる可能性やつながり,そしてWebの世界との関係について,前田邦宏氏がさまざまな取材を元に考察し,これからの可能性について展望します。

使ってみよう! Windows Live SDK/API

Windows Liveサービスの一部にはAPIやSDKとして提供されているものがあります。本連載では各API・SDKの紹介とそれらを利用したアプリケーションを開発していきます。

Lifelog~毎日保存したログから見えてくる個性

コンピュータを使って,日常のさまざまなことの記録(ログ)をとり,それを分析して活用することで,もう一段階上の「楽な生活」をめざす日々の研究報告です。

もっと便利に!jQueryでラクラクサイト制作(実践サンプル付き)

本連載では,実践サンプルとともに,jQueryを上手に活用してサイト制作の品質向上・効率化を実現するための実践テクニックを解説します。

連載一覧

gihyo.jp

  • DEVELOPER STAGE
  • ADMINISTRATOR STAGE
  • WEB+DESIGN STAGE
  • LIFESTYLE STAGE
  • SCIENCE STAGE
  • NEWS & REPORT

書籍案内

  • 新刊書籍
  • 書籍ジャンル一覧
  • 書籍シリーズ一覧
  • 新刊ピックアップ
  • ロングセラー
  • 電脳会議

定期刊行物一覧

  • Software Design
  • WEB+DB PRESS
  • Web Site Expert
  • 組込みプレス