業務知識ゼロ、研究開発支援を主業務とする技術屋の述懐

仕事を楽しむための3つの心得

»

 中学生のとき、学校指定の連絡帳を使っていました。毎日、連絡事項欄にぎっしり日記を書かされ、担任に寸評をもらうことになっていました。作文が嫌いなわたしですが、この連絡帳は嫌いではなかったです。というのも、各ページの欄外に、いろいろな格言が載っていたからです。その中でも気に入っている格言がコレです。

仕事が楽しみなら人生は極楽だ。
仕事が義務なら人生は地獄だ。

 実家で農作業を手伝う(戦力になっていたかどうかは別として……)ぐらいで、仕事をしたことがない時は気にも留めなかった格言ですが、この年になって実感しています。

 わたしは、運良く「デスマーチ」と称されるような過酷なプロジェクトを担当したことがありません。「火消し部隊」と揶揄されていた派遣先において、召集令状が配られるタイミングに別プロジェクトを担当していて、デスマーチから逃れ続けてきました。

 過酷なプロジェクトを経験したことのないわたしが言っても説得力に欠けるかもしれませんが、創造的な一面を持つITの仕事は、思ったより遊べます1。同じ仕事をするなら、楽しまなければ損です。すべての仕事で遊べるとは思っていませんが、わたしが仕事を楽しむための心得を紹介します。

#1 未経験の作業に取り組むべし

 初めて経験する作業というのは、わたしの好奇心を掻き立てる絶好のネタです。経験がないために不安になることがありますが、そういうときは、

「世界中には、自分と同じ作業をしようとしている人が必ずいたはずだ」

と自分自身に言い聞かせ、彼らが残してくれた作業ログを掘り出すべく、キーワードを駆使してインターネット検索を行います。

 時間が許す限り、好奇心を満たすために調べ尽くしましょう。ただし、引き際も肝心です。成果もなく延々と調査してしまうのはただの進ちょく遅れですので、行き詰まったら「実現が困難な理由」を報告して切り上げましょう。代替案が添えられればベターです。

 注意すべきは、インターネット上で公開された情報が必ずしも自分たちにとって有益とは限らないことです。意図的に失敗へ誘導するようなWebサイトは少ないと思いますが、プラットホームの違いやバージョンの違い、作業ログの欠落などによって、期待する現象を再現できないかもしれません。

 話半分、自分でちゃんと確証を取りましょう。

#2 自分の作業を効率化すべし

 作業をしていると「面倒くさい」「煩わしい」と思うことがあります。わたしは真面目な性格ではないので、「仕事だから仕方がない」としぶしぶ作業をする気はありません。こういう場合、「面倒くさい」や「煩わしい」と感じる作業には、必ず「楽(らく)」する方法があるはずだと考え、徹底的に「楽」する方法を探します。

 例えば、

  • 自分で実装しなければならない機能(または、その一部)の代替となるAPIを探す
  • メモリリークやメモリ破壊を検出するためにフリーのメモリチェックツールを探す
  • 単純作業をスクリプト化する
  • Javadoc相当のドキュメントを生成する代替ツールを探す
  • 新しいバグ・トラッキングツールやバージョン管理システムを評価。気に入れば積極的に活用する

 プラットフォームやプログラミング言語の違いのせいで、日ごろから使い慣れたツールが使用できない場合に、代替手段を探すことから始めてみるといいと思います。

 楽する方法を探していると、「無知が煩雑さを生んでいる」ことに驚かされるのではないでしょうか。わたしは、いまだに「あのプロジェクトのときに知っていれば……」と後悔することがあります。

#3 他人のプログラムを丸裸にすべし

 他チームから提供されたプログラムやOSSを活用する場合、期待どおり機能してくれればよいですが、そうでないことがあります。他チームのプログラムであれば、現象を報告して改善されるまで待機……でもよいのですが、せっかくなので他人のプログラムをデバッグしてみましょう。ソースコードがあれば、簡単にデバッグできるはずです。

 現象のほかに原因と思われる箇所を一緒に報告すると早急に対応してくれるはずですし、副次的に他チームの技術力を知ることもできます。

 これは、わたしがはじめてJavaプログラミングを行ったプロジェクトのリーダーが行っていたことです。他チームに問い合わせると時間がかかるからプログラムをコード・リバースして仕様を調べたり、不具合を特定したり……。当時、わたしは「ここまでやるか、普通」と思いましたが、顧客がそこまで調べるなら軽々しく質問できないので、わたしも他人のプログラムを調べるようになりました。

 どうしてもソースコードが入手できない場合は、やむをえずコード・リバースもしていましたが、最近はライセンス上、コード・リバースできないものもありますので、気を付けてください。

 他人のプログラムを読むことは、特にプログラミング初級者には重要だと思います。自分に課せられた課題に対して他人がどのようなアプローチで解決しているか、なぜこのアプローチを採用したのか、自分のアプローチとどう違うのかなど、参考になることが多いはずです。

■おわりに……

 作業の対価として給料をもらっている以上、過酷でつまらないプロジェクトは不可避です。経験上、複数プロジェクトを担当させられるとき、少なくとも1つはつまらないプロジェクトでしたし、今も副業務として担当するプロジェクトはつまらないプロジェクトです2。それでも「仕事だから仕方がない」と義務感から取り組むより、「プロジェクト自体をハックしてやる」気持ちで取り組んだほうが楽しめるのではないかと思います。

 主業務だけ担当させてもらえれば、わたしの技術屋人生は極楽……なんですけどね、たぶん。


1 最近、SIMロックフリーのNexus Oneを研究所から借用したのですが、「コレで遊んでください」と主任研究員に言われてしまいました……。

2 わたしは仕事嫌いなので、無駄な抵抗とは分かっていても、大人気ない行為と分かっていても、最後まで「担当したくない」ことを猛烈にアピールします……。何度か派遣先の主任(当時)と怒鳴りあいの喧嘩にまで発展してしまいました(苦笑)。

Comment(4)

コメント

エンジニアが仕事をやっていく上で、いかにもめげそうな課題に対して、どう対処していくのか、中学校の先生の格言と3つのポイントで非常によくまとめられていると秀作のコラムですね。それでもまだ気のすすまない仕事はあったり、抵抗したりすることも告白していることが、またリアルっぽくて、まさに「エンジニア道」そのものを語ってますよ。

みながわけんじさん、はじめまして。

「仕事が楽しみなら人生は極楽だ。仕事が義務なら人生は地獄だ。」という格言は中学校の先生の格言ではなく、連絡帳の欄外に書かれたマクシム・ゴーリキー氏の格言です。中学校指定の連絡帳には、著名人の格言が欄外に記載されていました。

このほかにも、

 わたしたちが不安を抱いていることの 99%は、現実には起こらないのです。

など、この歳になれば理解できる格言・名言が記載されていました。ただの連絡帳でしたが、わたしには良書(?)でした。

いつも楽しく観ております。
また遊びにきます。
ありがとうございます。

履歴書の書き方の見本さん、はじめまして。

わたしは作文が苦手なのでコラムを公開するまでかなり苦労していますが、報われました。コメント、ありがとうございました。

コメントを投稿する