ソフトウェア開発プロフェッショナル | それゆけ西表島

ソフトウェア開発プロフェッショナル

著者: スティーブ・マコネル, 松原 友夫, 山浦 恒央
タイトル: ソフトウエア開発プロフェッショナル

----
「プロセス指向」と、「実力主義」という二つの組織的な開発スタイルを対比させると面白いものが見える。プロセス指向の開発は、綿密に計画を立て、きちんと定義したプロセスを適用し、時間を有効に使い、ソフトウェア開発でのベスト・プラクティスをうまく利用することで効率を上げる。この開発スタイルのプロジェクトが成功するのは、常に、開発プロセスを改善しているためだ。最初は効率が悪くても、プロセス改善を常に意識していれば、回数を重ねるに従い、効率が上がる。
一方、実力主義による開発には、「スーパー・プログラマ指向開発」とか、「個人能力増強型」開発など、いろんな名前がついている。実力主義開発の特徴は、現時点でかき集められる人員中、一番優秀なプログラマを選び、この日までに死んでもやると約束させ、好き放題できる権限を与え、極限までヤル気を出させ、プロジェクトが完了するまで、週に60、80、100時間も働かせることだ。
(途中略)
ソフトウェアの研究者の間でよく起きる議論として、プロセス指向がよいか、各個人に権限を与える方がよいか(すなわち、「実力主義の開発方法がよいか)がある。この2方式が背反すると考えるのは正しくない。プロセス指向は効率的だし、開発担当者へ権限委譲する方式も理にかなっている。二つが共存しても、何の問題もない。
----

いままでのソフトウェア開発論では、方法論で全て解決するとは思わないが、俗人的なままではまずいのではないか、という主張がわりと多かったように思う。特に会社ではプログラマ個人の能力に依存するのは問題があるという意識が強かったのでは無いだろうか。

この本によると、やり方次第で理に適いもするし、リスクが高くなるばっかりになる場合もある、と至極真っ当な話が書いてある。わざわざ、意識の高い能力のある新人を型にはめるよりも、適材適所で最大限に能力の発揮できる仕事を任せた方がいい、という話である。

もっとも、それはあくまでも人材の使い方であり、たまたまうまくいくようなモデルでは会社が続かない。この本の後半では、組織的に人材を育成するにはどうすればいいかということを、実例を挙げて説明している。

いろいろな必要なスキルについて定義しているのだが、興味深かったのは、知識がない段階から、入門者の段階にステップアップするのに必要な条件として、「文献を読む」ということが大半を占めていたことだ。

まずは基礎的な知識は、文献から学ぶのが効率的であるということだ。絶対的に知識が不足していては、コミュニケーションもおぼつかない。ただ、日頃からあまり本を読んでいない人にとっては、ただ本を渡されてもなかなか読めないだろう。

ましてや会社で8時間も10時間もプログラムを組んだ後で、帰ってから本を読めと言われてもなかなか時間がとれない。ここはいっそのこと、本当に会社が教育する気があるのであれば、毎日1時間ぐらいは社員教育用に時間を割いて、本を読む時間を強制的に作るぐらいでもいいのかもしれない。

どの社員になんの文献を読ませるか、というところが社員教育の要である。ただ本を渡しても、だらだら読むだけでは意味がないので、1時間なら1時間で1冊を読ませる訓練をさせるのが大事だ。

どこがポイントでどこがどうでもいい部分なのか、コツを掴めば後は勝手に本を読んで成長していくだろう。アウトプットだけではなく、インプットもスケジュールに組み込むぐらいの気持ちでいれば、いざというときに技術力不足でデスマーチということが避けれるかもしれない。

日々学習しつづけないといけないよ、という話でした。