ふつーのプログラマです。主に企業内Webシステムの要件定義から保守まで何でもやってる、ふつーのプログラマです。

魔女の刻 (7) トレーニングデイズ

»

 トレーニング期間中に不要と判断されたのは、田熊システムだけではなかった。
 火曜日の18:00、自動的にブラウザが起動され、「A フレ習熟度テスト」とタイトルのついた画面が表示された。Q1 から Q20 までのボタンが上から並んでいる。私はQ1 を選択してみた。

 Q1. 次の要件を満たすコンテナを作成してください。
  ・表1 の選択肢をラジオボタンで縦方向に表示する。
  ・その他を選択した場合、その下に入力用テキストボックスを表示。
   その他以外を選択した場合、入力用テキストボックスは非表示。

 最初は初歩的な課題だ。問題文の下にファイルアップロードのフォームがある。A フレでコンテナを作成して、ここから提出しろ、ということだろう。
 「お、来ましたね」隣で細川くんが囁いた。「やっぱりQ1 からやりますか」
 「そうね。簡単な選択肢制御だね」
 「え?」細川くんは、首を伸ばして私のモニタを覗き込んだ。「あれ、ぼくのと問題が違いますね」
 「え、そうなの」
 私は細川くんのモニタを見た。Q1 が選択されているが、内容はテキストボックスの文字数制限制御だった。どうやらプログラマ毎に問題を変えてあるらしい。相談しあったり、10 問ずつ分担する、ということを防ぐためだろうか。よくやるわ、と呆れたものの、田熊システムをあっさり追い出したぐらいだから、これぐらいは当然かもしれない。
 「全員、違うんですかね、これ」
 「まさか」
 いくらなんでも、2,000 以上の問題のパターンを作ったとは思えない。数パターンをランダムに振っているのだろう。ただ、席が近い者同士が同じパターンにならないようにはしてあるに違いないが。
 私が課題を終えたのは、約45 分後だった。課題は後の方になるにつれて、複雑さを増していったものの、悩むようなレベルではない。作成完了したコンテナのアップロードを終えて一息つくと、一足先に完了していた東海林さんが訊いてきた。
 「どうだった」
 「初日だからかもしれませんが、意外に簡単でしたね」
 「答え合わせはどうやってやるんだろうな、これ」東海林さんはモニタを指した。「どっかで誰かが手でやってるのか......お」
 どうしました、と訊こうとしたとき、私のモニタに「結果」とダイアログがポップアップした。「確認」ボタンを押してみると、「正解:20、不正解:0、正答率:100%」と表示された。
 「どうやら自動的に採点してるみたいですね」
 「できた!」細川くんが握りこぶしを作り、勢いよくEnter キーを叩いた。「ああ、疲れた」
 「おつかれって、それほど疲れるようなもんじゃないと思うけど。で、全部できたの?」
 「余裕ですよ。あ、もう結果出たんですね。全問正解ですか、さすがっすね」
 などと言っていた細川くんは、その直後に青くなった。
 「げ、不正解が1 問ありました。あ、これか」
 「その場合、どうなるの?」私は訊いた。
 「間違った課題はやり直しになるみたいですね」細川くんはキーを叩いた。「あ、でも、課題の内容は変わってます。うーん、手がこんでるな」
 細川くんは真剣な顔で、課題に取り組み始めた。その頃になると、同じように結果を受け取ったプログラマたちが、喜んだり、悔しがったりしていた。
 ふと東海林さんが怪訝そうに顔を上げたので、私もその視線の先を見た。少し離れた島で2 人のプログラマが立ち上がると、会議室の1 つに入っていくところだった。続けて、私のすぐ後ろの島から同じように2 人が立ち上がると、やはり同じ会議室に向かって行く。隣同士の2 人だったので、同じ会社からの参加だろう。彼らの顔は強張っていた。
 「よし、できた」細川くんが呟いた。「今度は大丈夫、のはず」
 その手がEnter キーに触れる直前、東海林さんの静かな声がそれを制止した。
 「待て、細川」
 「は?」
 「もう一度、確認しろ。念のために」
 「はあ」
 細川くんが言われた通り、回答の再チェックを始めると、私は東海林さんに目で問いかけた。東海林さんは小さく首を横に振って、後にしろ、と伝えてきた。
 数分後、細川くんは再チェックを終えて回答を送信した。
 「何を間違えてたの?」
 「クリアボタンで画面上の全項目をクリアするやつで、ラジオボタンのクリア方法を間違えてました。value にnull をセットしてしまって......あ、結果来ました」
 私は細川くんのモニタを覗き込んだ。やり直した課題は正解だったらしく、「正答率
:100%」と表示されている。
 「ああ、よかった」細川くんは安堵の表情を浮かべている。「でも、東海林さん、さっき確認しろって言ったのは、何だったんですか」
 「お前はいつも少し詰めが甘いからな」東海林さんは缶コーヒーを飲みながら答えた。「あんな簡単な課題で、2 回もやり直しになったら、うちの会社のスキルを疑われるじゃないか」
 「すいません」
 細川くんは頭をかいた。まずまず優秀なプログラマで、頭の回転も速いのだが、たまに「これでいけるだろう」と思い込んで細部のテストを省略してしまう傾向がある。先ほどのミスも、その類いだろう。
 「ま、理由はそれだけじゃないんだが......」
 「何ですか?」
 「確信はないから今は言わない。明日になればわかると思う」
 それ以上語らなかった東海林さんの予測は、翌日の朝、明らかになった。
 朝、出勤した私たちは、目的を告げられないまま、フリースペースに集められた。
 「えー、お知らせがあります」サブリーダーの一戸さんが、テンションの低い声で話し始めた。「株式会社オリクスさん、オー・ワイ・エス開発株式会社さん、合計4 名の方は、昨日の課題の結果、弊社の求める技術水準に達していないと判断されたため、本日からは参加しないことになりました」
 私たちは息を呑んで顔を見合わせた。東海林さんが、やはりそうか、と言いたそうな表情で手を挙げた。
 「それは課題の正答率で判断されたんでしょうか?」
 「あー、えー、そうですね」一戸さんは困ったような顔で頷いた。「正答率が60% を下回ったためです」
 別のプログラマが手を挙げた。
 「私は3 問間違えましたが、再度トライして、100% になりました。その4 名の方はやり直して、なおその結果だったんでしょうか」
 「えーとですね」
 一戸さんが持っていたタブレットに目を落としたとき、後ろに立っていた白川さんがしなやかな身のこなしで進み出た。
 「株式会社オリクスさんの2 名については、初回の正答率が20% 以下でした。これは、やり直したからどうのという話ではないと判断したので、呼んで話を訊きました。結果、基本的なJava の構文すら理解しておらず、田熊システムと同様、スキルシートの偽造だと判明したのでお引き取り願いました」
 小さなため息があちこちから聞こえた。
 「オー・ワイ・エス開発の2 名については、1 人は初回の採点で100% の正答率を得ましたが、もう1 人は50% でした。リトライ後も、さらに間違いを続けていました。どうやら、結果を早く出そうとするあまり、ろくにテストもしないで提出したようです。そういう見栄っ張りを必要としていないんですよ、うちは。時間制限を設けてあったわけではないので、時間をかけても正しい答えを出していただければよかったんです。まあ、もっとも昨日の課題は、初歩の初歩です。あの程度で60 分以上かけているようでは、早晩、ついてこられなくなるでしょうけどね」
 「1 人は100% だったんですよね」草場さんが手を挙げながら言った。「それなのに外すのは戦力ダウンじゃないですか。それに、100% だった人が指導すれば、もう1 人だって戦力になったかもしれないとは思いませんか」
 淡い微笑が、白川さんの唇に浮かんだ。
 「そんなことをしたら、もう1 人のサポートに時間を取られるじゃないですか」
 「......」
 白川さんは一礼して踵を返しかけたが、そのままくるりと身体を一回転させて、また私たちに向き直った。
 「18:00 になったら課題が開始されますが、今日からは80 分の時間制限を設けます。本当は直前に通知しようと思ってたんですが、まあ、私は親切な人ですから、早めにお伝えしました。では、今日もトレーニングを頑張ってください。1 人でも多く生き残ることを願っておりますよ」
 再び一礼すると、今度こそ白川さんは私たちの前から去っていった。時間制限に間に合わなかった場合どうなるのか、誰も質問しようとしなかった。
 自席に戻った私は、細川くんが青い顔をしているのに気付いた。
 「ぼくは危なかったってことですね」
 「95% の正答率なら、リトライでセーフになるでしょ」
 「でも、ぼくが落ちたら」細川くんは震える声で呟いた。「連帯責任で3 人とも外されるってことですよね」
 東海林さんが笑った。
 「大丈夫だ。お前のレベルは十分だ。うちのプログラマを、そんな柔な奴に育てた覚えはないからな。ただ、最後に2 回ぐらい見直せよ」
 細川くんは頷き、トレーニングの開始に備えて、昨日の問題の復習を開始した。そんな細川くんを見ながら、東海林さんは呟いた。
 「この分だと、トレーニングが終わるまでに、さらに人数が減りそうだな」

 ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇

 その予想は的中した。水曜日の課題の結果、オートコム・ワークス株式会社の2 名とサカクラ(株)の4 名が抗議も空しく追い出され、木曜日には三根システム株式会社の2 名が同じ運命を辿った。課題は日を追うにつれて複雑になっていき、木曜日の課題では私も初めて2 つの誤答を喫し、東海林さんでさえ、1 問をリトライしていた。細川くんは初回の正答率は6 問を間違えて70%、リトライ後も95%、3 回目で合格した。
 不安とプレッシャーの中で行われた金曜日の課題は、時間制限が100 分に引き上げられたが、その分、困難な問題ばかりだった。私は慎重にデバッグとテストを続け、何とか一発合格を果たした。東海林さんも同じく100% の正答率だった。
 細川くんは制限時間の30 分前にアップロードし、70% の正答率だった。私は少しヒヤリとしたが、これは細川くんの戦術だった。早めに提出して向き合う問題数を減らしたのだ。次はギリギリまで時間をかけてコンテナを作成し、3 分前に提出した。もうやり直す時間はないから、結果を待っている間、胃を締め付けられるような思いを味わっていたに違いない。無意識にだろうが、両手を組み合わせて祈るようなポーズになっている。その祈りが報われたのか、1 分後に表示された結果は「100%」だった。
 東海林さんは、細川くんの結果よりも、何人が脱落するかを気にしていたようで、プログラマ席から立ち上がる人が出るたびに、その行き先を追っていた。私が細川くんの合格報告しても、当然だ、と言わんばかりに頷いただけだ。
 トレーニングが全て終わった後、私たちはフリースペースに集められ、白川さんに向き合った。
 「みなさん、おつかれさまでした。先に気になっていることをお伝えしてしまいますね。今日の課題で、株式会社アイカワ製作所の4 名、株式会社オリエントソフトシステムの3 名、株式会社ウィングネットの3 名が、残念ながら水準に達しませんでした。すでにお引き取りいただいていますので、この場にはいません。つまり、みなさんは晴れて、来月からの開発に参加できることになったわけです。おめでとうございます」
 白川さんはパチパチと手を叩いたが、プログラマたちは誰も同調しなかった。白川さんは気にした様子もなく続けた。
 「最初にも言いましたが、この案件は失敗が許されません。こんな試験方式のやり方はあまり例がなく、ひょっとしたら厳しいと思うかもしれません。みなさん、そう思ってるでしょ? 私が冷酷非情な女だとか、氷の美女だとか。違いますか?」
 さすがに何人かが苦笑した。
 「でも、これは必要な措置だったんだと、いずれわかっていただければと思います。外れてもらったような人たちのスキルでは、今後、開発が佳境に入ってくるとついてこられなくなるでしょう。それどころか、みなさんの足を引っ張りかねません。ですから、今のうちに手を打ったまでです。今後も、開発の進行を妨げる、と判断した会社には外れてもらいます」
 全員が気圧されたように沈黙した。白川さんはニッコリ笑った。
 「では、これでトレーニングは終わりです。次にみなさんとお会いするのは、来週の水曜日、2 月1 日ということになりますね。それまで、ゆっくり英気を養っておいてください。インフルエンザとかノロウィルスとか、スノボで足を折るとか、高速の渋滞で苛ついて事故るとか、そういう下らない要因で参加を見合わせる事態にならないように気を付けてください。では、ごきげんよう」
 白川さんは解散を宣言して、さっさとコマンドルームに消えていった。私たちは重い沈黙を残したまま、三々五々、自席に戻っていった。
 「ちょっとやり過ぎな気もしますね」帰り支度をしながら細川くんが言った。「契約的にどうなんでしょう。一方的な契約破棄とかにならないんですかね」
 「お前、業務委託契約書を読んだか?」東海林さんが訊いた。
 「いえ」
 「解約条項の1 つとして、2 月7 日までは無条件で本契約を解除できる、とあるんだよ」東海林さんはスマートフォンを操作しながら言った。「これは双方に権利がある。つまり7 日までなら、俺たちの方からこの仕事をやめる、と申し出ることも可能なんだ。違約金も発生しない。クーリングオフ期間だな」
 東海林さんは優秀な技術者だが、いわゆる技術バカではなく、契約段階から関わることも多い。どんな小規模な案件でも、必ず契約書に目を通している。
 「じゃ、しょうがないですか」
 「法的には問題はないが、あのやり方はどうかな。たまたまA フレの概念になじめないだけで、素の状態からJava で実装させたら優秀だ、ってこともある。実戦で学ぶ機会を与えてやれば急激に成長するプログラマだっている。今時点で技術的に未熟だからといって、片っ端から排除していたら戦力が育たない」
 「それはそうですね」細川くんは実感をこめて頷いた。「ぼくも、前のエース案件では、かなり鍛えられましたよ」
 「普通は、これぐらい長期間の開発なら、多少のバッファをもたせて人を準備するものだが、今回は即戦力が重視されたってことだろうな」
 私は田熊システムの椛山氏のことを思い出して頷いた。同情心に負けて相談に応じていたら、同様のことが繰り返されたかもしれない。足を引っ張る、と言った白川さんの言葉にも納得できる。
 「でも」細川くんが首を傾げた。「クーリングオフ期間は終わっても外れる会社が出てくるんですか」
 「ああ、言ってなかったが、今回の案件、契約は2 ヵ月更新なんだ。説明会のとき、黒野が2 ヵ月毎に単価のベースアップがあるって言ってただろう。書類上は2 ヵ月毎に契約内容を見直して、契約延長か中断を選ぶ形だな。その時点でエースとしては契約を延長しない方を選ぶだけですむ」
 あの人なら使えないと判断されたら、笑顔を浮かべながら容赦なく切り捨てそうだ。私は背中に寒気を感じた。
 「減らすのはいいんですが、その分は補充されるんでしょうかね」
 「補充するにしても、倉庫から在庫を運んでくるというわけにはいかんからな。すぐには難しいだろう」
 「来週から実装に入るんですよね」細川くんが不安そうに唸った。「残ったぼくたちの負荷が増えるだけじゃないですか」
 「それより自分が切られる心配をしろよ」東海林さんは細川くんの肩をこづいた。「最後のテスト、ギリギリだっただろ」
 「あ、見てました?」細川くんは頭を掻いた。「やたらに複雑で頭が混乱しちゃったんですよ」
 「1 日までに復習しとけよ。会社単位でスキルを判断するやり方は、今後も続くかもしれんぞ。お前のせいで外されたりしたら、九州でやってるプログラマ・ブートキャンプに放り込んで、一から勉強し直してもらうからな」
 プログラマ・ブートキャンプは、新人プログラマ向けの合宿形式2 週間コースだ。交通手段もなく、携帯電話もつながらない山奥の合宿所に缶詰になるらしい。6 月に結婚予定の男性にとって、楽しい環境ではないだろう。細川くんは恐怖心を顔いっぱいに浮かべて頷いた。私も他人事だと笑っている場合ではない。
 帰り際、トイレに行った東海林さんをエレベーターの前で待っていると、TSD の草場さんが開発センターから出てきた。名前を忘れてしまった部下の人も一緒だ。
 「どうも」草場さんは苦行から解放されたような笑みを浮かべた。「お互い、生き残ったみたいですね」
 「なんとか」私は会釈した。「来月からよろしくお願いします」
 「こちらこそ。あ、よかったら、これからみんなで食事でもどうですか。丼ものがうまい食堂があるんですよ」
 「ありがとうございます。でも、すみません。これから会社に戻ってやることが残ってるので」
 それは真実ではなかった。今日は息子に早く帰ると約束したからだ。それがなくても、仕事の延長のような夕食より、息子の顔を見ながら、ゆっくりご飯を食べたかった。
 「そうですか」草場さんは頷いた。「お互い、大変ですね。私も明日は出勤して、残っている仕事の片付けですよ。では、また来月」
 草場さんがエレベーターに乗って降りていくと、細川くんが肘でつついてきた。
 「お子さんと約束だって言えばいいじゃないですか」細川くんはニヤニヤしていた。「何ですか、仕事って。カッコつけなくてもいいのに」
 「別に格好つけたわけじゃないわよ」
 言い返したものの、私自身、なぜ仕事を口実にしたのかわからなかった。生活の気配を感じさせたくなかったのだろうか。シングルマザーだとわかったら、一緒に仕事をしていく相手として頼りないと思われる、そんな計算を無意識のうちに成立させていたのか。私は、細川くんの車で送ってもらう間、ずっと考え続けたが、ついに答えは出なかった。

(続)

 この物語はフィクションです。実在する団体名、個人とは一切関係ありません。また、特定の技術や製品の優位性などを主張するものではありません。本文中に登場する技術や製品は実在しないことがあります。

Comment(18)

コメント

匿名

うちの会社も偽装履歴書でひどい目にあったから、クーリングオフ期間欲しい。。。もっともクーリングオフ期間込みで人を雇えるほど、余裕がないけど。

匿名

なんだか「希望」という名の船に乗ってじゃんけんゲームをしている人たちみたいな。
トレーニングルームには黒服サングラスのA社員がウロウロしているのだろうか…。

Dai

> 草場さんがエレーベーター

匿名

草場さんが何気にナイスガイですね

foo

10/16 12:38 の匿名さん
黒服「この男は自らのスキルシートに虚偽の内容を記載しこの現場に入った…!
このような真似は即刻別室送り…!」

エースシステムは帝愛グループ傘下の企業だった可能性が微レz

それにしても、
白川女史の、技術力の無いエンジニアに対する苛烈な態度は、罪と罰の五十嵐を思い出させるが、
五十嵐はエンジニアの地位向上のためにあんな真似をやったのに対し、白川女史はプロジェクト成功のためにこんな真似をしている、
ってところかな。

aoi

4回もやるかはともかくとして、テストでスキルレベルが要求を満たしているかどうかを判定するのはそれほどおかしいとは思わないな。

