技術的なことから意味のないことまで、忘れたくないことをただ綴っていきます。」という記事を見て、私も思うところを書いてみたいと思います。本当はコメントに書こうと思ったのですが、長くなりそうなので記事にしてみました。私が以前いた職場ではウォーターフォールで仕事をしていたのですが、たしかに設計者に書かれたドキュメントには抜けや間違いが多く、結局はドキュメンとソースが乖離したものになってしまいます。私も、傲慢SEさんのように「どうせドキュメントには不備があってソースが正しいのだから、ドキュメントはいらないのではないか」と考えていました。プロマネと設計を担当(人数が少ないのでプロマネと設計を兼務しました)し、私のこうした考えを一変させる経験をしました。そのプロジェクトのメンバは6人で、殆どのメンバがスキルに自信を持ち、殆どのメンバがドキュメントの作成を苦手としていました。プロジェクトを進めることにしました。これでドキュメントを書く工数や製作工数が削減できると考えたのです。結果から言うと、これは大失敗でした。XPの各プラクティスに対して、次のような問題が発生したのです。(ここに挙げている問題点は私たちの未熟さから発生したもので、XPの問題ではありません)ストーリーの不備による要求変更の増加プロジェクトの終盤にさしかかっても要求変更が相次ぎました。これは私が基本設計しているにもかかわらず、私が所属する会社が孫受けだったことが原因だと思います。このような立場では、顧客の常駐どころか対面も叶いません。プロジェクトの終わりのほうで知ることになるのですが、私たちが作成したドキュメントやプロトタイプは、プロジェクトの終盤になるまでエンドユーザに見せられていませんでした。定期的に元請のSIerに提出していたにもかかわらずです。この結果、プロジェクトの終盤になっても要求が変更され、その結果仕様変更が相次ぎました。ストーリーが明確でないため、メンバは最後まで仕様を理解しませんでした(理解しようともしませんでした)。反復形開発による仕様変更の増大XPではドキュメントで顧客にコミットメントを取らないため、必ずといっていいほどプロトタイプを公開したときに仕様変更を要求されます。これは間違ったことではなく、本来、XPは「仕様変更を受け入れよう」という考えのもとに作られているのだと思います。このプロジェクトでは仕様変更するたびに、「なぜ俺が作ってから仕様変更が発生するんだ」とメンバから不満が続出しました。最初はユニットテストをきっちり行っていたのですが、仕様変更がある度に徐々にテストケースと仕様が食い違うようになり、最終的には誰もテストケースを更新しなくなってしまいました。結局、メンバは(目先の)工数削減のためにテストを省略してしまったのです。その結果、品質は目に見えて低下していきました。It.(今必要なことだけ行う)」ことです。これは私は、「将来必要になるかどうか分からない機能を今作りこむのはやめよう」ということだと思っています。これをメンバは、「エラー処理も今は必要じゃないから作るのはやめよう」と考えたようです。このため、ソースコードには大量にTODOとかかれたままでエラー処理を考えられることなく作られていきました。テスト成績書等、普段作っているものと同じだけのドキュメントが必要でした。それも検収の関係上から、プロジェクトの中盤で完成したドキュメントの提出を求められました。結局、「ドキュメントを書かなくてもよい」ということにはなりませんでした。これらの問題点は、単純にプロジェクトがアジャイルプロセスに即していないだけだったかもしれませんし、私やメンバの力不足があったのは確かです。私はこれを機に仕事の進め方を考え直すこととなりました。「ジョエル・オン・ソフトウエア」でした)に、ドキュメントについての重要性が書かれていました。注意点を次のように考えています。(これらのポイントは私の中でまだ未完成ですので、これからも変えて行きたいと思っています。ドキュメントを書いた人はドキュメントの読者が理解できない場合、往々にして「読む人の頭が悪い」のが原因だと考えてしまいがちです。うでしょうか?私は、ドキュメントの書き手が悪い場合のほうが多いと思っています。ちなみに、ウォーターフォールを適用した場合の注意点は、先述の本と「アジャイルソフトウェア開発の奥義」に学ぶところが大きいです。最後に、私が傲慢SEさんと同じような状況に置かれたときにとった行動は、「ドキュメントを読んで理解できない点や矛盾点をリストアップして送りつける」というものでした。設計者のプライドを傷つけないよう、文句をつけるというより、単純に分からないとか論理的に矛盾しているというスタンスをとるように気をつけました。そのリストで相手が非を認めた項目については、早急にドキュメントを修正してもらうようにしました。この方法が正しいかどうかは分かりませんが、ウォーターフォールの下流工程を担当する上での一つの対策だと思っています。