社内勉強会

うちの会社で仕事をしてくれていたシマさんが、(有)シマテックという会社を興した。シマンテックと紛らわしいが、覚えやすくていいと思う。


そのシマさんの会社設立祝いも兼ねて、うちの会社の社員とシマさんで勉強会をした。シマさんの書いてきたプログラム(たった3枚の紙)を参加者に配り、うちのプログラマたちに順番にこのプログラムのまずいところを一つずつ言ってもらう。他人の指摘した箇所は重複して指摘はできない。自分のターンでソースのまずい箇所を指摘できなければ脱落。(ただしパスは2回まで出来る)


まず最初に私は、「ワシに勝てたら、給料アップしてやる!(`ω´)」と高らかに宣言。しかし、序盤早々脱落者が出る。勝負は、長期戦と化し、終盤、私とid:lienの一騎打ちとなった。


lienは2度目のパス、もう後が無い。私はまだパスの権利を残したまま。「こんなもん見た瞬間に気づかないようでは給料ダウンじゃ!(`ω´)」という私の挑発にlienが躍起になって、バグを見つけ、私のターンに。私はすぐに他のバグを指摘。ネタが尽きたか、lienがここで詰まる。lienが長考の末、スレッドのスケーラビリティが無いことを指摘。これには私も感心。でも、私も負けてはいない。他のバグを軽々指摘。そしてlien、とうとうネタが尽きた。私はlienに「あのバグは見た瞬間、気づかないようではプロの仕事じゃないなぁ」と挑発。しかしlien降参。結局のところ私が優勝ということになった。


この題材に使ったシマさんのプログラムとはマルチスレッドに関するプログラムだった。マルチスレッドを使ったプログラムのバグは、再現性が無く、発生頻度が低かったりして、実行してデバッグするというのには無理がある。どうしても机上のデバッグが必要なのだ。近年、実行してのデバッグが主流となりつつあるが、そんな甘っちょろい方法は通用しないのだということを参加者は身を持って感じたはずだ。


たった3ページのソースに何十箇所ものバグや設計ミスを指摘されたシマさんは勉強会のお礼の言葉としてこう締めくくった。


「今日のこの恥ずかしさ、そして、みじめさを一生大切に胸にしまい、いつまでも初心を忘れず、切磋琢磨したいと思います。今日はいい勉強をさせていただきありがとうございました。今後とも(有)シマテックをよろしくお願い致します」


参加者の拍手が巻き起こる。参加者は、勉強会を通じて、何かかけがえの無いものを得たようだった。