(17)夏野菜のチキンカレー

 吾輩はシステムエンジニアーである。リモートワークとひきこもりの違いも紙一重である。

 既に寝ているとはいえ、小さい子がいるとわかった美女をひっぱるのは2杯が限界だった。抱え込んでいた思いを打ち明けられ、晴れ晴れとした表情になった彼女は、2杯目にショートカクテルを頼みたそうにしていたが、お互い深酒の平日にはさすがに抵抗し、2杯目もビールでの時間を共有した。ほろ酔いの帰路、そろそろプライベートスペースが少し確保できる時間になった電車のなかでひとり吾輩は、小一時間の会話を整理する。

 お子さんの存在は、レインボーの浅見さんとの面接のときには話したので、もしかしたら川村さんにも伝わっているかもしれない。もちろん、ランサースタイルの出水さんには最初に話している。少しは年長者の吾輩からは、守るべきものがあるからといって、耐え抜くことは美徳かもしれないが、オッサンのふるまいをたしなめる術もそろそろ学んだほうがよいのではないかということと、現場のキーマンに気に入られているのは、アドバンテージであるから、それを利用するということも考えていいのでは、ということを話した。ようするに、もう少しいい意味で「したたか」であってよいのではという無責任な発言ができたのは、女性の相談は、話を聞いてもらいたいだけということを、吾輩が既に知っていたからだろうか。つまり、2杯目は、マンハッタンでもニューヨークでもマティーニでも呑んでもらったほうが彼女にとってはよかったのかと悔いた。
 言葉とは正反対の意志を目で語ったり、相手の発言を冗談として取り消せる返事を選べるようになることは、システムエンジニアーが必ずしも身に着けるべきものではないし、仮にそれらを発動したとして、長年積み重なってほころんだ衝動が、分別なく抑えられなかったとしたら、そこには何らかの制裁があるべきだろうし。

 現場から40分の駅を降り、自宅までの歩を進める。酔いが醒めかかった夜道で、過程と現状はともかく、守るべきものがある吉沢さんがうらやましいとふと思った。彼女が働く理由は驚くほど明白だ。いや、吾輩の働く理由も明白には違いないが、彼女には、その先があるように思う。吾輩には、まだそれがないうえ、システムエンジニアリングをしなくてよい、と言われたら何をしたらよいのかわからない。

 自宅の鍵を開けると、小学生のころに友達の家から帰る途中に漂っていた、食欲がそそられるにおいで部屋中が満たされていた。ただ、あのころの、空腹の夕焼けに心躍るわかりやすいにおいではなく、もうすこしさわやかなにおいだ。正体がカレーであることはすぐわかったが、1LDKのリビングの灯りをつけると、大きな茄子とトマトが食卓にごろごろと転がっており、それらを重みをするようにして、便箋に書き置きがしてあった。
 あっ、みのりちゃんが来てたのか。

 「山口くんへ。
  実家から、気の早いでっかいなすびとトマトが届いたので、
  夏野菜のチキンカレーを作りました。
  一緒に食べようと待っていましたが、
  明日はお店の鍵開けで早いので、先に帰ります。
  山口くんがフリーになったのは私にも一因がありますが、
  あまり無理しないでください。では、また週末に。
                     -みのり。」

 もう21世紀で、しかも吾輩はIT系なのだから、LINEでもメールでも送ってくればいいのに、こうやって書き置きをするのは、みのりちゃんが筆まめだからというのもあるが、彼女なりの気遣いというのもあるだろう。繁華街のキャストだった彼女とは、春先に正式につきあうことになったのだが、その前後に、彼女は免許を持っていた美容師に転職し、そして、吾輩はフリーランスになることを決めた。

 ご飯とは別の皿に盛りつけられていたルウはまだ少し温かい。芋焼酎を濃い目に水で割って、カレーと今日の出来事をあてに呑み直す。結局、市販のルウでまとめたのはキッチンを見ればわかったけれど、鶏もも肉をほおばるとバターの香りが口いっぱいに広がる。うまい。「彼女ら」のことを考えながら、フリーになった理由について噛みしめ、その先にあることを考えているうちに、スーツを着たまま、眠りについてしまっていた。

 夏至が近い明るい朝方、アブラゼミの鳴き声と痛烈な朝日が窓を照らすなか、少し汗ばみながら目が覚めた。昨日の酒は抜けた。さて、シャワーを浴びて現場に行くか。あのプロジェクトがうまくいくために、吾輩にできることをできるだけやってみる。

(16)今こそ使うべきだった

 吾輩はシステムエンジニアーである。最近、誤解されているようなのだが、この小説はあくまでもシステム開発の現場を描いているつもりである。

「ここ、ずっと気になっていたんですけど、こんな感じのお店だったんですね。」
 一昨日に小倉さんと「吾輩の考えるフリーランスとの違和感」について話した、現場近くのショットバー。電球色のスポットライトと間接照明でまとめられた店内は、カウンターが6席と、壁際に二人掛けの丸テーブルが3つ。おあつらえ向きにBGMはジャズピアノが流れている。理由はどうあれ、こういうお店に若い女性と2人で来ることが緊張しないといえば嘘になる。とはいえ、吉沢さんの弾んだ口調に安堵しながら、彼女をカウンターの奥の席へエスコートする。
「私いつも一杯目はジンベースなんですが、今日はご飯前に軽く、ということなんで、ビールにしましょうか。」
「ビール好きです。そうしましょう。」
「あ、タバコって吸ってもいいですか?」
「いいですよ。私、父親がヘビースモーカーなんで平気です。」
 どう見ても20代前半の彼女はこういうところは慣れていないだろうという勝手なおせっかいで決めた一杯目を待ちながら、平日の夜、お互いに長居は明日に響くだろう。手短にまとめようと、メビウスを一息吸い、本題に突入する。

