uehaj's blog

Grな日々 - GroovyとかGrailsとかElmとかRustとかHaskellとかReactとかFregeとかJavaとか -

アジャイル開発シリーズ(1)ソフトウェアカンバンについて

社内の開発プロジェクトにて俊敏開発手法を取り入れています。(アジャイルというと受けが悪いらしいので俊敏という言葉を使ってみました。「としのぶ」ではないですよ)。
その中で使ったプラクティスとして、今回「ソフトウェアカンバン」について思ったごく個人的な感想を述べたいと思います。みなさんも「ソフトウェアカンバン」という言葉を名前は聞いたり、あるいはどこかの記事で見たりしたことがあるのではないでしょうか。
当社のnakanoさんのお勧めで今回のプロジェクトでこれを使い始めたのですが、自分が誤解していたことがあったのでご紹介いたします。

これ(ソフトウェアカンバン)は、何のためのツールかというと、ディスカッションのためのプラクティスであり、ディスカッションによって思考を網羅的に掘り下げることが狙いとする効果です。主要な効果と行ってもいい。あるいはそれが目的そのものかもしれません。

ソフトウェアカンバン?ああ、あれね、「見える化」だね。

とか何か手垢の付いたレッテルを貼って、何か判ったつもりになってはなりません。全然違います*1

僕らが計画を立てるとき、良くある過ちは、「計画書を書くこと」が計画を立てることだと思ってしまうということです。

全然違います。

計画書は、計画を立てることによって生まれた脳内の概念的構造物を、紙に書き表したものに過ぎません。結果なのです。表象であり、シニフィエであり、影であり、痕跡に過ぎないのです。たとえるなら、映画を人が見て「銀幕上に投射された光子の集大成」と受け取るのではなく、文学作品を「文字の羅列」として受け取るのではなく、それに込められた思想や物語を受け取るように、計画書を読む人は、そこから「生きた計画概念」を読み取る必要があります。計画書チェックとかいって、typoとかの修正に汲々としていてはしょうもありません。

んで、ソフトウェアカンバンは、そのような知的構造としての計画を構築し維持することを支援する仕組みです。

ほにゃらら をするために、ぼくらは実際に何をする必要があるのだろうか?

という問いを、決められたある粒度まで、構造化・階層化された形で、組織的に落とし込むための形式化手法です。優れた計画をたてるために人間集団(チーム)という生物学的疎結合集合思考体がはどういう手順でそれを行ったら効率が良いのかというレイヤのノウハウです。

そのためにそれは、一人の頭で考え出すものではなくディスカッションを伴うものであるし、その過程を通じて「計画というコンセプト」を、チームメンバの頭の中に均等に叩き込むための仕組みでもあります。

「Excelで代替できないの?」

という人は多分ポイントがずれてます。不可能ではないかもしれません。チームメンバ全員がアジャイル開発のものすごい達人ならできるかもしれません。将棋の名人同士が、頭の中で対戦できるようにです。しかし、それは常人が真似の出来る芸当ではありません。Excelでソフトウェアカンバンをやるのは、そういうことです。

「これは、どうだろうね、こうなったら、どうなるだろうね」というような、対話の中で真理に到達するという、かつてソクラテスプラトンたちが発見した方法論を使って、日常のプロジェクトの未来をビジョンとしてチームメンバの頭に押し広げて留めていくことが、ソフトウェアカンバンを用いた、アジャイルプラクティスとしての計画の本質なのです。

*1:と言うといいすぎかも。ただ、少なくとも利点を説明しきってはいない。