36-ハードワークは報われない

プログラマが知るべき97のこと」の36個目のエピソードは、プログラマの働き方に関する話です。プロのプログラマとしてどんな姿勢で仕事に臨むべきかについて書かれています。

神経を集中させる時間、製品を産み出すのに使う時間が醜に30時間を超えるようなら「自分は働き過ぎだ」と考えるべきでしょう。

働かせるのも働くのも大好きな日本人からしたら週30時間という数字は誤植に思えるかもしれません。出勤が週に5日とすれば1日6時間、残業時間が週に30時間というケースすら珍しい話ではないでしょう。そのような時間をかけてもプログラマの仕事は、本来報われるものではありません。
プロのプログラマであれば、集中してプログラミングを行います。人間が集中して作業できる時間はそれほど長くありません。せいぜい4〜6時間も集中して作業をすれば疲労困憊です。ペアプロを実際に行ってみると解るのですが、プログラミングをしている中で、集中できていない時間は多いものです。ペアプロを導入すると、お互いにサボることができなくなります。したがって、作業時間のほとんどを集中することになり、非常に疲れます。もし、あなたがマネージャで、プログラマにより密にプログラミングをさせたいならばペアプロを導入してみると良いでしょう。
プロのプログラマであれば、日々の学習をする必要があります。毎朝7時に自宅を出て、帰宅が23時という生活が常習化したとしたら学習をする時間を取ることができません。技術は日々進化している中で、プログラマが自分の価値を保つためには日々新しいことを学ぶ必要があります。常に新しいことを学ぶ事のできる業務であるならば自分で学習しなくとも自分の価値を保てますが、それがずっと続くことはないでしょう。自分の時間を確保して学習できなければ、自分の価値は減っていくだけです。それが続いたらならば、何れは消耗品のように使い捨てられてしまうと覚悟すべきです。
プロのプログラマであれば、効率良く作業を行うための努力は惜しみません。特に同じような作業のルーチンワークはプログラミングの最も得意とする作業です。ビルドの自動化、テストの自動化、コードの静的チェックなど自動化をすることで効率化を行うでしょう。効率化のための作業が面倒であると感じる人はプログラマにはいない筈です。
プロのプログラマであれば、自分の仕事に責任を持ちます。「やる」と宣言したならば多少は無理をしてでもやり遂げます。その責任を果たすためにはある程度の余裕が必要です。余裕を持つくらいならば。詰めこんでやった方が効率がいいと考えるのはプログラマをコーディングする機械と勘違いしている人の早急で浅はかな考えです。「客の要求だ」と20時間連続で脳外科手術を行わせる事は愚かな行為と気付くべきです。本当に必要な時のために日々の努力を欠かさず、余裕を持つのがプロです。

では、どうして私たちの職場環境は、そんな理想とほど遠いのでしょうか?薄々は感じている事かと思いますが、プログラマではない人達と仕事をしているのです。プログラマの多い職場であれば、自然とハードワークは減ります。そして、プログラマ同士の仕事は楽しいものです。

仕事には長い時間をかけず、集中して短い時間で終わらせるように心がける。より効率的な問題解決方法を探す努力を常にする。プロジェクトに貢献するというのはそういうことです。

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

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