一流の開発者へのヒアリング

優れた仕事をする技術者は、一体何を考えて作業をしているのかずっと興味がある。どのような自己研鑽を行い、どんな事に注意を払ってコードを書き上げ、どの視点から技術を評価しているのだろうか?もちろんIT業界にはその類の偉人が既に存在しているし、本やインタビュー記事でその片鱗を伺い知ることは出来るものの、一緒に仕事をしたわけでもないし、直接話をしたこともない人を師と崇めるのも少々無理がある(ような気がする)。

そんな訳で同じチームで仕事をした開発者、協力会社や派遣で来ている人の中で、優れた成果を残す技術者に根掘り葉掘り話を聞いてみるのが好きだったりする(相手は少々迷惑かも知れないけど)。そんな技術者の考え方を学ぶのは自分のためになるし、チームのメンバを導く上での良いお手本だったりする。今回、話を聞いたのもその1人。断続的に長期に渡って仕事をしてきた仲なので、かなり率直な意見なども聞けたりするので面白い。以下、彼の話より抜粋。

  • 自分が永遠にコードをメンテナンスしていくわけにも行かないので、いつ誰が引き継いでも良いように資料の作成は欠かさず行い、ソースコードへのコメントも常に記載している。
  • 仕様書では書ききれない内容はソースコードのコメントへ、逆にソースコードのコメントには書けない内容は仕様書へ記載して、双方を参照すれば全ての情報が理解出来るように配慮している。
  • ソースコードの変更、修正を重ねるに連れて、仕様書との乖離が大きくなるのは好ましくないが実際問題として仕方ない。資料が無いよりはマシだと思う。
  • 設計通りに作って正常系で動作するのは当然のこと。後は実動作に近い環境でデバッグを行い、異常系で発生する問題を潰すようにしている。
  • 最初のモジュール設計は重要。モジュールの各役割が明確に定められていれば、派生開発を続けても何とか対処出来る。最初の設計に失敗すると、後の開発は苦しくなってしまう。
  • 自分が開発に携わったことのない環境、言語に対する見積もりは非常に難しい。もっと自分の視野を広めておくべきだったと今になって後悔している。
  • 自分の技術は大したこと無い。当たり前のことをやっているだけ。

本人は謙遜しているが、アウトプットとして生み出すソフトウェアの品質や成果は、チーム内ではトップクラスだ。真に一流の技術者は驕るところが無いし、常に謙虚な姿勢を保っているように思う。彼のやり方を真似したら、自分ももう少し良いアウトプットを出せるのかも知れない。もちろん、この考え方が唯一ではないし、他にも上手いやり方や方法論は幾らでもあるだろう。でも、身近にいる開発者が、実際に作業を行った具体的なプロジェクトの内容を踏まえつつ話をしてくれるので、説得力は非常に高い。私にはもちろんのこと、隣で話を聞いていた若い技術者にも良い勉強になったと思う。



関連: