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

レインメーカー (10) キックオフとフレームワーク

»

◆アリマツ通信 2021.6.1
 プログラミング言語
 普段何気なく使っているCRMシステムやアリマツポータル、勤怠管理システム。これらはもちろん無から生まれてきたわけではなく、どこかの誰かが作ったものです。誰が、はアイカワ製作所さんやどこかのシステム会社さんです。では、何で作られているのか、ということがわかる人はいるでしょうか。プログラミング言語、というシステムを開発するための言語で作られているんです。
 ちなみに<コールくん>はJava というプログラミング言語で作られているそうです。その他にどんなプログラミング言語があるかは、こちらから。
 プログラマーによっては、一人で何種類ものプログラミング言語を使いこなす人がいるのだとか。一種のバイリンガルですね。
 文 総務課 土井

 ◇ ◇ ◇ ◇ ◇

 6 月1 日の夜、田代は目の前に並ぶ二列にレイアウトされたデスクを眺め、この上なく幸福な気分に浸っていた。
 俺の新しいチームだ。
 実際には正しくない表現だとわかっていた。DX 推進ユニットに所属する田代を含めた9 人のメンバー全員が役職を持っていない。田代はリーダーということになっているが、部門方針の決定権はなく、端的に言えば現場監督でしかない。
 だが、この状態に持ってくるまでの苦労を鑑みれば、俺のチームだ、と心の中で思うぐらいは許されるはずだ。田代は誇らしく考えた。それに形式的にはマネージャやサブマネージャの命令であっても、実質的には田代の意志が色濃く反映される。この島に、桑畑副社長や、椋本、根津両副部長の席がないことからも、それは明らかだった。
 俺のチームだ。田代は抑えきれずに笑みを浮かべた。俺が開発方針を決められ、メンバーを育てていけるチームだ。
 前の会社では固定のチームを部署としては持たない方針だった。プロジェクトの規模によって、空いているメンバーのスケジュールやスキルを考慮して必要人数をアサインし、プロマネが指揮する。アサインの際も、同じメンバーが連続して同じプロジェクトに入らないようにされていた。特定のプロジェクトに、スキルの高いメンバーが集中しないように、という理由からだ。業務に支障が出たことはなかったが、エンジニアとして一定以上は決して成長しないような気がすることもあった。また、同業他社の優秀なプロマネが指揮する優秀なチームの話などを耳にして羨ましく思ったこともある。
 ドアが開く音に、田代は表情を引き締めた。
 「あれ」入ってきたイズミが笑いかけた。「まだいたんですか」
 「ああ、おつかれさん。もう片付いた?」
 「はい。土井さんも手伝ってくれたんで」
 つい先ほどまで、DX 推進室のキックオフが会議室で行われていた。DX 推進ユニットに配属が決まった新人5 名、契約社員2 名も顔を揃えた席で、改めて桑畑、椋本、根津の3 人から今期のミッションについて語られた。DX という業界用語が何度も強調されたことで、新人たちに、自分たちが重要な部署に配属されたのだ、と誇らしく思い込ませることには成功したようだ。
 その後、各自の自己紹介の時間となった。桑畑のポケットマネーでソフトドリンクとスナックが並べられ、リラックスした雰囲気の中で、新人たちは学生時代の活動などを、契約社員は過去の仕事について、3 分ほどでそれぞれ語った。土井が写真を撮影しつつメモを取っていたので、後日、アリマツ通信に掲載されるだろう。
 60 分ほどで解散となり、入れ替わりに総務課社員が後片付けのために入ってきた。田代は根津と話しながら会議室を出たが、イズミは残って手伝っていたのだ。
 イズミが向かいの席に座ったので、田代はモニタに目を向けた。正確にはモニタを見ているふりをした。
 レインメーカーの話をイズミから聞いて以来、田代は無意識のうちにイズミの視線を避けていた。気にしない、と言ったものの、やはり少し不気味に感じたことは確かだった。超能力とか心霊現象などには全く興味がなく、真面目に信じている数少ない知人とも距離を取っていたから、突如、身近に実例が出現して戸惑ったのだ。
 もっともイズミの方では、そんな打ち明け話をしたことなどなかったかのような態度だった。少なくとも田代に対して、心を読んだような素振りや言動を見せることはなく、田代に言われた通り、熱心にJava の勉強を続けていた。
 「朝比奈さん、どう思った?」田代は訊いてみた。
 「そうですね」イズミは首を傾げた。「飲み物が炭酸系ばかりだったのがちょっと。私は熱い紅茶とか欲しかったです。あと食べ物がポテチとかっぱえびせんとポッキーだけだったのが寂しかったかなと」
 「......いや、食べ物や飲み物じゃなくて、新メンバーのこと」
 「そっちですか。そんなに話したわけじゃないのでよくわかりませんが、まあ変な人はいなかったみたいですね」
 田代は言外に、特殊能力を発揮したか、と訊いたつもりだったが、わかっているのかいないのか、イズミは言及しなかった。
 「田代さんはどう思いました? メンバーの人たち」
 「ああ」田代は思い出しながら答えた。「新人の5 人は、まあちょっとまだわからんね。明日からJava 研修だから、戦力になるのは少し先になるだろうし」
 「ですね」イズミは頷いた。「やっぱり契約社員の二人ですよね」
 「そうだな......」
 即戦力となるのは2 名の契約社員だ。田代はイズミと何度か話し合い、表向きのミッション、つまり<コールくん>の保守引き継ぎ業務は新人にやらせ、裏ミッションである新システム開発は、田代、イズミ、契約社員2 名で進めることにすると決めていた。イズミは開発経験が少ないし、田代は表向きミッションの指揮も執らなくてはならないので、実質的には契約社員2 名が担うことになるだろう。それだけに2 名のスキルは重要なのだが、田代はどちらにも不満を感じていた。
 沈黙に気付いて向かいのデスクを見ると、イズミが田代の顔を探るようにじっと見つめていた。別の人間なら、これは比喩表現だが、イズミの場合は文字通り、ということもある。どうにもやりにくいな、と田代は内心で苦笑した。
 「少なくとも」田代は二人の顔を思い出しながら、イズミにというより、自分に向かって言った。「職務経歴書を見る限り、スキル面での不安はないと思うんだがなあ」
 一人目の倉田コウジは36 歳で細身の男性だった。パーマをかけた茶髪であごひげを伸ばしている。右耳にはピアスだ。見た目で判断してはいけない、とわかっているが、田代の第一印象は「なんだこいつ」という不安だった。その不安は自己紹介を聞いたとき倍増された。
 「俺......私は残業は基本的にしません」倉田は宣言したのだった。「バンドやってて、週3 回、夜に練習してるし、他の日もプライベートでやることあるので。緊急時はその限りではないですけどね」
 驚いて目を見張った田代だったが、倉田はさらに耳を疑うような言葉を発した。
 「あと、私はあくまでも契約社員なんで、あんまり重要なタスクを振らないでもらえると助かりますね。いわゆるデスマーチなんて参加したいとも思いません。激務を経験してこそエンジニアとしての成長があるなんてのは、単なる搾取でしかないですから」
 新人の誰かが、ではどんな仕事をやりたいと思っているのか、とからかうように訊いたところ、倉田は少し考えて答えた。
 「コーディング基準の作成とか、ドキュメント整理とか、そういう責任がないのがいいですね」
 なんだこいつ、という田代の印象は覆ることがなかった。もっとも職務経歴書を信じるなら、スキル面では問題なさそうに見える。過去3 回転職していて、3 年前にフリーランスとなった。大小のJava プロジェクトを経験していて、SQL 文やJavaScript などの知識も豊富だ。一癖ありそうな性格だが、こういうメンバーを使いこなすこともリーダーの役割だ、と割り切ることにした。とにかく貴重な経験者なのだ。
 もう一人の山下ヨウコは32 歳で小太りの女性だ。5 月に結婚したばかり、ということで結婚指輪を嬉しそうに見せびらかしていた。こちらの職務経歴書にもJava プロジェクトが並んでいた。短い期間のプロジェクトばかりだが、経験したフレームワークや使用したDBMS もしっかり記載されていて、スキル的には問題がなさそうだ。
 田代が不安を感じたのは、前職の退職からややブランクがあることだ。2 年前まで埼玉県のIT ベンダーに勤務していたが、結婚相手の勤務先が横浜市なので結婚が決まると同時に退職し、都筑区に転居している。そこから今日まで働いていない。コロナ禍の影響で再就職に苦労したのか、そもそも就職活動をしていなかったのかは不明だ。
 全員の自己紹介が終わり、残りの時間は立食形式のフリータイムとなったとき、山下は新人の中で唯一の女性である池松ノリコと雑談をしていた。田代は近くで根津と話をしていた、というか根津が一方的に話すのに合わせて相づちを打っていたのだが、ふと山下の言葉が耳に届いた。
 「......そういうことで、契約社員ってことにしたのよ。ま、この仕事は1 年って契約だし、あたしもブランクあるからね。カンを取り戻すためにちょうどいいっていうかね......」
 エンジニアが仕事を通じて経験値を蓄積していくのは当たり前だが、あまりあからさまにそれだけが目的だと公言されるのも、マネジメントする側としては気分がいいものではない。
 要するにどちらの契約社員も、田代に選定の権限があったなら、絶対に採用しなかったエンジニアなのだ。とはいえ、今さら新たな人員と入れ替えるわけにはいかない。
 俺が手綱を引き締めるしかないか。
 田代はそう思いながらイズミをちらりと見た。イズミはサブリーダーなので、田代と共にユニットの方針を決めていく立場なのだが、これまでのところ田代の補佐の範囲から足を踏み出そうとはしていない。怠惰や責任回避ではなく、経験の浅い自分が下手に口を出してもよくないだろう、と考えてのことなのは田代にもわかる。わかるだけに、田代は時々苛立たしく思うことがあるのだ。
 「ところで」イズミが話を変えた。「倉田さんから訊かれたんですけど、フレームワークってどうします? もうそろそろ決めておいた方がいいと思うんですが」
 「フレームワークか」
 それも、ここ何週間か田代を悩ませている問題の一つだった。前職では状況に応じて、様々なWeb アプリケーションフレームワークを使ってきた田代だったが、実のところゼロベースで環境構築から携わったプロジェクトはほとんどない。ほとんどのプロジェクトでは、以前に使用したプロジェクトをひな形として、画面やデータベースを組み込んでいく形だったためだ。
 当初、3 月末までに新システムを作成する、というスケジュールを聞かされたときは、上期中にフレームワークを決定し、環境構築を勉強しつつ、コールセンターシステムに特化した形にカスタマイズしていけばいい、と漠然と考えていた。それだけの時間があれば、じっくり検討できるはずだし、その自信もあった。ところが期限が大きく短縮された今、その余裕はなくなってしまった。
 本来なら5 月に検討の時間を取って然るべきだったが、QQS 案件が正式に受注されたことで時間がなくなってしまった。名古屋CC に新ユニットが設立され、数日おきに対策会議が行われることになり、DX 推進室からも田代が参加を求められたためだ。会議の大部分はコールフローや、オペレータの新規採用、研修などが議題で、田代には直接関係のないことばかりだったが、新システムを使う予定なので運用面の話も聞いておかなければならない。もちろん表向きは<コールくん>を使うことになっているので、宇都も参加している。
 イズミを代理で出席させたいところだったが、実際の電話対応をどのようにWeb ページ上で入力させるか、という落とし込みは経験がないと難しいだろう、と考えて、田代が出席せざるを得なかった。それにCTI(Computer Telephony Integration) やCMS(Call Management System) とCRM システムの連携の話もあるので、今後のことを考えて知識を得ておきたかった、という理由もある。おかげでコールセンターのシステム周りについては、かなり情報を得られたが、肝心のCRM システムの方が後回しになってしまった。
 イズミの言うとおりだ。とっくに決めておくべきことだった。田代は反省しつつ決断した。
 「Seasar2 で行こうと思う」
 イズミは戸惑ったような顔で田代を見た。
 「シーサーツー、ですか」
 「知らない?」
 「いえ」イズミは躊躇いがちに答えた。「Java のフレームワークは新旧いろいろ一通り調べましたから。でもSeasar2 って、もうEOL になってますよね」
 「そうなんだけどね。正直に言うと、俺が自信を持って構築できるのは、Seasar2 ぐらいなんだよ。Spring あたりを使ってみたいのは確かなんだけど、今から、新しいフレームワークを勉強するのは時間がないから」
 「Spring Boot だと簡単らしいですが」
 「簡単といっても、Hello, World レベルならともかく、実業務でのアプリケーションとなると、そうはいかないと思うんだよ。使えるリソースを有効に活用するという意味でも、今回はSeasar2 を使おうと思う。Seasar2 にはTeeda というWeb フレームワークがあって、JSP みたいな特殊なタグを埋め込まなくても、HTML がそのままページとして使えるから楽だ」
 「倉田さんはSpring Boot での開発経験があると書いてありましたけど、環境構築できるか訊いてみたらどうですかね」
 「定時で帰るって宣言してるんだぞ」田代は不快な思いを押し殺した。「何かあったときに連絡も付かないじゃ困るだろ」
 「......」
 「朝比奈さんは反対ってわけか?」
 田代がゆっくり訊くと、イズミは慌てて手を振った。
 「いえいえ、そんなことはないです」
 「じゃ、何が懸念点?」
 「新人さんたちです」
 「え?」
 「いつかは新人さんたちに、新システムを引き継ぐわけですよね。そのとき、あまり古いフレームワークだとネットから情報も得られないだろうし......」
 「そんな先のことまで考えてられないよ」田代は笑った。「それにずっとSeasar2 で行くとは言ってない。いずれはSpring なり別の最新フレームワークなりに置き換えればいいだろう」
 イズミは何か言いかけて、思い直したように言葉を呑み込んだ。田代には発せられなかった言葉が推測できた。後でやろう、と思っていても、実際には業務が忙しくなれば、その時間が取れないことが多い。動いているものを作り直す、というリスクもある。結局、ずるずると最初に採用した技術を使用し続けることになるのではないか、と言いたいのだろう。COBOL が当初の予想を遙かに超えて、今でも使用され続けているように。
 「とにかく」田代は議論を打ち切るように、厳しい声を出した。「Seasar2 とTeeda で行く。早速、詳しく勉強しておいて」
 「わかりました」イズミは従順に頷いた。「倉田さんと山下さんにも伝えておいた方がいいですね。どちらの方もSeasar2 の経験はないようだったので」
 「ああ、そうだね。頼む」
 田代は明日も午前と午後に会議が入っているが、倉田と山下は明日からこの部屋で勤務を開始する予定だ。
 これでよかったのか。田代は何も写っていないモニタを見つめて自問した。自分が知っている技術に逃げただけではないのか。新しい技術を勉強する時間がない、という理由で。
 あるいは、と田代の心にゾッとする考えが浮かんだ。なんだかんだ理由をつけて、二人の経験者が触ったことがないフレームワークを選んだんじゃないのか。俺がこのユニットのリーダーだと示すために。Spring Boot あたりを採用して、倉田や山下が俺より知識を持っているとわかるのが怖くて。そんなクズみたいな理由で。
 いや、そうじゃない。田代は考え直した。スケジュールに余裕がないのは厳然たる事実だ。場合によっては新人連中もこっちに入れる必要が出てくるかもしれない。そのときに俺が明確に指示を出せた方が開発はスムーズに進む。それは間違いない。そのことが重要なんだ。新システムをとにかく期日に間に合うようにリリースすることが。後のことは何とかなる。
 自答を終えた田代はイズミの顔を見ないように立ち上がると、退社することを告げた。おつかれさまでした、と答えたイズミの声は普段と変わりがなく、何の特殊能力もない田代には、その内心をうかがい知ることはできなかった。

