こんにちわ。仕事における評価を上げる方法を考察中のプログラマー「ヒロユキ」と申します。
「仕事で評価されるための方法」と聞くと、いくらでも手段があるため答えを求めることが難しそうです。
一方で「このような仕事をしている人は仕事ができない」というものは、案外簡単に見つけられたりします。
出来る人の特徴は千差万別ですが、出来ない人は共通点が多いように思えるからです。そこで私は、出来ない人の特徴から逆説的に出来る人になる方法を考えるようにしています。
そして出来ない人の特徴の一つに「他人の仕事に興味がない」というものがあります。何故駄目なのかについて詳細に記載してみたいと思います。
自分の仕事だけやっていると視野が広がらない
始めに自分の仕事を紹介しておきたいのですが、私はSIerでプログラマーとして勤務しています。
SIer はシステムを作って納品をすることが仕事となりますが、非常に分業が進んでいるという特徴があります。

私は上記の弱小SIer勤務ですが、自社に作業が来る時点でかなり作業が細分化されてしまっていて、システムの全体像が掴みにくいというのがあります。
そこで、出来ない人は「自分の作業担当はプログラムだからプログラムを頑張ってやるぞ!!」と考えてしまいます。
しかし、そのような人はシステムの全体像を掴もうとしないため良いプログラムを書くことは出来ません。
何故なら、そのプログラムがどのように使用されるかがわからなければ、例外などにどんな考慮が必要かわからないからです。
上流工程で完璧な設計がなされていれば、言われたことをやっているだけでよいのですが、殆どの場合は抜けがあります。
その場合は設計の問題であるため、自分の責任問題にはならないという考えもあるかもしれません。
しかし人は他人が悪いと考えがちであるため、残念ながら周りからの評価は「言われたことしか出来ない使えない人」になってしまうわけです。
暇ができたら周りの仕事を学習しよう
プログラマーにありがちな思考として、「仕事中に暇が出来たらプログラムの学習をしよう」というものがあります。
しかし、そんなものは家に帰ってから勉強すれば良いのであって、職場でしか学習できない作業をするべきです。
それは「他人の仕事内容を見る」です。
この時、仕事内容を見る相手は自分より上の人間が望ましいです。
例えば、自分が開発メンバーで、残念ながら顧客とやり取りできる立場にいない場合は、部屋の中にいる一番権威が高い人の仕事を観察します。(多くの場合は、プロジェクトリーダーとかですかね)
その人の仕事の内容を自分の頭の中に叩き込みます。
他の人が何をやっているかを把握していくことで、プロジェクトがより広い視点で理解できるようになり、積極的に提案なども出来るようになります。
逆に他人の仕事内容を見ようとしない人は、自分がやっていることしかわからないため、出来ても自分の作業に対する改善に留まってしまいます。
また、他のチームなどの作業状況を見ることで、「自分のプログラムにはこのような考慮が必要だな」と言った結合後のことを考慮したコードを書けるようになります。
具体的にどのように他人の作業を見るのか
ソース管理ソフトを使用していないプロジェクトは殆どないと思うので、もし観察したい人がコーダーの場合は、単純にGITやSVNのコードを見ればよいということになります。
観察したい人がマネージャーの場合は、その人が顧客とやり取りするために作成した資料、チームを管理するために作成した資料を全て確認します。
その際にどうしてこの資料が作成されたのかということを、考えながら観察したいところです。
問題は相手が顧客である場合です。客先常駐で同じ職場で働いている場合でも、基本的に相手との距離が遠いため、仕事内容を観察することが難しいです。
その場合は、相手の業務内容を勉強することが良いかと思います。
自分が実際に実践していたことですが、顧客(中堅SIer)が会計システムの設計をしていたので、まず簿記の勉強をして基本的な業務を理解しました。
そうすると打ち合わせなどで、相手に専門的なことも確認できるようになってくるため、相手から情報を引き出しやすくなり、相手の仕事の把握につながっていきます。
自分の立場が上流でもやることは変わらない
ここまで、私が弱小SIer勤務の経験を語ってきたため、「上流はシステム全体を把握しているから他人の仕事を考えるのは不要」と思われた方もいるかも知れません。
しかし、設計を行う上流になればなるほど業務内容の把握が必要となるため、基本的には他人からの情報収集は必須になってきます。
そして、出来る人ほど下流の仕事に対しても理解があるというイメージですね。
私のような弱小SIer勤務の目線でみると「こいつと一緒に仕事したくない」という人の典型は、「プログラムを全く知らない人」です。
このような人は上流企業にはたまにいらっしゃるのですが、具体的な指示出しがほぼ出来ないという方が殆どで、スケジュールや顧客調整なども上手く出来ないです。
まとめ
プログラマーという職業についていると、空いている時間にプログラムの知識を増やそうとしがちです。
しかしそれは家でやれば良い話で、職場で最も重要なことは「他人がどのような仕事をしているか観察し、視野を広げる」です。
どんなにプログラムが出来る人でも、これが出来ない人はチームとして使えない評価になってしまいます。
自分の経験上、案件にアサインする際に「どんな言語なの?」等を気にしている人は要注意ですね。私は顧客がどのような業務なのかのほうが気になります。