「うーん、営業の出水さんには相談しました?川村さんからストーカーまがいのことされてるって。」
「いえ、まだ言ってません。それは最後の手段かなって。エクセルのマクロが組めるだけの、ほぼ未経験の私をこの現場にねじ込んでくれたの出水さんのおかげですから。それに、この現場を終わることになって、新しい現場が見つかるかどうかのほうが不安です。せっかく、フリーランスとして仕事が始められたのに。」
「そうですか。前職は歯科技工士って言ってましたね。」
「はい、入れ歯作ってました。」
 二人の間に和んだ笑いが起こった。

「ところで、川村さんはずっとあの調子なんですか?」
「3カ月前に、私と同じ時期に入ったメンバーの歓迎会があってからですね。川村さんの知り合いが近くの繁華街で小料理屋をやってるから、一緒においしい季節の天ぷらを食べよう、とか言う話で盛り上がっちゃって。別に何の感情もあるわけはないんですけど、なんとかこの現場でやっていきたくて。社交辞令を積み上げていったら、そのうち、今度高校生になるお子さんがいるのに、奥さんと別居してるとか、そういうところまで話が行っちゃって。後に引けなくなったという感じです。」
「うーん、疑似恋愛ってやつですか。」
「変な言葉ですね。」
「疑似恋愛自体は悪いことじゃないと思うんですよ。自分を高められたり、楽しい気分になれるのであれば。それを口に出したり、態度に出すからおかしなことになる。」
「私、歯医者さんを辞めさせられて、派遣で事務をしていたときも、なんか一方的に男性につきまとわれるってことがあったんです。そのときは、ランサースタイルさんの仕事が決まったので、事なきを得たんですが。これからは、技術者のはしくれとして、コンピュータだけが相手になるから、人間関係で悩むことはなくなると思っていたんですが、そんなことはないんですね。」

「ちなみに『辞めさせられた』ってなんですか?」
「ああ、自然と口に出ちゃってましたか。失礼しました。あんまり人には言わないんでほしいんですが、私、学校を出て、20歳のときに町の歯医者さんに入ったんですけどね。ご夫婦でやってらしたんですけど、旦那さんのほうの先生と関係を持ってしまって。それが奥さんの逆鱗に触れまして、辞めさせられました。」

 そういう話はもっと遅くなってから聞きたかったが、まあ彼女から言ってきたことだから仕方がない。驚いたが呼吸を整え、
「それは恋仲だったんですか?」
「いえ、向こうからの猛烈な感じでした。ただ、この話は続きがあって。あのとき、なにか間違ってたみたいで、辞めさせられたあと、お腹に赤ちゃんがいることがわかって。今頃、両親に寝かしつけられてると思います。もう三歳になりますね。」
「え!吉沢さん、子供いるの?」たまげた。
「そうですよ。だから、男の人に振り回されて、仕事を追われるってことは絶対にしたくないんです。子供のためにもね。」
 そう言って、ハートランドをぐいぐいと呑む横顔には、今まで彼女が見せなかった強い母というものを感じた。今こそ使うべきだった、いろんな人生がある。

(15)プライベートスペースを少し犯すくらいの間隔

 吾輩はシステムエンジニアーである。リーダーに必要なことは、組織を私物化しない努力である。

 好物の豚の生姜焼き定食を食べ、オフィスに戻ったとき、くだんの二人はまだ戻ってきていなかったが、しばらくして、吉沢さんが先に戻ってきた。着席し、長財布をかばんにしまいこむ彼女に、お昼前の吾輩の勝手な判断の報告をする。

「あ、吉沢さん、パソコンがロックされてなかったんで、フタを閉めておきました。いつも、ちゃんとロックしてるのに珍しいですね。」
 その言葉を聞いた彼女は何かを思い出したかのように目を見開き、
「あっ、あ、ありがとうございます。」
 と、言葉を詰まらせながら答えてくれたが、見ようによっては少しうろたえているようにも見えた。

 開発現場の日中に雑然とオフィスの宙を舞うキーボードの音というのは、よくよく耳を澄ませば、その音が、何を作っているのかわかるのかもしれない。ブラインドタッチの英数入力で英語ベースの単語が打たれるプログラミングの音、ローマ字入力で日本語が打たれるドキュメントが作られる音。そして、それらの合間にマウスカーソルが動かされ、実際のそれと同じような間を含む、会話文が打たれる音。隣席から聞こえる音は、基本的には、マウス操作と画面を入力するテストの音だったが、それを阻害するかのように、頻繁に手が、マウスに持ち替えられ、明らかなローマ字入力の音が聞こえたあと、少し強めのエンターキーが響く。どうやら、川村マネージャーからの執拗なチャット攻撃にあっているのだと想像するのはたやすい。そして、吉沢さんはそれをよしとしていない。

 「3Aの大きめの4画面」は、今日の終了時には、動作確認までいけそうだ。毎朝、浅見リーダーによってメンテナンスされるスケジュールは希望的観測に基づくのは見て明らかで、今朝の最新情報では、明日が単体テスト完了となっていたが、この大物がようやく動作確認まで来るのは、このプロジェクトによっとも彼にとってもよい知らせであろう。喫煙に立とうと思った吾輩の横で、エンターキーを押す鋭い音が響いたと同時に、吾輩のモニターにIPメッセンジャーの封書が届く。送信者は吉沢さん、直接口に出して言えないことか。開封する。

(山口さん、すみません。私、今日八時ごろに終わると思うんですけど、山口さんは何時に終わりそうですか?もしよければ、地下鉄の駅まで一緒に帰ってもらいたいのですが・・・)
 お誘いなのかお願いなのか判断に困る内容だったが、彼女の表情をチラっと見ると、昼食前のあの困った眉毛になっている。進み具合によっては、十時くらいまでを覚悟していたが、そういうことなら一肌脱ぐかと返信する。

(よくわかりませんがいいですよ。ドキュメントのありかを教えてくれたお礼ということで。ちなみに、川村さんが関係ありますか?)
 吉沢さんからは言葉を選ぶように少し間をおいて、
(ええ・・・。無事に帰れたらお話しします。)
 という返信が来た。昼食時の検討の結果、何が起こっているかはだいたい察しがついていたが、しばらく知らんぷりを決め込む。

 夜7時55分、吉沢さんからの依頼事項をまわりに悟られないように、手提げかばんにノートと筆箱をしまい、そろそろ帰るというポーズを隣席にとる。オフィスに人はまだわりと残っている。パソコンがシャットダウンされたのを確認し、お疲れ様でしたとプロジェクトの空中に発し、ゲートを通り抜け、エレベーターの下ボタンを押す。高層ビルでは、この時間でも、10基のエレベーターはフル稼働で、なかなか止まらない。だだっ広いエレベーターホールのすみっこでそれらの行き来を眺めている間に吉沢さんがゲートから出てきたが、その後ろに、吉沢さんのプライベートスペースを少し犯すくらいの間隔で、川村マネージャーもついてきている。エレベーターホールまでやってきた吉沢さんと目で合図をし「お疲れ様です」と会釈し、彼女は、吾輩の近くに立つ。それを見ていたのか、川村さんは少し、距離を置いたところに陣取った。

 しばらくして25階で止まったエレベーターに、当然のように三人で乗り込む。運よくと言うか、乗り込んだ3号機には誰も乗っておらず、下界までの数十秒は何の会話もなかったが、おそらくこれが吾輩の本日最大のミッションだろうと、ビルの出入り口の自動ドアで吉沢さんと立ち止まり、川村さんが先に地下鉄の駅に向かうのを「お疲れ様でした」と見送った。二人で小さい歩幅を重ね、彼の後ろ姿が小さくなったのを確認し、吾輩が知らんぷりを解禁する。

「いつも、こうなんですか?」
「ええだいたい。しつこく誘われます。最近は手を握ろうとしてきますね。」
「どうします?このまま駅まで行ってもまた彼に会いますよ。軽く呑んで時間つぶします?」
「そうですね。少し呑みましょうか。」
 

(14)やんごとない

 吾輩はシステムエンジニアーである。ハラスメントはされたほうの感情が害された時点で成立するそうである。

 さて、吉沢さんのおかげをもって手に入れた売上金の按分ルールのドキュメントは、考慮すべきケースは多いものの、結果的には複雑なロジックにはならなかった。書き上げたプログラムを見返しながらほっと胸を撫でおろす。

 こういったドキュメントは、たいていの場合、お客目線で書かれていることが多い。彼らの言葉では、たくさんの場合分けや条件があるために、大変な仕事という感覚であるのだが、実際にプログラムに落とし込むと、共通化をはかったり、ここまでは違うがあとは同じ、というフローに帰着できたりするから、実装はそこまで難しくならないというのはよくある話である。今回もそのケースに当てはまった。
しかし、お客さんとしては、この業務は複雑であるという感覚は変わらないわけであり、プログラマー目線で導いた「複雑ではないもの」という感覚を、ベンダに与えられた仕事が業務改善ではないときに、これをお客に押し付けて、険悪な雰囲気になるということもわりとある。
 お客の気持ちを理解しないまま、プログラム開発の現場の感覚を貫く人間は、お客との会話の場、いわゆるシステムエンジニアリングにおける「前線」からは退場を促され、「後方」支援にまわる。かといって、最前線にいる人間も、後方のことは考えずにお客のほうばかりを向いていることが多い。吾輩はこれまで、最後方から徐々に上がっていき、一度最前線を見たあと、好んで後方寄りの中盤に収まることが多いから、どちらの気持ちもわりと理解しているつもりである。しかし、同じ「味方」であるのに、前線の人間が客みたいな顔して偉そうな態度を取られると、言うことが違う客が別々にいる感じがして、混乱するというよりは、神経が衰弱する。

 そんななかで、前線から退場を促された尖ったエンジニアは、最後方にまわっても尖ったままであり、こちらも困る。彼らはどうやら「私はすぐれた技術を持っており、頼まれてプログラムを書いている」という孤高の感覚のようであるが、そのわりに寂しがり屋であるために、その裏返しで、自己顕示が恐ろしく強い。会話が噛みあわないか、こちらの話を理解しようとしていない。結果、こちらがいくら言葉を積み重ねても、ちいとも彼らには響かないことがわかり、歩み寄ろうという発想自体がなくなっていく。比較的気の長い吾輩でも、そういった感覚になろうというときには、彼らは後方からすらも退場を促されている。これが自然淘汰というやつだろう。いっぽうの、ずっと客の顔をしている前線の味方は、自然淘汰はされない。商流や社内政治、またスキルの事情などがあるからだろう。少なくとも日本においては、プロジェクトメンバー全員が、エクセルやパワーポイントをぬるぬると使え、プログラムが読めるだけではなく、正しく書けて、お客の言葉と仕事を理解でき、そして、ニュートラルな感覚を持っているというわけではない。閑話休題。

 ちょうど昼休憩のチャイムが鳴り、お客のビジネスルールが三段組みでぎっしりと書かれたA4横、三枚のそのドキュメントを手に取って天を仰ぎ、そういえば、安藤さんと川村さんの一件以降、一回も煙草に席を立っていないと思い出した。いや、その前に、このドキュメントの所在を教えてくれた隣席の「味方」に礼を言わなければ。苗字をさん付けで呼ぼうと、彼女のほうに視線をやったが、なにか話しかけづらいオーラが出ている。
 描いていない地毛の眉毛の角度は明らかに困っており、キーボードのホームポジションに置かれた両手は固まっている。なんか新しい問題が出てきたのかしら。それとも、久しぶりのお通じが来たのかしらと下世話なことを思いつつ、お礼を言うタイミングが与えられないまま、吉沢さんは、鞄から長財布を取り出し、静かに立ち上がった。そうか、今日の昼ごはんは何にしようかと考えていたのかと自己解決し、彼女がオフィスのゲートに向かう背中を眺めながら、彼女のパソコンがロックされていないことに気付く。画面の真ん中に長方形のIPメッセンジャーのウィンドウ。送信元はさっきひと悶着したプロジェクトリーダーの川村さん。

 なんだろう。彼女は一介のプログラマーと決め込んでいるはずで、これまで二人が会話をしていることなんて見たことないのに、あのオッサンと何か話をすることがあるのだろうか。ウィンドウの「開封」ボタンを押せば、彼から何が送られてきたのか見られるが、いずれにしても、ロックされていないことはまずいので、彼女のノートパソコンのフタを静かに閉めた。落ち着いて考えると、彼女はこのメッセージが来たことを見て、あの表情になったのかと思い、川村さんのほうを見ると、彼も吉沢さんの背中を意味ありげな表情で追っていた。何かやんごとないな。