ただ、100%の1人だけ残した時に、もう1人のサポートに時間を取られるというのがよくわからない。

リーベルG

Dai さん、ありがとうございます。エレベーターですね。

リーベルG

aoi さん、ありがとうございます。
確かに意味が通ってないですね。修正しました。

匿名

業務委託は業務遂行できないから契約解除は出来ても無能だから解除は出来ない
業務を全うすれば誰がやってもいいはず
一人だけが仕事をして残りは新人で仕事してませんでも拒否できない
それは受託側の自由だから

一人だけ残すというのは業務委託のルールあるいは契約上難しいと思うんですが
出来るんでしょうか

Dai

>100%の1人だけ残した時に、もう1人のサポートに時間を取られるというのがよくわからない。
aoiさんのこの指摘、読んだときに違和感感じたのに、先に指摘できなかった。完敗です。(って、ゲームじゃあないですが・・・)

で、あらためて修正された内容を読み返したのですが、
>ろくにテストもしないで提出したようです。そういう見栄っ張りを必要としていないんですよ
ミスはすぐわかってしまうので、「見栄っ張り」というのはちょっと違和感。「適当な仕事をする人」とか?

>1 人でも多く生き残ることを願っておりますよ
間違いではないけれど、判定が会社単位なのだから、「1 社でも多く」が適切な気がしますが、表現としては、よりきつくなりますね。

