プログラマーの長時間労働・残業が多い理由と対処法を元エンジニアが解説します。
働き方改革という言葉が生まれて久しいですが、プログラマーといえば、長時間労働・残業というイメージが多いと思います。
元プログラマーとしての経験から、プログラマーの長時間労働・残業が多い理由と長時間労働や残業を防ぐ方法を紹介します。
実態はどうだったか?【私の経験】
単なる一個人の経験なので、この内容をもってプログラマーの長時間労働・残業が多いとか少ないということではありません。
結局のところは、会社や部署、個人によって様々なので単なる一個人の経験ということを理解頂きたいです。
毎月毎月長時間労働が蔓延していたというわけではない
私の場合は毎月毎月、長時間労働をしていたということはなかったです。私以外の人をみても一年中ずっと忙しいという人はいませんでした。
特に忙しかったのは新製品をリリースする2ヶ月前から直前くらいです。その時の月の残業時間は50時間前後でした。
過労死ラインが1ヶ月100時間の時間外労働なので、それほどではなかったと思いますが、後述する帰宅後の作業もあったので個人的には結構きつかったです。
帰宅後は直接的な業務はできない
会社のパソコンや資料などの情報は持ち帰ることができなかったので、帰宅してから直接的な業務をするということはなかったです。
ただし、帰宅後も業務に関係のある情報を調べたり、勉強をする必要があったので、そのような作業をしていました。
忙しい時であれば、基本的に寝ている時以外はなんらかの仕事のことを考えなくてはいけないという状態でした。
勤怠上の残業時間を45時間が上限
私の場合は、会社にサービス残業を強いられていたということは無いです。
ただし、勤怠上は45時間以上の残業をつけることができなかったので、45時間を超えた場合はうまく翌月以降にまわしたり、残業をなかったことにするということが行われていました。
これは私だけでなく、部署全体としてそういうことが行われていました。
もちろん問題のある行為なので、厳しい会社であればPCのログと勤怠のデータを照らし合わせるということを行って、そのような改ざんを防いでいる場合もあります。
なぜプログラマーは長時間労働になるか(というイメージがあるか)
納期の期限が決まっている
プログラマーにとって納期というのは、守らなくてはいけないものの一つになります。
特に大きなプロジェクトの納期というのは、厳しく守る必要があります。上司が「この資料来週まで作ってきて」というのとは訳が違います。
さまざまな関係者が関わるので、会社の存続のために納期は絶対に厳守しなくてはいけません。
そのため、その納期を守ろうと会社全体で長時間労働が発生する仕組みになっています。
早く仕事すれば別の仕事が来る
他の職業はどうかわかりませんが、プログラマーは早く仕事を終わらせれば確実に別の仕事がやってきます。
早く終わらせれば休んでて良いなんていうことはありません。さらにひどい場合は早く終わらせると簡単な作業だったと思われることすらありえます。
基本的にプログラマーに同じ作業というのは存在しないので(人が同じ作業をしないためにプログラムを作る)、過去の人と比較できないのでこのようなことが起きます。
早く仕事すれば別の仕事が来るので、結果的にエンドレスで仕事が舞い込んできます。
やろうと思えば残業できる環境にある
身一つ、PC一つで仕事ができるのでやろうと思えばいくらでも残業できてしまう環境にあります。その代わりにリモートワークなども可能になってくるという良い面もあります。
詳しくないのであまり適切ではないかもしれませんが、例えば建設現場であれば、夜は仕事ができないということがあると思います。プログラマーにはそのような制限はありません。
もちろん会社によっては、パソコン持ち出せない・労務管理もしっかりしているのでやろうと思ってもできない場合があります。
でもそれは、一部の大手企業のなかでもいわいるホワイトと言われる企業に限った話です。多くの中小企業ではやろうと思えばいくらでも残業できてしまう環境がほとんどです。
やろうと思えばできるということはやらせることもできるので、ブラック企業はそれを利用します。ホワイト寄りの企業であっても、業務に対する責任感から、個人が長時間労働をしてしまうということができてしまいます。
プログラマーが残業時間を減らす方法
納期にとらわれない会社に入る
例の一つとして自社の製品を作っているIT企業などです。
自社の製品を作っている場合は、納期というのは基本的に内部で定めた期限が多いので、仮に問題が発生しても調整がしやすいです。(もちろんすべてがすべてではないです。)
逆に、作業を委託されているようなIT企業だと、依頼しているお客様が関係してくるので、簡単に「時間が足りなくてできませんでした」とは言えません。
アジャイル開発で開発を進めているIT企業
また、ウォーターフォールではなく、アジャイル開発で開発を進めている企業もおすすめです。
ウォーターフォール型の開発は上流工程である要件定義から各工程を順場に完了していく開発手法です。
例えば、ウォーターフォール型だと、プログラミングの工程で問題が発生した場合、前の工程への出戻りが発生します。当初の予定より時間がかかるので、それを挽回しようと長時間労働が発生しやすいです。
一方アジャイルは、簡単に言うと1〜4週間程度の短い周期で実際に動くものを作っていき、それを繰り返していく開発モデルです。
その中で顧客の要望を組み込んでいき製品を常にブラッシュアップしていく開発手法になります。
つまりアジャイル開発をしている = 納期という概念がないということになります。(間違った認識でアジャイル開発をしている場合を除く)
なので、正しくアジャイル開発ができているIT企業は長時間労働が発生しにくいという側面があると思います。
断る(断れる環境に身を置く)
そして、プログラマーが残業時間を減らす方法として一番大切なことは、「断る」「頑張りすぎない」ことです。
そのためには、断れる環境に身を置くということが大切です。現状が、周りも長時間労働が常態化していて、定時で帰ったら冷たい目で見られるような会社であれば、断るということができないと思います。
頑張りすぎない
もうひとつプログラマーが残業時間を減らす方法としてあるのが、「頑張りすぎない」ということです。
先にも示したように「早く仕事すれば別の仕事が来る」うえに「やろうと思えば残業できる環境にある」ので、自分次第で仕事量を調整できる場合もあります。
悪く言うとサボるということですが、実は長く働いている多くのプログラマーが直感的に行っていることだと思います。
まとめ
おそらく、ここに記載している「プログラマーが残業時間を減らす方法」を見てもピンとこない人も多いと思います。
納期にとらわれない会社なんて稀だし、断るとか頑張りすぎないということが現実問題としてできないということがほとんどだと思います。
鬼のような上司がいる会社で断るなんてことはできないと思います。
結局のところは長時間労働に悩まされている場合は、スキルを磨いてより良い環境に転職するしか方法がないです。