(13)これが個人の裁量か

 吾輩はシステムエンジニアーである。構想時は全12回だったのだが、いざ書いてみると、一向に終わる気配がない。そろそろ回収に入ることにする。

 酒席の乱れた会話をしらふのときに持ち出すのはタブーではあるが、あのあと、小倉さんに聞いた人間関係を整理する。
 いつも腕まくりをしている浅見さんは、現PLであるが、DBAの桜木くんに「現行踏襲」と言い放った安藤さんがもともとのPLだったようである。スケジュールが厳しくなり、無理がたたった安藤さんが体を壊し、1週間くらい休養していたときに代行としてやってきたのが浅見さんで、復帰後の安藤さんはサブリーダーとして落ち着いたようである。この3人がレインボーソリューションの主要メンバーである。

 いっぽう我々、ランサースタイルは、新規開発をすることが最適な山中さんと、彼に追従するもしぶしぶテストをすることになった里見さん、なんでこんなところにいるかわからない美貌の持ち主は隣席の吉沢さん。あと、昼間は一言も言葉を発することなく、朝9時に現れ、夕方6時きっかりに帰っていくお誕生日席に座っているのは蒼井さんというらしい。小倉さんによれば、蒼井さんがこのシステムのもともとの構造を設計し、ランサースタイルとしてのリーダー的な位置だったようだが、ある時期から、プロジェクトには一切口を出さなくなったそうである。
 エンドユーザーとレインボーさんの間には、元請の会社が入っていて、レインボーさんの上位にあたり、ランサースタイルはレインボーさんの一員として常駐している。小倉さんは元請の会社の、岸さんという人の紹介で直請で入っているそうで、岸さんはこのプロジェクトのPMだということだ。

 そして、元請の子会社もこのプロジェクトに参加しており、その会社の川村さんという人が、エンドユーザーから見た開発部隊の責任者だということである。岸さんはもともと技術者だったそうであるが、川村さんはインフラには長けているが、プログラムは書けず、もともと業務知識をカバーするために入ったということであったが、開発時のあらゆるコミットメントは川村さんの役割であり、彼にシステム開発の経験がないことに、安藤さんと蒼井さんに不満があったらしい。
 そういった立ち上がりからの経緯で、ある時期を過ぎ、蒼井さんはプロジェクト推進に関わることを辞め、安藤さんが体を壊し、どちらかというとエンドユーザーのわがままで帳票設計に不備があるとされ、新しい体制が明確に計画されないまま、浅見さんがやってきて、レインボーさんが会社的にソフトランディングを目指しているということのようだ。ようするに、このプロジェクトはすでにバラバラで、このあと、いかに波風立てずに終わらせるかが、浅見さんのミッションである。
 
 
 そんななか、吾輩のミッションは「3Aの大きめの四画面」である。進捗状況はおおむね不足しているプログラムの挙動が整理できたが、基本設計書にある「売上金の按分ルールについては別紙参照」の「別紙」が見つからない。ここに大層な業務ルールが書かれており、コーディングにインパクトを与えるような気がして、不足分のコーディングが始められない。どこを探してもないということは、体制が変わる前の出来事であろうから、安藤さんに聞くのが一番と考えた吾輩は、昨晩の小倉さんの話を確かめるために、一芝居打つことにした。基本設計書の該当ページをプリントアウトし、その部分に赤線を入れて、安藤さんのもとへ席を立つ。

「安藤さん、すみません。この設計書のこの『別紙』なんですが、どこにありますか?」
赤線を指さし尋ねると、太古の記憶を強引に呼び戻された安藤さんは少し不快な表情を見せ、
「あ、これね。これ、以前の構成で作ったものなので、今はどこにあるかわかりません。ドキュメントの管理ルールが決まっていないので。」とチラチラと川村さんのところを見る。視線に気づいた川村さんはこちらを向いて立ち上がり、
「いや、それは少し誤解がある。『管理ルールは定義しない』と決めたのであって、管理ルールがないわけじゃない。」その言葉を聞いた安藤さんはあきれ気味に
「それは『ない』のと同じでしょう。」
「うちのプロジェクト標準では、管理ルールを定義せずに個人の裁量に任せる、でも問題ないとなっている。このルールでうまくいった前例もある。」
つまり、あなたの立場としては標準には遵守しているから何の問題もないということか。
「そういうわけで、プロジェクト的にそのドキュメントはありませんので。何かありましたら、川村さんへ直接どうぞ。」
どうせないんだろうなあと、すごすごと川村さんにもインタビューしようと思ったら、吉沢さんがこっちこっちと手招きしている。バタバタと自席に戻ると、
「以前のドキュメントは別の共有フォルダにバックアップしてありますよ。これですよね。」

 良かった。これが個人の裁量か。

