まず覚えておきたい考え方

日本鼻メガネの会 新年会の2次会にて話題となったことについて、深堀したいと思います。

これは私の主観、考え方ですので、「そういう考え方もあるか」程度に思ってください。

私はまず何よりも先に自分で考えて、行動することが大事だと思います。最後に別の例も示しますが、プログラミングを例にすると、プログラミングを始めようと思ったら、最初に本を買うのではなく、まずはWebサイトを検索して容易に知り得る情報を見ながらでも簡単なプログラムを作ってみることが第一だということです。

また、たくさんのことを覚えることよりも、やり方を自分で考える経験をたくさん積む方が大切です。プログラミングを始めようと思うと、数多くの言語があることを知ると思います。しかし、言語というのはそもそも所詮は誰かが作ったプログラムに過ぎません。
ことの本質はそれ(言語、つまり道具)によってどんな処理(計算)をどの様な方法で行うかにあります。Windowsだって誰かが作ったプログラムに過ぎず、Windows上で動くプログラムを作る為に覚えなくてはいけないことが色々とありますが、それも本質ではありません。Macだって同じです。本質は自分が為したいことをどうコンピュータで動く形で表現するかということにあります。

その為、私はたくさんの本を読んで、たくさんのことを勉強することにあまり意味を感じていません。そして、そうしたたくさんの本を読んで、たくさんのことを勉強した人が“できる人”だという印象も持っていません。“物知り”は所詮物知りでしかありません。「プログラミングをするにはまずこれが必要だからこれをまず勉強しないといけない」という考え方は、容易に挫折を招き、当初考えていたそもそもの目標を忘れさせます。人間とは自分にとって、それの必要性が納得できなければ、真の意味では勉強することはできません。むしろ『どこまで本を読まずできるか?』という様に逆に考えて行動した方が良いと思います。Rails を勉強しないと、これからWebサイトが作れないと言う人もいますが、Rails は所詮は手段の一つに過ぎず、そもそも Rails が無くても Webサイトは作れるのです。

Webサイトを作る過程で色々なことが理解できるはずです。面白くない本を苦労して読むのはその後でも間に合いますし、その時ならきっと楽しく読めるはずです。また、その時には知識の下地があなたの中にできているので、本の良し悪しも良く分かる様になっていますから、ハズレ本に高いお金を払わずにすみます。

さて、ここまでプログラミングを例にして、説明してきました。
ここからはプログラミング以外を例にして、説明していきます。

以前『今日から始めるTOC-CCPM』と題して、アジャイルな要素を取り込んだ“TOC-CCPM”、自称“TOC-CCPF”のお話をしました。

この講演資料を見ると、私がTOC-CCPMを勉強してから、それにPFを付加した様に見えると思いますが、真実はそうではありません。

私が最初に行ったことは、TOC-CCPMではなく、自分なりにプロジェクトが遅れる要因を考えて*1、それに対する対策を取っていました。

何故かと言うと私はTOC-CCPM(CCPF)をしたかったわけではなく、『開発現場やユーザの環境をより良くしたい』ことが目的だったからです。

私が最初に行った対応をTOC-CCPMもどきと呼びますが、これとTOC-CCPMの違いは、PFの要素*2が入っていること、用語の違い(ODSCなんて名前ではなく、目的とアウトプットと成功基準という名称で定義していました)、50/50のスケジュールを課すのではなく、1/2〜3/4のスケジュールに挑戦することでした。

予定するスケジュールの幅が大きいことと認識を統一する為、TOC-CCPMという既存の枠に一旦当て嵌めて、抜け落ちた部分(PFの要素)を再度付加する目的で、TOC-CCPFという形にしています。

流れとしては、以下になります。

TOC-CCPMもどき→TOC-CCPMTOC-CCPF

私のやった流れだけを聞くと、やり方を自分で考えるよりも最初から本を読めば良かったのではないか?と思われるかもしれません。しかし、本を読んでいるだけで、自分で考えない人が陥る罠があるのです。

TOC-CCPM実践している人で『TOC-CCPMアジャイル開発は相反するものだから相容れない』と言う人がよくいますが、私はそういった人々を疑います。TOC-CCPMアジャイル開発もアプローチの仕方は異なりますが、どちらも環境をより良くするものです。私が実践している限り、相容れないということは全くありません。

TOC-CCPMの親方バッファという考え方は、アジャイル開発と融合することで、チームバッファという様に呼称を変え、親方が判断して投入するものではなく、みんなで共有して、遅れない様に投入するものという扱いになっています。50/50のスケジュールを課すというTOC-CCPMのやり方もアジャイル開発と融合することで、言われたからするのではなく、皆自分から困難に挑戦し、そして成長していっています。
そして、その結果、今ではTOC-CCPFよりもより高い成果を出しています。個人的には相性が良いとさえ、思っています。

こんなに相性が良いのに、何故、多くの人が『TOC-CCPMアジャイル開発は相反するものだから相容れない』と言うのでしょうか?

それは2つの要素の為と私は考えています。
まず、一つ目は『TOC-CCPMはプロジェクトマネージャが行う管理手法だと大抵の本やサイトでは説明されている』ことです。
そして、二つ目は『TOC-CCPMアジャイル開発の相性が良い』と言っている本がないことです。

この2つの要素によって、やり方を自分で考えず、たくさんのことを覚えることを大事だと思っている人からすれば、『TOC-CCPMアジャイル開発は相反するものだから相容れない』という話になります。

議論が出来る人と出来ない人の差は『やり方を自分で考えることよりも、たくさんのことを覚えることが大事』だと思っているのか、『たくさんのことを覚えることよりも、やり方を自分で考えることが大事』だと思っているのかの差なのではないかと考えています。

『やり方を自分で考える』ことは誰でもできることです。
『やり方を自分で考える』ことは特別な能力がなくてはできないものではありません。
でもほんの少しだけあなた自身が努力することが必要です。

*1:上記講演資料の17ページまで

*2:TOC-CCPF