人は思った方向に変われる

僕自身どう考えても優秀なプログラマとは言えないのでもっと謙虚な姿勢でしっかり

勉強しなければいけないのだが、なぜか教える立場になることがある。

PHP側のメンテをしていて今月は彼と話す機会がほとんどなかったが、たまたま

Ajax on RailsとAWDwR2版を持っているのを見かけた。聞いたら自分で必要を感じて

買ったらしい。そろそろ慣れたかなという頃にPHPに戻ってしまった僕より

慣れの部分に関してはもう先に行かれてしまっているかもしれないなぁ。

ペアプロなりを通じて話していたことを伝えられたのかもしれないし、翻ってみると

僕が彼を実際のところは信用しなさすぎていたのかもしれない。

本を買ってその良さを実感しているように話している姿を見て僕自身いろいろ

てんぱっていたのかもしれないなと反省した。

人は変われるしそれに時間がかかるというのは6年前に一緒に仕事をした子から学んだ。

それが僕の中での成功体験であり、以後のプロジェクトでもチームメンバーから

あいつだめだみたいな認定をされている人は絶対にキャッチアップ出来ると思っていたし、

実践もしてきたつもりだ。たいがいはうまくいった。目に見える結果を得るには

積極的なコミュニケーションが必要で、その分疲れはしたけど、2,3ヶ月もすれば

なんとかなっていた。

その成功体験が必ずしも毎回続くわけではないと思い知らされたのが去年の春だった。

開発どころかコンピュータ関連自体あまり触っていなかった人と研修がてらプログラムを作ることになった。

仮にその子をOさんとしよう。

Oさんは疑問を感じたらまず発言し、とりあえずわからないということだけはアピールしていた。

何がわからないかはひとつひとつ確認していかないといけない。

何度も根気よく教え、その都度わかったわかったと言って実際動かすところまでいったものの、

2週間もしないうちに同じところで引っかかっていた。表面的にどうすればいいか、という質問の仕方を

するところが気になっていて、原因や理屈を抑えないと条件が少し変わっただけで

対応できなくなるからそういう理解の仕方をした方がいい、なんて偉そうに講釈をたれたものだ。

だがそういう理解の仕方は苦手だったのか一向に変わる気配もなく、同じレベルの質問を延々繰り返す。

そのままではまずいからまずどう考えたかというところを説明出来るようにしてから質問をするように言った。

語気が強かったのかもしれない。

Oさんは質問者を僕から別の人、Tさんに変えた。

内容は変わらなかった。

新たな矛先になったTさんから質問をフォローするように頼まれた。

僕が直接フォローしても反応をしなかった。

基本的には触れないようにして、たまに3者対話の形でTさんに中継ぎをしてもらう形になった。

Tさんはpaththruをするだけでも疲れてしまったろう。

僕はタバコを吸わないが彼が吸うので休憩所に一緒に行ってはTさんの愚痴を聞きつつ

どうしたもんかねぇ…なんて生返事をしていた。

明確に教育係という仕事だったわけではなく、同じチームとして、というレベル

でもあったから、そこまで注力してるのもなぁ、という思いもあったかもしれない。

僕が別のプロジェクトに行くことがほぼ決まりかけていたある日、Tさんがたまたまいない時に

Oさんがてんぱって悩んでいた。何が問題なのかをとりあえず聞いてみた。

相変わらずな質問内容だったが、以前ほどは丁寧な導入をせずに確認をしてみた。

確認をした後で、15分ほど考えてもらった。何がどうなのか、問題はどこかを整理できたか。

その上でどうしようと考えたか、など。何も答えられないものがないように考えてくれと。

他に頼るものもないから、ということもあったかもしれないがOさんはとりあえず応じてくれた。

単なるフリーズよりは前進できたかもしれない。それを足がかりに説明をしてなんとかうまくいった。

大事なのはわからないこととわかったことと、どうしようとしたかを伝えられることだ。と、最後に付け加えた。