(12)フリーの意味を履き違えているということかな

 吾輩はシステムエンジニアーである。しかし、システムエンジニアーには明確な定義があるわけではない。

 記憶を固く閉ざしていたリナちゃんのことが脳裏から漏れ溢れ、胸が締め付けられる思いになった吾輩がどんな表情だったのかはわからなかったが、何かを察した小倉さんは、話題を本来吾輩が所望していたものに変えてくれた。

「ところで、大変な現場に来ちゃったね。初めてのフリーの現場なんだろ。ボクは、レインボーさんの上位の会社の、岸さんという人の紹介で途中から入っているけど、いろんな人の思いが交錯しているというか。」
「どうしてこうなってしまったのかは、まだ入って間もないんでわからないんですけど、ちょっと、ここのメンバーは、僕の考えていたフリーランスというのとは違和感があるんですよ。」
「というと。」
「たとえば、隣の席の吉沢さん。彼女はもともと歯科技工士からの転職で、フリーという立場で一生懸命システムエンジニアリングを修得しようとしている。いや、彼女はよいとして、やりたくない仕事を押し付けられたからといって現場に来なくなるひとがいたり、テストではなく新規開発をすることがプロジェクトにとって最適な方法であると言わしめるひとがいたり。」
「フリーの意味を履き違えているということかな。」
「いや、そこまでは言ってないんですけど、小倉さんは僕が新人のころから、フリーランスだったわけじゃないですか。確かに、プロパーの判断を仰いで仕事されていたわけですけど、それでも、普通のパートナーさんよりも、プロパーに近い位置で仕事をされているように見えた。それはつまり、プロジェクト全体や、会社やお客さんのこと全体を見て動いていらした。」
「それはそうだよね。ボクは一人社長で、営業でもあるわけだから。確かにシステムエンジニアリングだけがボクの仕事ではなかった。でも、プロパーに近いと感じたのは、ボクが山口くんのところに長くいたからとか、斉藤さんと古い仲だったからというのもあるんじゃない。」

 斉藤さんというのは吾輩がサラリーマンだったときの部長だったひとだ。そういえば「システムエンジニアーの価値は、IT以外のことをどれだけ知っているかで決まる」とか「仕事はプロジェクトマネージャーが取ってくるもの」というのは斉藤さんの教えだったように思う。吾輩が続ける。

「そうなんです。原価管理もするようになって、人脈や技術に裏付けができて、フリーランスになれると思ったから僕は独立したんです、僕は。」
 夜遅くさらに疲れていたからか、1杯目のジントニックがいつもより早く浸透してきたようだ。

「おやおや、それはたいそうなことで。ちなみに、言ったかもしれないけど、ボクも以前はサラリーマンだったんだよ。小さい会社だったけどね。とある朝出勤してきたらね、社長がみんなを集めて、『はい、いまこの会社は潰れました。再就職はできるだけ斡旋しますが、全員解雇しますので、就職活動してください。』って。会社ってそんなに簡単に潰れるもんなんだって、そのときは驚いたよ。知ってた?手形が2回不渡りになると会社って潰れちゃうんだよ。そんでいくつかあった人脈をたどって、斉藤さんに仕事を紹介してもらったりして、現在に至ると。」
 三十路を過ぎたばかりの吾輩には少々衝撃的な話だったが、笑い話のように言ってのける姿に驚きつつ、小倉さんは噛みしめるようにウィスキーを呑みこみ、

「山口くんの言うことはもっともだ。ただ、あのころとは時代は変わってきたし、ランサースタイルさんのようなビジネスモデルもある。違和感があるのは、仕事に対しての意識なんじゃないかな。『仕事』は妥協が許されず、つねに厳しさを伴うものと思うひとたちは、相手やチームの感情は二の次で厳しいことを言う。一方で山口くんは相手やチームの感情を重んじて全体を見ている。違いがあるのはそのへんなんじゃない?ただ、そういったものをふまえたうえでさ、今のプロジェクトが終わっても、また一緒に仕事がしたいと思えるかどうかだと思うんだけど。」小倉さんも少し酔ってきたかな。

「それからさ。」
「はい。」
「なんか山口くんは自分の思うシステムエンジニアー像に酔っている気がするね。」
 酒には酔っているが、それは思ったことはなかった。しかし、思い返してみると、リナちゃんが吾輩に好意を持ったのは、学生時代にやっていたIT系のアルバイト先で、プロジェクトマネージャーが優雅に仕事をこなす姿に憧れをもったことがきっかけだと言ったのを聞いて、この子は吾輩が好きなんじゃなくて、IT業界に恋をしているんだな、と思ったことを思い出した。吾輩も恋に恋い焦がれ、恋に泣いているのだと思うと、複雑ながらも、愉快な気分にもなった。帰って寝よう。

(11)リナちゃんのこと

 吾輩はシステムエンジニアーである。IT業界が華やかに見えるのはただの幻想に過ぎないが、現場には、咲き誇る高嶺の花と、場違いにひっそりと咲く一輪の花というものがある。

 時計の針が10時半を回っていたのはわかっていたが、帰り際に話しかけた小倉さんとの会話が非常に懐かしくなり、一杯だけ呑もうということになった。最寄り駅までにある細い路地へ誘い込むように光る「BAR」と書かれた看板の先の、カウンターに陣取るやいなや、小倉さんはおそろしく予想外のことを口走った。

