はじめに
私は17年度入社の新人エンジニアです。社内の「開発実習」という形で、3ヶ月と短い期間ですがアジャイル(スクラム)開発を経験しました。学生時代はソフトウェア開発を専攻していましたが、もっぱらウォーターフォール開発で、まともにアジャイル開発を実践するのは初めてでした。
せっかくアジャイルをやるということで、この機会にアジャイルソフトウェア開発宣言をきちんと読み返してみました。
で、やはり気になったのがこの部分。
包括的なドキュメントよりも動くソフトウェアを
さらっと読み流していたときは、「ドキュメントよりソフトウェアね」くらいの認識でしたが、包括的なドキュメント
って一体どんなドキュメントのことを指しているのでしょうか?
調べてみても具体的になにを指すのかわからなかったので、私なりに解釈してみました。
とりあえず原典にあたる
何事も原典にあたることは大事ですね。
ということで、英語版のManifesto for Agile Software Development。該当部分は以下になります。
Working software over comprehensive documentation
包括的なドキュメント
=comprehensive documentation
だとわかったのでcomprehensive
について調べてみました。
…よくみてみると、日本語でドキュメント
と訳されている単語はdocument(s)
ではなくdocumentation
です。ニュアンスの違いはあるのでしょうか?正確に理解したいのでこれらの違いについても調べてみました。
単語の意味を調べる
次の3つの単語の意味についてそれぞれ調べてみました。
- comprehensive
- documentation
- document
Comprehensive
まずはcomprehensive
について。
ロングマン現代英英辞典からの引用です。
Comprehensive:
including all the necessary facts, details, or problems that need to be dealt with
オックスフォード英英辞典からの引用です。
Comprehensive:
including all, or almost all, the items, details, facts, information, etc., that may be concerned
包括的な
をもう少し噛み砕くと、「必要なものすべてを含んだ」、「フルセットの」といったニュアンスでしょうか。
DocumentationとDocumentの違い
Documentation
ロングマン現代英英辞典からの引用です。
Documentation:
- official documents, reports etc that are used to prove that something is true or correct
- the act of recording information in writing, on film etc
オックスフォード英英辞典からの引用です。
Documentation:
- the documents that are required for something, or that give evidence or proof of something
- the act of recording something in a document; the state of being recorded in a document
Document
ロングマン英英辞典からの引用です。
Document:
- a piece of paper that has official information on it
- a piece of written work that is stored on a computer
オックスフォード英英辞典からの引用です。
Document:
- an official paper or book that gives information about something, or that can be used as evidence or proof of something
- a computer file that contains text that has a name that identifies it
違い
-
Documentation
は複数のDocument
の集まり - 「対象物について記した公式なもの」というニュアンスはどちらも同じ
という認識でよさそうです。
結論
以上のことから、私なりにはcomprehensive documentation
=「きちんと形式の定まった、フルセットの、ドキュメントたち」と解釈しました。
ここで、それぞれの言葉たちは以下の意味で使っています。
きちんと形式の定まったドキュメント
- ウォーターフォール開発で、一般に成果物として求められるドキュメント
- コミュニケーションを補佐するために書いた文書や、特に形式の定められていない文書は除く
Note:
document
とdocumentaion
の持つ、「公式な」というニュアンスから「成果物として求められる、きちんと形式の定まった」と解釈しました
フルセットの文書たち
次に当てはまる文書がすべて揃っている
- 運用手順書など、ソフトウェアに必要不可欠な文書
- 中間成果物として求められる文書
- 実施計画書
- 作業報告書
- ○○設計書 etc...
「中間成果物を含むすべての文書たちを、丁寧に作って、きちんと揃えることよりも、動くソフトウェアを作ることに価値を置く」と言われるとしっくり来る気がします。
『アジャイルサムライ』のこの一言も、この解釈の基で読むとより一層「なるほど感」が得られました。
『アジャイルサムライ』p.4より:
君が信頼に足ると判断するのは次のどちらのチームだろうか?実施計画書や大量の製品文書、作業報告書を納品してくれるチーム?それとも、一番大事だと君が思う機能を実装して、テスト済みのソフトウェアとして毎週必ず届けてくれるチーム?
おわりに
私なりに解釈してみましたが、アジャイル開発をまともに実施した経験が浅すぎるので自信を持って正しいとは言えないのが実情です。
この記事が色んな人の目に入って、色んな議論ができれば幸いです。