僕はプロジェクトを離れた。Oさんはその後比較的大きなプロジェクトのテスターとして

アサインされたと聞いた。Tさんも別のところにいっている。

何か残っただろうか。質問の仕方でもなんでもいい。

最後はなんとなしに希望が残った感じだった。

その希望すらない失敗体験が次のプロジェクトだった。

未経験で入って1年足らず、Sさんはプロジェクト的には僕の先輩ということになる。

割と快活な感じに見えた。聞けばいくつかのプロジェクトで契約解除されてへこんでいたけれど

ここでは頑張れそうだみたいな話だった。

確かにケアレスミスっぽいのも散見されたがそこまでひどいのかな?という感じで

丁寧に教えていけばなんとかなるんじゃないかなぁと思っていた。

やはり教育係としてきたわけではないし、チームと言いつつ個別に連携しない

機能の実装を割り当てられていたので僕は僕の仕事を進めていた。

残業代を極力カットしようという方向なのか、このチームは定時後1時間以内に

大半が帰る。それ自体は別にいいというかそうあるべきだと思うが、Sさんだけはなんだか一人で

22時近くまで残っていたりしていたようだった。

僕の機能実装がほぼ終わった頃に軽く声をかけてみたが、なんか何を悩んで

いるのかがわからない言い方だった。その割には恐ろしく手が止まらない。

テストコードを書こうとか言う前にとりあえずデバッグ文入れたら?という話をしても

どこに入れるべきかがわからない。処理の流れをなんとか聞き出してここじゃないか

というところに入れてもらってもメッセージを見ないでコードを変更しだしたりする。

ここが驚きだった。何のために入れてるのか理解していないのではないか。

根気を持って教えていくしかないなと思い、少しずつ声をかける機会を増やしてみた。

端的に言うとSさんはコミュニケーション能力が怪しい感じだった。どんな処理を

書いているのか?どんな機能の実装なのかを聞くと

「ここをこんな風にしてこうするんですがうまくいかないんです」(原文まま)

と、数秒で画面操作をしながらがちゃがちゃ動かしている。

前提知識がない人にこの説明ではちょっと無理だろう。というわけで処理の流れひとつ聞くのも

結構骨が折れた。しかし、骨が折れているのはこちらだけではなかったらしい。

ある日、同じようにこつこつ聞いていたら突然「うるせえよ、お前黙れ!」

と言われた。年の上下云々の前に職場でこういう発言するやつがいたことに驚きを禁じえない。

さすがに派遣先な職場の都合、おおっぴらに喧嘩するわけにもいかないし、

もうノータッチにしようと思った。

そこから2週間、今度は僕ではなく現場のマネージャーとよく話をしているようだったが

マネージャーの顔つきも段々変わってきていた。状況としては次のようだったらしい。

・実際のリリース予定は2ヶ月前だった。

・完了したというデータ取り込み機能を本番に載せたら機能しなかった。

・Sさんに聞いたが理由がわからないと言う。

デバッグさせるためにログ出力をさせようとしたら本人が出来たといって
いた機能も動かなくなった。

リポジトリをネットワークバックアップツールとして使っていたため、正常動作するリビジョンが不明だった



マネージャーの語気がさすがに強くなる。

「なんでエラーメッセージ見ないでコード変えようとするんだ!」

手を止めて考えるのが苦手というのもあるんだろうが、考えなしにいじくって

そのうちに一応正しかった(らしい)コードの部分が壊れたり、安易にカット&ペースト……

コピーではない。そんなことをしている間に正しいコードブロックがクリップボード

から消えたりなど…基本的な姿勢がまずいと言うしかなかった。

僕は僕で別の機能をやっていたが、Sさんからヘルプを求められた。

まずは何の機能を作っているのか。どこまで動いているのか。画面に

出るメッセージはなんと言っているのかを確認する。どのデータで

起こったのかを確認する。テスト駆動云々以前のレベルで最低限必要だろうと

思うことを伝えた。少しうまくいったらしい。