「山口くん、元気だった。そういや、前の会社のあの子とはどうなったの。なんか隠そうとしてたみたいだけど、けっこうみんな知ってたよ。リナちゃんとか言ったっけ。」
 なるほど、会社を辞めるということは暗黙のルールというものから解き放たれるということなのか。吾輩は10年前と、現在のフリーランスとの間の違和感について言葉にしたかったのだけど。

 流川さん、通称リナちゃんは、吾輩が常駐先からまとまった仕事を自社に持ち帰った時に手伝ったもらった女の子だ。美容系の学校を出ているのに、IT業界を志望したとのことだった。歳は23、4だったろうか。バイトで営業事務をしていたが、吾輩の仕事のスケジュールが厳しく、作業自体はパラメータの入力と画面操作でソースファイルが生成できるというものだったから、開発に興味のある彼女に手伝ってもらおうということになった。
 メンバー6人を率いたプロジェクトはこれまでと変わらず男所帯で、残業も込んできたなかでの彼女の投入は、効果てきめんだった。メンバーの負荷が減ったのが第一であるが、日頃2次元と仲良くするような、彼女と歳の近しいプログラマーたちは、彼女に興味がないふりをしつつも、彼女からの質問に嬉しそうに答え、そして、女子との他愛もない会話を楽しんだ。残業こそ微減ではあったものの、目に見えて生産性は上がっていった。

 残暑の週末のある日、台風19号が南から北上していた。吾輩は課長からのメールを受け、メンバー全員を定時前に帰した。残業に疲弊していた男衆は喜んで帰ったが、流川さんだけが、3日遅れという理由で、帰ろうとしなかった。スケジュールはどうとでも調整できたはずだったが、彼女の口ぶりから、早く一人前として認めてもらいたいと必死さが伝わってくる。吾輩は彼女の横に着いて、ギリギリまで粘ったのだが、雨風は強まるいっぽうで、とうとう電車は止まってしまった。出張慣れしていた吾輩は彼女のために近くの宿を確保し、吾輩はビデオ試写室で新作をチェックするつもりで、彼女を部屋まで送ったが、心細いからシャワーを浴びている間は帰らないで、というタテマエによって、しばらくの間、彼女と同じ部屋にいることになってしまった。

 安くはないシティホテルからの暴風雨の夜景を見ながらパソコンを広げ、残務をしようとするも落ち着かない。そうこうしているうちに浴室の水の音が止まり、ドアの開錠音が部屋に響く。アメニティーのガウンを身にまとった姿からは、下着まで雨に打たれたからかどうなのか、くっきりとそのままの大きな谷間が見えていた。

 冷静さを装い、吾輩が部屋から出ようと彼女に背を向けたとき、リナちゃんは両手を広げ、吾輩に訴えた。
「山口さん、何もしてくれないんですか。」
吾輩は振り向き、
「落ち着いて。山口さんとリナちゃんは、ただの社会的な上下関係なの。第一、オフィス・ラブは仕事がやりにくくなるからだめだよって、あいつらにいつも言っているの、リナちゃんが一番よく知ってるじゃない。」
精一杯の吾輩の強がりを聞いて、ブサイクに頬を膨らせた彼女は、少し間をおいてこう続けた。

「わかりました。でもひとつだけお願いを聞いてください。」
「内容によるけど、なに。」
「リナのあたま、ポンポンしてもらえますか。」
という言葉にまかせ、彼女は吾輩の目の前に顔を近づけて目を閉じた。

 マネージャーとして、彼女を認めたかった吾輩は、やさしく彼女の頭に手をやった。上背はなく、決してスタイルがいいとは言えないが、人懐っこさが存分に溢れたふくよかなからだを見ながら、オフィスでちょこまかと動き回るさまを思い出した。さらに凝視すれば、やはり少し鼻が上がってると再確認し、ほんとうに子豚さんのように愛おしいと息を飲み、彼女が恍惚の表情から遠ざかる意識の中で、大きな口を少し開けたとき、吾輩は彼女の唇をむさぼってしまっていた。

 ほどなく、プロジェクトは無事納品を済ませ、流川さんの送別会が盛大に行われた。ピロートークで聞いた話だが、定職に就かない娘にお父さんが激怒しており、実家への強制送還が決まっていたということだ。納品までの数ヶ月は忙しく、彼女とはそれっきりだったが、事あるごとに、私いつか両親を言い聞かせて戻ってきますからと言っていたものの、数直線もベン図もわからない女の子がこちら側に向いているとは到底思えなかったし、本当にやりたいことを貫いてほしいという親心もあった。とはいえ、彼女がいなくなったという喪失感は、今も癒えているのかわからない。

(10)変わらないことを維持し続けることこそが幸せ

 吾輩はシステムエンジニアーである。やはり、前回の話もすこぶる面白くなかった。人間は追い詰められていると、ひたすら、自分のできることをやり抜こうとするからだろう。吾輩にも気持ちにゆとりがないのだ。ちなみに、試験前に部屋の掃除をしたくなる現象のことを、セルフ・ハンディキャッピングというそうであるが、追い詰められているときに、自分が書ける、自分がふさわしいと思うコードを書ききった里見さんのコードについても、同じようなことなのかもしれないと思った。いや、彼女は決して逃げたわけじゃないのであるが。

 彼女のコードは確かに清々しく、コーディング規約にも違反していなかった。そして、彼女の言葉からわかったように、この業界に入りたてのころに覚えたロジックを正義として書かれたわけである。しかし、それは吾輩には、彼女の中のテンプレートを使い回しているだけにしか見えなかった。メインフレームの有史以来、プログラマーというものはそういうものだったのかもしれないが、いつかどこかで書いたコードの反復がわれわれの仕事ではないと、吾輩は思いたいからだろう。それが、経験やスキルと呼べるものだったとしても。
 しかしながら、吾輩のプログラムが、果たしてテンプレート化していないのかということも自問自答しなければならないと、強く自分に言い聞かせる。そして、比較的若い今の年代では、いろいろなことに対応できていっているかもしれないが、将来、家庭を持ち、変わらないことを維持し続けることこそが幸せだと思えるようになったとき、吾輩はこんな気持ちでいられるだろうか。

 プログラマー30歳定年説が覆されて久しいのは、設計書を書いている時間がないのと、プログラムの生産性が飛躍的に向上しているからであるが、吾輩は、30歳を境に、コーディングへの執着は失せている。代わりの執着は、人間も含めた「システム」というものが出来上がっていくさまである。対して、吾輩のスマホは8ヶ月前のアップデイトをわざと適用していない。スマホは電話であり、不必要なアプリもほとんど入れておらず、ブラウザとメールさえ使えればよい。今使えているものをわざわざ刺激する必要はないからだ。

 さて、わがままな彼女も出社したし、事情聴取も終わった。最近、額も汗ばむようになってきたので、この現場で初めてジャケットを脱ぐ。スーツの上着は、椅子の背もたれに掛けると型崩れすると何かで読んだので、ていねいに左右に折りたたみ、襟のほうをつまみながら、オフィスのすみの衣文掛けに掛ける。吾輩がカフスボタンをしても不自然じゃなくなるのはいつになるのだろうかと、いつもと同じことを思いながら、袖のボタンをはずし、腕まくりをする。同僚たちも、昼食を終えて帰ってきた。さて、やるか。

