アジャイルってドキュメント作らないんでしょ?
いきなりこれを聞かれたら悲しい。
どんな辛い過去やトラウマがあるのかと。
しかしいまだにこういう認識の人は多い。
「だってアジャイルマニフェストにそんな感じのこと書いてなかった?」
もはやここにアジャイルがドキュメントに懸念している問題が顕在化している気がする。
だってそもそもその ”アジャイルマニフェスト” ってドキュメントじゃん。
ドキュメント上でドキュメントはダメ!とか言ってたらヤバい人でしょう。
そんな筈はないし誤解なので大丈夫。
アジャイルマニフェストではどう書かれているのか?
すなわち、左記のことがらに価値があることを認めながらも、
私たちは右記のことがらにより価値をおく。
とある。
左記には「包括的なドキュメント」
右記には「動くソフトウェア」
が置かれている。
なので、そもそもの誤解なのだが、ドキュメントがいらない、なんて書かれていない。
曲解したエンジニアや誰かが、アジャイルだからドキュメントはない、っていう事象に遭遇してしまったのかもしれない。
ところで包括的なドキュメントよりも、動くソフトウェアに価値があるとみなすのは、リーズナブルだと思う。
基本設計書だのプロジェクト管理計画書だの課題管理プロセス定義書だのが存在したところでビジネス的になんのお金にもならない。
最終的に動くコードが必要で、包括的なドキュメントを作っているコストがあるならよりビジネス価値を生み出すコードに投資した方がいい。
というのが、原理の一つ。
もう一つ、ドキュメントが危険な場面がある。
これは直接言及されていないが、アジャイルマニフェストの背後にある原則の一つがヒントになる。
報を伝えるもっとも効率的で効果的な方法は
フェイス・トゥ・フェイスで話をすることです。
ドキュメントという言葉が使われていないが、比較対象に「ドキュメントによる情報伝達」あることはなんとなくわかる。
F2F で話すことが最も情報を効率よく伝えるのは当たり前すぎるほど当たり前なのだが、世の中にはいまだに完璧なドキュメンテーションができていないからだ、と考える人も多い。
そんなシンプルな時代は終わっている。少なくともソフトウェアの世界では。
ドキュメントに記載された文言は、受け手次第で解釈はいくらでも変わってしまう。
そのドキュメントが作られた背景や経緯を共有していないのに、ドキュメントという文字面から意味や意図を理解することは非常に難しい。
っていうか人間は文字くらいは読めるので、自分の理解のまま理解してしまうのだ。
つまりはなんでも自分流にコンパイルできてしまうのだ。意図した振る舞いじゃなくても。これは怖い。
ソシュールが一般言語学講義の中で説いたシニフィエとシニフィアンの関係性に近いのかもしれない。
冒頭にある通り、アジャイルマニフェストというシンプルな文章の例で言っても、受け手によっていくらでも曲解・誤解されてしまい、正しく伝えることはできない。
多分、アジャイルマニフェストを考えた場にいて、その場で文言が生み出された家庭にいた人間以外には正確に理解するのは難しいだろうな、という気はする。
人に伝えるなら、ドキュメントではなく会話を。 ドキュメントはあくまで補助。
文字列と音声情報のファイル容量の違いを見てもわかる通り、映像の情報量は非常に大きく、会話という相互コミュニケーションはドキュメントには決してできない情報補完力があるからだ。
ただし、現在から未来へ情報を伝えるには、ドキュメントは非常に有効だ。
なぜそうしたのか、コメントでも Redmine のチケットでも書き残しておくと非常に有用だ。
伊達に古代エジプトから生き残っているソリューションなだけある。
書き手の意図したことの 1/3 も伝わらない。
人が直接教える方がよっぽど効率的だ。
そんなことを確定申告サイトの UI と戦いながら思うのである。