(続)

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

 ◇ ◇ ◇ ◇ ◇

 次週は遅い夏休みのため、更新をお休みします。

Comment(8)

コメント

匿名

田代くん信頼できない語り手だった?

匿名

やっと作れたチームを大事にしたい思いから保守的な選択に・・・
これは可哀想。わかるけど、基本的にWeb周りなんて特に新しいほうが便利で早いんだから…

侘助

よりにもよってEOLになったフレームワークを選定するとは・・
スケジュールに余裕がないのはわかるが、すぐに技術的負債に苦しむことになりそう。
新人さんたちも変な環境だと転職して逃げる懸念はある。

匿名

こちらを見たいのに見れない

匿名

枯れた技術を選ぶのは悪い子ではないと思うけど

匿名D

たしか「冷たい方程式」では、
下請けの独自FWを通した案件を、あとからメジャーなFWに置き換えたんでしたっけ。
んで、慣れないFWに下請けの開発力はぐだぐだ。
まあ、普通なら、ひとつきちんとできるものがあったら、
他の手段にもそれなりに対応できるものと思いますけどね。


山下さんは、妊娠でドロップアウトの予感。
ふくよかだったので発覚が遅れた、なんて、ありそう。

かず

最新すぎても困るので、
私は自社のシステムを構築する際、本屋に一番多かったFW(Spring Boot)を選びました。

匿名

自分が理解できるのがそれだけという理由でEOLになったFWを選ぶのはどう考えてもアウト。
2016年以降のニーズやトレンドに対応してないから拡張性もないし、下手すればセキュリティの問題もある。
うまくいっても第2のコールくんを生み出すだけ。

出発点がDXという名前の社内政治な時点で全力で逃げるべき会社。
この会社の描写って宇都さんだけじゃなくそこかしこでオワコン臭がするんだよね。
業務の根幹のシステムを私物化されてるのを取り戻すために採用した人間に対して一方的なスケジュールを提示して失敗したらクビとか頭おかしすぎでしょ。この会社にしてこの社員ありみたいな事例。

コメントを投稿する