「設計書のここのところなんですけど、もしかしたら、情報系のシステムからデータ連携があるかもしれないから、もう少し、拡張性を持たせておいてほしいんですけど。」
「でもそれ、その先のテーブルに連携データをいれておけば事が済むんじゃないんですか。」
「いや、別のプログラムを起動できるようにしておいてほしいんです。」
「んー、安藤さんのメモを見ましたけど、データ連携のプログラムは、サーバーにあるジョブスケジューラがをキックするとのことだったので、これで問題ないとお客さんのレビューまで行ってますよね。」
「これ、新しいほうのサブシステムなんですけど、まだ、ジョブスケジューラの選定まで至ってないんです。」
「まーたそれですか。この前の帳票の件もそうだったじゃないですか。なにも決まってないなかで、いろんな場合を想定して作ったのに、僕が聞いていないことが最後に出てきた。もうそういうことはこりごりなんですけど。」

 いやいやこちらも、まーたなんか穏やかじゃない会話が耳に入ってきた。プロジェクトにとって最適な方法を検討した結果の、浅見プロジェクトリーダーが、尖った山中さんをなだめている構図だ。安藤さんのメモがポイントのようだが、安藤さんは振り向きもしない。帳票の件という発言も気になる。
 見かねて、少し離れた場所から、髪の毛を下ろした白髪のおじさんが、書類をもってこちらにやってきた。彼はふたりの間に割って入り、言葉を発しようとしたとき、ハッと気がついた。髪形が変わってて、まったく気がつかなかったが、吾輩が新人サラリーマンのときに世話になった、あの頃からフリーランスの小倉さんじゃないか!

(9)吾輩も自分のコードにとやかく言われるのは嫌

 吾輩はシステムエンジニアーである。いやしかし、前回(先々月)の話はすこぶる面白くなかった。

 いや、前回の話で言いたかったことは、プログラミングにはパラダイムがあるということである。
 パラダイムというのは「ある時期の背景と方法を包括したもの」を示す「時代」や「流行」とは別の便利な言葉である。IT系のひとたちにとっては、ホスト、オープン、Web(次はフロントベースのサーバーレスと続くだろう)のことであるのだが、たとえば、近代の情報収集のやり方は、一般化したインターネットのうえで、はじめはパソコンだけだったが、iモードが生まれ、スマートフォンになっていったように、根幹を為す技術は変わっていないが、情報への触れ方は変わっていった、という説明であれば、IT系でないひとでもわかると思うのだけど、このそれぞれがパラダイムである。
 そして、前回の里見さんのプログラムは、少なくともM言語を使う場合においては、直近のパラダイムにふさわしくないものだったということが言いたかったと、高層ビルに入る常駐先の社食は避けて、いつも来ている地上の居酒屋で、ランチのアジフライ定食を頬張りながら考えていた。

 ビルに戻り、喫煙所で2本吸ってからデスクに戻る。休憩が終わるまであと15分ほどあるが、昼からと言っていた里見さんがもう来ていた。ノートパソコンに向かい、休憩ではない時間を過ごしているようだ。半休が気まずい現場もあるから、少し早く来るのは懸命な判断だと感心しながら、レインボーさんの島はまだ誰も昼食からは戻ってきておらず、ランサースタイルの島も、吾輩と彼女だけであると気づく。彼女が休憩中でないのなら、前回わかった「面白い話」がなぜそうなのか、聞くなら今しかない。彼女のコードは確かに「だいぶアレ」ではあったのだが、尖ったものというか、ある種の執着のようなものを感じたのだ。

「あっ、里見さん、お疲れさまです。あれ?、もうご飯は食べたんですか?」
「はい。来る途中に簡単にすませてきました。」今朝は彼女が来るか来ないかで揉めていたこともあったので、心配させまいと気丈に振舞っていたのが、その話し方からわかった。あまり話を長引かせたくなかったので、間髪入れず、吾輩が続ける。

「あの、3Aの4のソース見て、気になったんですけど、変数の局所宣言がないのとループが全部後判断になっているのが、面白いなあと思って見てたんですけど。」
 こういった話をされるのが初めてだったのか、最初は驚いたような顔を見せていたものの、徐々に彼女の表情が曇っていく。
