36 ハードワークは報われない(Olve Maudal) 『プログラマが知るべき97のこと 』

プログラマが知るべき97のこと

本記事は、株式会社オライリー・ジャパンより出版された『プログラマが知るべき97のこと』の中からひとつのエッセイを取り上げ、そのエッセイをクリエイティブ・コモンズ表示3.0の条件下で転載したものです。

本書の各々のエッセイは、オープンソースモデルに従い、ほぼ無制限で利用が可能です。クリエイティブ・コモンズ表示3.0の条件下で、自由に使用することができるのです。つまり、どのエッセイも、著者の名前を明記すれば、自由に転載、改変が可能であるということです。

『プログラマが知るべき97のこと』はじめに(p.XII)

なお、原書(英文)のエッセイは、下記のWebサイトで公開されています。 Contributions Appearing in the Book - Programmer 97-things

36 ハードワークは報われない
オルヴ・モーダル (Olve Maudal)

少ない労力と時間で多くを産み出す方法を探す

プログラマという仕事は、時に、懸命に働いても意味がない、ということがあります。長時間オフィスにいれば、プロジェクトに多大な貢献をしているような錯覚に陥ることもあるし、同僚たちもそう思ってくれることがあります。

しかし、事実はまったく逆で、自分の働く時間や労力を減らせば減らすほど、プロジェクトへの貢献は大きくなると言えるのです。ときには、頑張って働くよりも、働かずに済む努力をした方が、はるかに大きな貢献ができることもあります。

神経を集中させる時間、製品を産み出すのに使う時間が週に30時間を越えるようなら「自分は働き過ぎだ」と考えるべきでしょう。自分のかけている労力を減らすことを検討する必要があります。もっと効率的に働く方法、少ない労力と時間で多くを産み出す方法を探さなくてはならないということです。

取り組みながら絶えず学ぶことができる仕事

一見してこれは直感に反する話なので、異を唱える人もいるでしょう。しかし、プログラミング、ソフトウェア開発という仕事の特性を考えれば、なぜこのように言えるかがわかります。

プログラミング、ソフトウェア開発は、取り組みながら絶えず学ぶということができる仕事です。仕事をすればするほど、問題領域についての理解は深まり、同じ目的を達するために必要な労力と時間は徐々に減っていきます。仕事が効率化されるのです。

自分の仕事にどんな無駄があるかを常に観察し、その結果を後の仕事に反映させていけば、着実な効率化がはかれます。

ソフトウェア開発プロジェクトはオリエンテーリングをしながらマラソンをするようなもの

プログラミングのプロの仕事は「塗装された道路を、予め定められたゴール地点めざして猛烈に走る」というものではありません。ソフトウェア開発プロジェクトは通常、オリエンテーリングをしながらマラソンをするようなものです。

しかも走るのは暗闇で、頼みにするのは、大雑把な地図だけです。一方向に闇雲に、しかもすごいスピードで走れば、感心してくれる人はいるでしょう。

しかしそれでプロジェクトが成功するわけではありません。第一、後先を考えずに走って途中でペースが極端に落ちることがあっては困ります。一定のペースで走り続けながら、自分の現在地と向かっている方向を常に確認し、コースを絶えず微調整していくことが大事なのです。

知識と技術の研鑚を怠ってはならない

学ぶのは特定のプロジェクトについてだけではありません。ソフトウェア開発や、プログラミング技術全般についてもずっと勉強を続ける必要があります。

勉強の手段は様々です。本を読むのもいいでしょうし、カンファレンスへの参加や、他のプログラマとの情報交換なども役立ちます。新たな実装テクニックを試したり、作業の効率化に役立ちそうなツールを探したり、使い方を調べるといったことも大事でしょう。

脳外科医や航空機のパイロットと同じく、プロのプログラマなら、知識と技術の研鑚を怠ってはならないのです。それには主に、帰宅後や休日などの時間を利用することになります。会社の仕事で夜遅くまで残っていたり、休日出勤をしたりしていたりすると、それができなくなります。

脳外科医が週60時間も執刀していたとして、そんな医者にかかりたいと思うでしょうか?かかりたい人はいないはずです。プロには、備えるための時間、知識と技術を高める時間がどうしても必要なのです。

ケージの中のハムスターのような仕事をすべきではない

仕事には長い時間をかけず、集中して短い時間で終わらせるように心がける。より効率的な問題解決方法を探す努力を常にする。プロジェクトに貢献するというのはそういうことです。技術力を向上させ、自分の行動パターンを振り返り、改善に務めることも、プロジェクトにとってプラスになるでしょう。

決して、ケージの中のハムスターのように、ただその場で車輪を回転させているだけ、というような仕事をすべきではありません。そんなことをすれば、自分自身とプログラマという職業を貶めることになります。

プロのプログラマが週60時間、ずっと神経を集中させてひたすらコードを書き続けるというのは、とても懸命なこととは言えないでしょう。プロはただ、がむしゃらに働けばいいというものではありません。プロの仕事には、入念な準備と効率化のための努力、そして日々の反省と絶え間ない変化が必要なのです。

プログラマが知るべき97のこと
オライリージャパン
売り上げランキング: 10,950