それでも開発プロセスは必要だ。

UPでもPIMBOKPMBOK*1でも良いんだけどさ、開発プロセスは、単に、「That's All」である事が重要で、
そのまま使う為のモノでは無いでしょ。
そのプロジェクトにとって必要な部分だけサックリとパクればよいかと。
っつうかね、開発プロセスの1つ1つの要素を自分で考えられる程、
賢い人なんてそう沢山は居ないのです。時間も無いし。
只、どれが役に立ちそうで、どれがいらなそうか判断するのは、
ゼロから生み出すよりも全然簡単だし、慣れればちょっとした時間で出来る。
その工数はどこから出てくるのかって?
必要になった時、数時間で叩き台作れる位の知識は日常的に用意しないとネ。
それが出来ない人とお話する気は無いので悪しからず。


プロセス通りにやれば、どんなシステムでも、出来るって訳じゃないけど、
プロセスを適用すると、成果があがり易くなる部分は必ず存在するし、
それは、大部分だと思う。
勿論、プロセスが中途半端なせいで、足りない部分はあるよ。
だからこそ、必要な部分だけを抜き出すって姿勢が必要なんじゃないかな、と。
ヒューリスティックな部分を、ヒューリスティックと認め、
そうでない部分を標準化したやり方で作業するのが良いと思うんだけどなぁ。
っつうかさ、何の基準も無しに、どうやって難しいかどうか判断するんだろうねぇ。*2


ちょっとわき道にそれるけど、妙なたとえ話をしてみる。例えば、「料理」。
500円で腹一杯食べられるマックのハンバーガーと、
一食数万円もする懐石料理を同列に扱うのはオカシイと思う。
どちらも方向性は違うけど、キチンとしたプロセスがある。
局所的に見れば、
マックは、長くても数ヶ月で客に食わせるモノを作れるようなプロセスだし、
京懐石なら、数年位じゃ包丁も握らせて貰えない。
何が言いたいかっつうと、成果に対する価値の比重が違うって事。
前者なら、数を捌く事と、最低限の一定した品質を保つ事が重要。
後者なら、伝統、技術、以外にも守らないといけない無形なルールがイッパイある。
最低限なんて事は全く無いし、数を捌く事なんて基本的に考えない。


ソフトウェア開発は、その両方の特性を中途半端に持ってると思う訳サ。
全てが「チャレンジングで、ヒューリスティックな」プロジェクトなんて沢山は無いっしょ。
っつうか、僕はそんなプロジェクトやった事無いから知らないだけだろうけど。
ある一部分が、「チャレンジングで、ヒューリスティックな」事はよくあるよ。
つまり2:8の法則って訳。
それを、何を勘違いしたか、2割の難しい部分だけを見て、開発プロセスはダメだって言ってないかい?と。
っつうかさ、2割の難しい部分に捕らわれて、余計な所で頑張ってるんじゃねぇの?と思う訳ですよ。
結局トータルで見ると、ちょっと落ち着いて他人の成果を拝借すれば、
サックりと出来る事を自前で頑張っちゃう人。結構いるんだよねぇ…。
それで、キチンと出来りゃ良いけど、結局、中途半端なショボイもの作っちゃうの。
最後に出来上がるのも、何だかみっともない感じなっちゃったりするんだよねぇ…。*3
みんな頑張ってるよねぇ……。


只、そんな現場を知らずに、まるで全能神であるかのように舞い降りるコンサルなんて、僕は信用しないよ。
「御社に足りないのは、開発プロセスです。開発プロセスが、ROIを劇的に上げ、うんちゃらかんちゃら…」
開発プロセスの部分は、時と場合によって、ツールだったり新しいテクノロジだったりするんだけどさ。
そういう時、僕が考えるのは、悪いのは開発プロセスじゃなくて、そういう事言ってる連中じゃないかな。と。*4
そして、そんな連中が寄って来やすい状況を作ってしまった自分達じゃないかな…と。


話を戻すと、
出来る範囲では、標準として、何らかの基準を設け、
作業を定量化した方が、良い事が多いと思うんだけどネェ。
最低限、定量化出来る部分と、定量化出来ない部分を切り分ける為に
開発プロセスの標準化は必要です。
簡単な事は堅く、難しい事は、コストをかけてやりたいからです。
そうじゃないと、頭1つ抜けてる技術者に、あまりに多くの作業が割り振られる事になります。
そして、僕は「簡単な事」を、誰かに任せてしまいたいです。
更には、何が、何故、「簡単な事」なのか、毎回いちいち説明するのは面倒です。
只、勘違いしてもらっては困るのは、「簡単」だからって、「自動化出来る」訳じゃない事。



標準化した開発プロセスが足を引っ張るなんてのは、
標準化した事自体が間違ってた訳じゃなくて、
中身が足りてなかっただけじゃないかな…と。
ま、サボる為の口実を、標準化されたプロセスに向けるのはよくある事だけど。
そういう人は、そもそもプロセスが標準化されていようといまいとサボるですよ。
「言われなかったからやらなかった。」
と、ね。




開発プロセスで、品質が向上すると言うけれど、
プロセスは、品質を一定させる為のモノ。
出来ない奴がある日突然出来る奴に変身する訳無いのは、
誰だって分ってる事だけど、
出来ない奴を出来ないなりに、一定の成果を出せるようにするのが、開発プロセス
って事を理解してない人は、いるんじゃないかなぁ。


ソフトウェア開発における生産性や品質は、全く計測出来ないって論があるけど、
あれにはちと賛成出来ない。
計測できる部分と、そうでない部分があるっしょ。
計測出来ない部分って、そんなに多くないんじゃねぇの?と思う訳。
まずは、計測できる部分を計測しようとするのって重要なんじゃないかなぁ…と。
確かに、金が絡むと話が色々難しくなるってのは分けるケドネ。


ソフトウェアが、常に全く違うモノを作っているってのも、違うと思うナ。
他と全く同じモノを作ってる部分だってあるんじゃないかねぇ。
只、それを共有する枠組みがチト足りて無いなぁ…と思う事はあるけどね。

*1:スペルミス…通りすがりさんありがとうございます。

*2:「技術者の勘?」

*3:それで、火消し野郎にお声がかかる訳ですよ。

*4:アレやソレには、超個人的な恨みもありますよ、そりゃ。