匠の相駕籠

ソフトウェア開発者の日常とオピニオン - メメントモリ公式ブログ『匠の相駕籠(たくみのあいかご)』

2つのタイプのマネージャー

 ソフトウェアを作っていると、2つのタイプのマネージャーと出会う。

 

 ひとつは、大まかな方向性だけを示して、あとは開発者の裁量にまかせて、いい感じにできたらそれで OK というタイプのマネージャー。このタイプのマネージャーの場合、開発者に与えられている権利は大きいため、開発者の視点からはやりやすい。問題は、クオリティのコントロールが難しいこと。ヘボな開発者は、ヘボな結果を生み出すが、ときにはそれを許容できる度量の広さが必要になる。許容しきれずに、トラブルに発展するということもありうる。

 

 もうひとつは、品質を完全にコントロールしようとするタイプのマネージャー。ほぼ完璧な仕様書を作り上げて、そのとおりに開発者が実装することを望む。柔軟性がないわけではない、仕様変更は可能なのだが、なにか仕様と違ったことをしようとするならば、すべてマネージャーに話を通さなければトラブルになる。

 

 

 先日、あるウェブディレクターの方とこの話をしていたのだけど、ディレクターの言い分としてはこのようなものがある。

 まず製品や開発にお金を出しているのがお客様である以上、お客様が納得していないものを作ることはできない。そのため、ディレクターというのは、まずお客さんと詳細な仕様を合意する。

 

 お客さんと合意したものがあるのに、それが開発の都合で変わっては問題だし、変えるのは構わないいしても、なんの連絡もないのは困る。仕様書と違う部分は、全てお客さんに連絡と合意を取らなければ、トラブルに発展し、それはプロジェクトの失敗にも繋がりかねない。

 

 

 これはビジネスである以上、当然の言い分である。

 

 

 完全に固まった要求をベースに物を作り上げると、何が起きるのか?

 

 まず本質的に、ものづくりは相当複雑で大規模な機能の塊で、事前の設計ですべての詳細を考慮しきれることはない。ある程度、進みながら臨機応変に決めたり、変えていかなければ仕方がないものがある。

 

 ほとんどの開発者というは、コミュニケーションが好きなのではなく、美しいコードを書いたり、自分の世界をコードで組み立てるのが好きだ。コミュニケーションが苦手でなくとも、毎日毎日、要求の確認のために2回も3回もディレクターと話をしたいわけではない。

 相手と意見に違いがある場合は、根気強く説明する努力も必要になる。

 

 結局、言われてあるとおりに作るのが、開発者にとって一番気楽な手段となる。

 

 そしてよく起きていることだが、言われたとおりに作った結果、誰も望んでいなかったものが生まれてしまう悲劇がおきる。ソフトウェアの開発には、非常に多くの労力と、時間がかかるのに、それがなんの人の利益にもならなかったというのは、情熱を傾けている開発者にとってもツライことだ。

 

 

 ソフトウェア開発は、それについての最もエキスパートなのは、そのコードを書いている開発者だ。それにどんな問題が含まれていて、どうするべきがベストかは、基本的には開発者が一番知っている。

 

 だけど、ものは一人では作れない。

 

 お客さんとの合意やコミュニケーションにバランスを置くこと。それとこうあるべきだというのを、開発者が主体的に決めていくことのバランスは難しいと思う。

 

 ディレクターがパーフェクトマネージメントをして、あらかじめ決まったものを作り上げるというのは幻想だ。そして一方、開発者が主導して作ったものが、お客さんに必ず喜ばれるかというと、そうでもない。マーケットを無視して作られた、不幸なプロダクトは掃いて捨てるほど例があるのだ。

 

 

 いろいろ意見交換していたけど、結果的に、わたしはどうやって行くべきなのか、まだよくわかっていない。コントロールと自由の絶妙な配分、使うべきところと使わないほうが良いところについて、まだまだわからないことだらけだ。