匿名

スキル確認の為のテスト実施はまあわかるとして、これ技術者一人にいくらの単価なのかしら?
素人に経歴盛って参画させることができる程度の価格じゃない限り、怖くてスキル不足の技術者は送り込めないと思うのだが。
それとも、選別後の契約で再度単価が決まる仕組みなのか?

匿名

今回のストーリの都合で悪徳業者がいる必要があったのでは?
悪役ではなく正義の味方なSEとスキルあるプログラマの物語が本作で、
難しいけど正しい白川さんがプロジェクト完了間近になぜ消えたが初回なんで

K自動車のうんぬんという記述はあったと思いますので
単価の話が出てたので選別後に決まる設定ではなさそうです

20年前は何も知らないド新人が200万だのという話があったそうです
罪と罰が過去の遺物ー技術者編とすると本作はIT業界をターゲットに
問題点を取り上げた作品なのだと思います、その辺りの説明が多かったですから

多分通常の書籍化を想定したものではないかと

Edo

この小説が書籍化しても、TSUTAYAには並ばないだろうな

サルーン

>2017/10/17 17:21
かなり単価が良い記述が第3話にあります

hoge

> この小説が書籍化しても、TSUTAYAには並ばないだろうな
うまいなー

fuga

>2017/10/17 17:21&サルーン氏
単価が高い案件だからこそ、
「スキルを盛ってでもエンジニアを潜り込ませることに成功すれば、ワンチャン大儲けできそう」、というインセンティブが働いてるんだろうな。
で、それはすでに見越しているから事前にフィルタリングをかける、と。

ただ、エースシステムは現場派遣前の面談とかで、スキルを盛ってるエンジニアのフィルタリングはしてないのかな。
前回の描写にも、

>開発センターに集まったIT ベンダーの中に、芳しくない評判を耳にしたことのある会社が何社か混じっている

とあるし。
順当に考えれば、小説の描写外で面談などの一次フィルタリングは実施済み、今回のスキルテストは二次フィルタリング、と脳内補完すればいいんだろうが……。

匿名

>fugaさん
白石さんの性格だと他の人の判断を信用しそうにないです
そして東海林さんと白石さんとは初対面でした
その事から推測するとクーリングオフで対応すればいいと考えてフィルタリングは掛けてない
あるいは他の人のフィルタリングが有効ではないと白石さんは判断しているのだと思われます

匿名

>細川くんは初回の正答率は6 問を間違えて70%
てことは問題数は20問?
80分の制限時間だと1問4分ペースか
オレ受けても合格できる気がしないよ・・・

コメントを投稿する