未来のいつか/hyoshiokの日記

hyoshiokの日々思うことをあれやこれや

素人をプロに育ててくれた社内コミュニティ

20数年前に新卒で入社したわたしを育ててくれたのは配属先の上司であり、社内エンジニアリングコミュニティだ。

最初のプロジェクトは日本語COBOLプリプロセッサを作るというものだった。大学でソフトウェアを学んだが、職業としてプログラムを組むという経験はなかった。プログラムを作ることのいろはをその会社で学んだ。

新卒の初心者プログラマの日常はこんな感じだ。

よ「プログラム書きました〜」、先輩「あれ〜、どこにファイル置いたの?チェックインした?」、よ「まだでした」、ぱたぱたぱた、よ「チェックインしました〜」、先輩「あれー、ビルドできないなあ、コンパイルエラーが出るよ」、よ「コンパイルしていませんでした〜。今直します〜」、あれやこれや、よ「出来ました。ばっちりビルドも出来ます〜」、先輩「あれー、テストが通らないなあ、ちゃんとテストしたの?」、よ「テストはしていません(きっぱり)」、先輩「おいおい、コードを書くって言うのは、単にコーディングするだけじゃなくて、コンパイルして、コンパイルエラーをとって、ちゃんとビルドできるようにして、そしてテストを書いて、実装した機能がちゃんと動作することを確認するんだぞ、おいおい、ちゃんとテストしろよ(あきれつつ)」、よ「なるほど〜、わかりました、そーゆーことなんですね〜」みたいな感じに手取り足取り初心者にいろはのいを教えていただいた。

コードを書くことと、テストプログラムを書くことは対になっていて、切り離せない。コードを書き、テストプログラムを書く。実装した機能を確認する。これはプログラマの日常である。当たり前のことを当たり前にやる。上司も同僚もその当たり前のことを要求する。テストのないコードを書くことは認められない。別にどこかにそのようなルールがあるのではなく、不文律として、そのような価値観を共有している。

テストをしていないコードをリリースすることはありえないという価値観がある。それがプログラマのコミュニティだ。そして、そのような価値観を共有しているからこそコミュニティなのである。

よ「テストも通りましたよ〜」、先輩「どれどれ、おー大体動いているか。ところで、ほげほげのケースはどうなっているの?」。よ「えーーと、あ、すいません、まだ実装していませんでした」、先輩「おいおい」…

雑な仕事を認めない。それがプロフェッショナルだ。当たり前のことを当たり前にする。それが難しいからこそプロフェッショナルの存在意義がある。そんなことを教えてもらったのが、新卒で入社したDECのエンジニアリングコミュニティである。