「・・・なんでしょう?私のソースに対して、何か仰りたいことでもあるんですか?」
「いえ、言いたいことは特にないです。規約違反でもないし、汚いわけでもない。むしろ、清々しいくらいです。」
「じゃあ、何ですか?」
「たとえば、このメソッドの先頭の変数宣言、先頭に20行もあると見る人が面食らうのと、半分以上は、判断とループのブロックの中で使われるものだから、それらはブロックの中で宣言したほうが処理全体の見通しも立てやすいし、変数の適用範囲はブロック内だけだから意図しない代入とかもなくなる。あと、これとこれとこのループを抜ける条件式は後でなくて前に書けば、不要な変数も出てくるし、ソースファイルもだいぶ減らせる。」
「でも動作は変わりませんよね?修正しろと言ってます?」
「いや、そういうことは言ってない。でもM言語が属しているパラダイムいえば、こういう書き方が普通じゃないかなと思って。あと、それから・・・。」
「それから?」彼女に促され、吾輩が続ける。
「なんか、こうも書き方が統一されていると、いちばん最初に覚えたやり方をずっとたいせつに守っているような気がするんですよね。もしくは、これが正解だという方法を守っている、というか。もしかしたら、これまで、あるべきロジックの議論をしてきてないのかな、とすら思いました。」
「・・・そうですか。仰りたいことは以上ですか?」

 吾輩の、以上です、という言葉を聞いて、彼女は女性にありがちな、頬をふくらませて、ぷいっと顔を背ける仕草をしてみせた。・・・図星か。我々の仕事は納期通りに品質の高いプログラムを書くことであるから、意外とその中の書き方がどうあるべきかということは議論されにくい。彼女は、そういった機会が与えられることなく、自分の正解を貫いてきたんだろう。だから、他人の書いたコードは触りたくないという結論に至ったんじゃないかと思う。そして、自分のコードにとやかく言われるのが嫌なのは吾輩も同感だ。でも、最新の事情については、つねに取り入れていかなければと、自問自答しながら、昼休みの終わりを告げるチャイムを聞いた。

(8)面白いことは気のせいではなかった

 吾輩はシステムエンジニアーである。プログラムは人間の手によって書かれるものである。

 しかし、朝から感傷に浸っている場合ではない。このプロジェクトは火を噴いているのだったと自分に言い聞かせ、焦る気持ちを抑えながら、駆け足気味にデスクに戻った。とはいえ、吾輩の担当はバカデカい七画面から、「大きめの四画面」に減ったわけなのだから、いくばくかの安堵のようなものもあったが、それはすぐに間違いだったと思い知る。「3Aの大きめの四画面」というのは、3Aの3から6のことであるが、これらは、3A本体と、3Aの1と2から呼び出されるが、渡されるパラメーターが多く、それらは複雑な条件で結びついている。つまり、「小さめの三画面」自体のテストをしなくてもよくなったのは事実だが、それらから決別できたわけではなく、書きかけのコードを追って、仕様の把握をしなければならないというのは変わらないのだと認識した。同時に、ババをつかまされたというやるせない気持ちが吾輩を襲う。念のためと、昨晩のプロパーさんの成果を期待したが、リポジトリーのソースファイルの日付は一秒たりとも変わっていない。たぶん、この画面、みんな触りたがらないんだろう。吾輩も「話と違う」とか言ってみたい。

 さて「小さめの三画面」について、最初のソースファイルをクリックし、ホイールを転がす。そして、次のファイルをクリックし、またホイールを転がす。たまには戻したりもする。そうやって前後関係を読んでいく。少し面白いことに気がついて、次のファイルをクリックし、今度は、ホイールを下に転がすだけになる。ほとんどのファイルを下向きにホイールを転がし終わったあとに、面白いことが気のせいではないとわかった。

 里見さんのコードは変数の局所宣言がほとんどないのと、ループ処理がすべて後判断になっている。ループ処理というのは、繰り返しの処理である。たとえば、ある変数aに1を最初に格納しておき、aを1づつ足しながら処理を行い、aが一定回数になったら、繰り返しの部分を抜けるというものだが、里見さんのコードは、そのaが一定回数になったかどうかの判断が、繰り返し部分の後ろにある。べつに前判断でもいいところを、後判断にこだわって、処理の見通しが悪くなっているところも散見される。
 変数の局所宣言というのは、さっきの変数aについては、aという箱を使いますよ、と「宣言」しなければaは使えない。大昔のコンパイラーは、変数の宣言は、すべての処理よりも前に書かなければならなかったが、最近の言語は、処理の最中に変数宣言があってもよい。これを変数の局所化というのだが、彼女のコードにはそれがなくて、すべての変数宣言が、すべての処理の前にあって、見通しが悪くて仕方がない。この現場で使っているMという言語は局所変数はサポートしていないのか。というか、コーディング規約はあるのか、そして、このコードは誰かレビューしたのか。

 吉沢さんにコーディング規約の場所を教えてもらい確認してみたが、ループ処理を前判断、後判断にするかの指針について触れられていないのはともかくとして、変数の局所化については触れられていなかった。なるほど、規約違反ではないのか。

「吉沢さん、この現場ってコードレビューってしてます?」
「前はやってましたが、フレームワークが変わってからはものづくり優先ですね。」そうか、では。
「M言語って、変数の局所化ってサポートしてますよね?」
吾輩はM言語は初めてである。
「ループのときに、変数宣言するやつですよね。ほとんどのサンプルコードがそうなってますから、普通に書いてますよ。」
拍子抜けである。

 さて、里見さんは昼から出社すると、レインボーさんの島からもれ聞こえてきた。ここぞと、彼女が守られていたと言っていた山中さんの反応を見てみる。
「里見さん、昼から来るみたいですね。あっちで言ってます。」
「あ、そうですか。集中していて聞こえませんでした。」
「心配じゃないですか?」
「いや、別に。」
「守ってあげていたのに?」
「それは彼女が勝手にそう思っているだけです。」
 やれやれ、そうかい。

「ところで、里見さんのコード、ちょっとアレですね。」
「いや、だいぶアレだと思いますよ。」
 知ってるのか!