58FLOW

Android、行動経済学、ガジェットなどが好きです。日々感じたことなんかを書きます。

プログラマーが戦う見えない敵

はじめに

プログラマーという職業は(他の職業もですが)いろいろなものと戦わなければいけません。その中で人間関係や社内政治など多くの人が共通認識としている敵というのもありますが、目に見えない敵もいます。

f:id:flow58:20140319225027j:plain

非常識な打鍵音

プログラマーはロジカルな仕事という面もありますが、場合によっては仕様だとか設計だとかを考えなければいけないこともあってなかなかクリエイティブな仕事です。物事を考えなければいけないときにキーボードの音がうるさい人がいると集中できなくなってしまうことがあります。そして「うるさくキーボードを扱う人」はプログラマーの中にはあまり多くないのですが、「うるさいキーボードを扱う人」はたまにいます。静音タイプとそうでないタイプのキーボードがあってなぜかそうでないタイプをオフィス使いにあえて選ぶという非常識な考えを持つ人と戦わなければいけません。

対策

この敵は自分が気持ちよくなってしまうのでこちらが嫌な顔をしても気付かない強敵です。別のスペースを確保するか音楽を聞くかするくらいしか無いですが、他に何かいい方法内かな…

誰にも管理されていないタスク

開発時に普通にやらなければいけないことは何かしらの方法で誰が見ても分かる場所に明文化されている必要がありますが、開発がある程度進んでくるとそうではないものがでてきます。例えば非プログラマーから口頭で伝えられる追加仕様、あるいはプライベートメッセージでいきなり飛んでくるデバッグ機能の追加要望…。これは実際に必要な作業であっても工数がかかってしまうもので、そこに時間を取られていると本来のタスクに手を付けることが出来ず周りから見ると何も作業が進んでいないことになります。

対策

この敵は人間関係も関わってきて回避しにくい場合もありますが、プロジェクトに明示化されていないタスクに手を付けるべきではありません。プロジェクトで使っている管理ツールやメーリングリストへの投稿、あるいはプロジェクトの管理者に届かないタスクには手を付けないと宣言するなどして誰からでもタスクが見えるようにする必要があります。そうでなければ作業が遅れた原因が誰にもわからずにプロジェクトのスケジュール管理が出来なくなります。

独りよがりなものを作りたくなる欲望

プログラマープログラマーが喜ぶものを作るのが好きです。楽をするための手間を惜しまないとよく言われていて、プログラミングをしやすくするためのプログラムを作るのが好きです。また、汎用化というのが好きで実際にはその場でしか使わないようなものでもいろいろなところで使えるように汎用的なものを作ろうとしてその分工数を増やしたりします。その方が奇麗だから。しかしプログラマーの文脈から言えばこれは正しいことなのですが、非プログラマーからすればなぜそんなに工数がかかるのか説明されてもよくわかりませんし、プログラマーがよくわからないことをしゃべっているのでうまく丸め込まれてしまいます。本当はプロジェクトにとって必要なことではないのにプログラマー特有の美的感覚から余計に工数を割いて独りよがりなものを作ってしまいます。この敵は非常に厄介で、技術のあるプログラマーほど襲われやすくなります。

対策

もしこの敵に教われそうになったら、今作っているものがプロジェクトに必要なものなのかをもう一度考える必要があります。

おわりに

まだまだあると思いますがパッと思い浮かんだものを書いてみました。技術の習得や人間関係の他に戦うべき敵はたくさんいますね。