ある日の終業時、「もう少しでうまくいくんです」とSさんは言った。

僕は特に何も感じなかったと思う。

翌日彼は来なかった。朝礼で部長が事務的に話した。

「S君は個人的な都合で昨日で契約終了となりました」

僕は彼の担当分を1ヶ月以内にリリース出来るようにしてくれと言われ、改めてソースを見ることになった。

10分で断念した。いや、反応としては5秒で「うっ」と思い、30秒で「これは…」と感じ、

1分で「もうだめだー」となっていた。俺オワタ。まあ仕事なのでもう少し頑張ろう

と思って頑張れたのがそのくらいだった。マネージャーを呼んでソースを一緒に軽く見てもらい、

一から作り直すことにした。

1週間で完成したと思う。この頃に本当は2ヶ月前にリリースするはずだったと聞かされた。

90年代のPerlのようなソース、といえばいいだろうか。関数らしきものもなく、

とにかく上から下までなめていくようなベタスクリプト。これでは処理の把握も

出来なかったろう。実際それっぽいのは少しだけ感じていたが、自分でどこがおかしいかわかる

ようにしてあるならそれでと思い、あまり強くは言わなかった。自分のソースを見せて

説明し、こんな風にしておけば一応見てわかるよね?みたいな話をしたのだが

届いていなかったということだろう。

Sさんはそのまま休職し、退職したそうだ。

普通にぶっちゃければSさんを「プログラマ」として派遣するのは無理だったと思う。

いずれ変わったかもしれないが少なくとも僕が出会った時点では無理だった。

派遣先はさらに一段上というか、「社会人としてだめ」と言われた。

まあ言動を考えればわからないではない。マナー的なものもあるが、勉強するという

姿勢も極端になかったということなのか。Oさんはまだ頑張っているが、去年出会った2人に

共通して感じたことは"その場の問題をその場限りのものとして対処しようとした"ことだと思う。

同じシチュエーションは二度と来ない。何かが違っているわけで。そこに対応するなら

理屈で武装しておくところも必要だろう。Oさんはその後頑張っているのだからなんとか

アジャストしていると思うが、Sさんはどうにも出来なかったということだと思っている。

あくまで僕の周囲であり、限られた話だが、SIerにおいて人材不足と言われ、

その成れの果てがこのような未経験者を放り込み、アジャスト出来るかどうかで

OJTと名乗っていくのはどうなんだろうか。根本的なレベルの話だから、

SIがどうとかITがどうとかじゃないんだけど、そういう状態の人をして要員として

入れてきたことやそれを受け入れざるを得なかった(?)SIerというのは業界的な

人材不足といってもほどがあるような気がする。

思った以上に長くなったが立て続けにうまく教えることが出来なかった経験があったので、

今一緒のチームとしてやっているHさんに対してもちょっと不信感があったのかもしれない。

まあ細かいことを言うとつらつら愚痴っていたような気もするので割愛だが、

今朝の様子だと彼なりにpanicしていた部分は一応クリアしてきているようだし、

むしろ僕が教わらなければならないことがあるんじゃないかという気がしてくる。

彼らには接する時間が足らなかっただけかもしれない。時間が足らない分はHさんのように

経験年数でカバー出来るところもあるのかもしれない。

これが10年やってきた人の言なら多少は説得力もあろうものだが、僕はせいぜい

半分くらいに過ぎない。一応7年くらい…か。業界はなれたこともあるので

実際はもちょっと少ないのだけど。

来月からは僕が一番下として勉強していかなければならない、はず。

人に教えることは勉強になるのだが、よりそれ以上に自分を伸ばそうと思うなら

もう少し純粋に僕自身を鍛錬する必要がある。

いつか、また誰かに教えるという機会があったとして、意欲がある人であれば

うまく引き出して伸ばしてあげられるようになりたいものだ。

意欲についてはラストワンマイルの話だと思う。自分がそうありたいかは

自分の気持ちが答えてくれるだろう。