1
/
5

「社会の中で働くシステムを書きたい」と博士課程からIT企業のエンジニアへ(現在編)

こんにちは。経営企画室の伊藤です。
フォルシアでは通年、積極的にキャリア採用を行っており、大手マスメディアや旅行会社、金融業界の出身者など様々なバックグラウンドをもった社員が活躍しています。

本日は、大学院で博士課程の学生をしながら大学の助手を務め、その後フォルシアに入社したエンジニア 恒川雄太郎(つねかわ・ゆうたろう)さんのインタビューをご紹介します。まずは前編、現在のお仕事についてお話を伺いました。(※所属、業務内容は取材時点の内容となります。

現在編

現在のお仕事内容を教えてください。

お客様に使って頂いている、フォルシアの基盤技術Spookを用いて作られた検索システムの保守業務が大部分になります。

保守というのはお客様から報告頂いたシステムの不具合に対してその原因調査と修正作業のことで、私は主にJavaScriptとSQLを読み書きしています。保守の案件は単発のものが多く、対応期間が長くなるものでも10営業日程度で行うような規模感です。

システムの不具合というのはニュースなどで取り上げられるシステムの本番障害とは異なります。自動車で例えるなら、本番障害は走っている最中にブレーキが効かなくなりましたといったイメージで、保守業務で対応する不具合というのは、長く乗り続けてきてタイヤが擦り切れてきたなとか、冷房の効きが悪くなってきたなといったイメージです。要するにメンテナンスですね。

長く使っているソフトウェアというのは自動車といっしょで古くなって動かなくなった部品があったり、汚れてきたなくなった部分があったりします。具体的には、画面の表示が特定条件下で想定通りになっていなかったり、画面遷移した際に前後の画面で表示金額が異なっていたり。自動車の故障した部品を取り替えたり、直したり、キレイにしたりするのと同様、ソフトウェアも日々のメンテナンスが必要なものなんです。

より身近な例を挙げると、スマホのアプリやオンラインゲームにはしょっちゅうアップデートがありますよね。あれは新しい機能が実装されるというケースももちろんあるのですが、アップデート内容を読んでみるとバグの改修というケースも多くあるんです。10年以上、世界規模で遊ばれているゲームであっても、半月に一度のパッチで不具合が直されていくということは当たり前にあることで、私が携わっている運用保守業務もそれをイメージしていただけると良いかと思います。

1日のスケジュールはだいたいこのような感じです。


あとはタスクフォースといって、エンジニアの中での横串組織にも属しています。
そこでは通常の保守業務とは別のアプリを触ってみたり、コードを読んだり、新しいことを何かやってみようと思った際にチャレンジできる場があることも面白いです。


フォルシアのエンジニアの特徴に「ビジネスのわかるエンジニア」というものがありますが、クライアントと直接関わることもあるのですか?

営業担当を介さずに自分でクライアントと連絡をとって進めています。
テストアップしたので確認してください、リリースしたので確認してくださいといった保守の対応状況を伝えるものはもちろん、不具合の詳細をヒアリングさせていただいたり、そもそも仕様が曖昧で正しい挙動とは何であるかということが不明瞭な場合は、より自然な動作の仕様を提案させていただくこともあります。

大手企業では役割がとても細分化されていてエンジニアが表立つことは少ないのではないかと思うので、この規模であり、「ビジネスのわかるエンジニア」を目指すフォルシアならではだなと感じています。実際、大手IT企業へ行った学部の同期の例では、業務自体は私と同じような保守業務ですがクライアントとの連携は別部署が行っているなんて話も聞いたことがあります。


昨年10月にキャリア入社され約半年ですが、フォルシアで働き始めてびっくりした点や興味深いと思った点を教えてください。

びっくりした点は、情報系が専門ではなかったエンジニアの人がたくさん活躍しているということです。
入社前は情報系修士卒が多いのかなと勝手に想像していましたが、フォルシアで働く先輩エンジニアの方は理学系や工学系出身だったり、文系出身でプログラミング未経験だった方もいます。様々な経歴を持った方がゴリゴリコーディングして、複雑なシステムや新しいフレームワークの深い議論をしているのを目にして日々とても驚き、刺激をもらっています。

昨年度の優秀プロジェクト(社内表彰制度)として表彰されていた「SQLクエリの高速化」に携わった同じチームの先輩も実は商学部出身で、独学でプログラミングを勉強されたと聞きました。これって本当にすごいことだと思っていて、SQLクエリを高速化しましょうというテーマで書かれた技術書は数多くありますが、載っている内容は一般的な、どんなケースにでも当てはまるようなことでしかない場合が多いんです。ですが、本当に業務の中で高速化に向き合うと、考慮すべきことは非常に多く、各データに合わせた独自のチューニングが必要になります。それを独学でプログラミングを学ばれた方が行っているということはとてもびっくりしましたね。


独学で学ぶということはやはり難しいものなのですか?

難しいと思いますね。プログラミング未経験のかたにとっては、何がわからなくて何がわかっているのかという切り分けが非常に難しいのではないかと思っています。何か不具合が発生して原因を探る際、自分が知らないことが多い状態ですとその知らないことの中に原因が含まれていた際に自分では確認のしようがありません。

プログラミングを教わって習得し、体系立てて全体像を見られるようになれば原因がどこにあるかだいたいの見当がつきますが、未経験の場合はそのあたりをつけていくことも難しいですし、自分に対処できる内容なのか否かという不安も多くあるのではないでしょうか。


この半年間のなかで、一番やりがいがあったお仕事はどのようなものでしょうか?

本番環境のシステムで障害が発生し緊急で原因特定と復旧作業をしたことです。
様々な警告メッセージやエラーメッセージが入り乱れるシステムログの中から障害の原因となっている情報を取り出し、初めて読むコード群の制御構造を追いかけて問題となっているSQLクエリを特定しました。スピードが要求される作業で緊張しましたが、無事に業務時間内に復旧できたので嬉しかったです。

私は大学でコンピュータシステムを使いこなすための勉強や経験をしてきたつもりだったので、それが活きたような気がして充実感がありました。まだ未熟ですが、もっと自由にコンピュータを使いこなせるようになりたいです。


緊急の対応と聞くと非常に緊迫感がありますが、働く上で大切にされていることはありますでしょうか?

プログラムとデータを素早く正確に読むことです。
私は仕事中はだいたいプログラムとデータを読んでいます。

それらを正確に読むことができれば、修正作業を過不足なく行うことができると考えています。読みが甘いと、修正作業が不足したり予想外の箇所に影響を出したりしたこともあります。しかしながら、読むプログラムとデータの量に比例して、当然かかる時間も増大します。どれだけ素早く大量のプログラムとデータを正確に読むことができるかが、シンプルですが難しく、仕事を行うにあたって大切なことだと考えています。


早く正確に読む。何かコツや工夫している点があれば教えてください。

読んでいる中で一番感じることは、「途中で息切れしない」ということです。
関数の呼び出しをさかのぼっていく途中で息切れせずに最下層まで到達することが大事なような気がします。

プログラムを読むというのは基本的には関数の呼び出しをどんどんさかのぼっていくことになるのですが、一つさかのぼるごとにどんどんさかのぼらないといけないことが増えていくんです。なのでさかのぼっていくのは非常に息切れしやすいことだと思います。ただ、それを頑張って最下層まで読み切ることが大事なのではないかと思っています。

プログラムに不具合があるということは、人間が正しいと思って実装したことがどこかで間違っていたということなので、さかのぼることを途中でやめてここから先は正しいだろうと結論付けてしまうことは不具合を修正するうえで効果的ではないと思っています。正確に、最下層まで読み切る、それが外部のフレームワークやライブラリであったとしても、ちゃんとそのソースコードを突き合わせたり、他のドキュメントを参照したりすることが大事だと思いますし、やはりどこかで途中止めにすると、そこにまた戻って作業し直さないといけなくなったりもするので、二度手間になると思います。

また、途中でわからなくなった時にあらゆる値をプリントする(画面に表示させる)ことも大事です。簡単に言うと、計算の解だけを見るのではなく、途中式を表示させて、途中式内に計算ミスがないかを確認するようなイメージです。正しいと思いこんでいた変数が予想外の値を持っていることがよくありますし、そもそもプログラムの制御の流れが認識と違う場合などに気づくことができます。研究室時代には数千行にわたってすべての行にプリントを挟み込んで、実行結果を印刷して紙面で確認したこともありました。テーブルの上にA4の印刷用紙をワーッと並べたりもしましたね。

よくわからないものの中身を全部見るというのがコツなのかもしれません。


以上、恒川さんの「いま」をお届けしました!
後編では「これまで」、そして「これから」をご紹介致します。お楽しみに!



プロフィール

エンジニア
恒川 雄太郎(つねかわ・ゆうたろう)

  • 入社年度:2021年度キャリア入社
  • 所属部署:旅行プラットフォーム部
  • オフの過ごし方:家でゲームをしたり、ほったらかしにしていた本を読んだり、本にあるプログラムを動かしたりしています。たまに本屋にいって本の目次をながめたり、めくったりもします。未経験のプログラミング言語の入門書を見かけるとワクワクして購入しますが、たいてい少し読んでほったらかしになります。
  • 自分を漢字一文字で表すと...「縁」
    振り返ってみて、自分はいろんな人やものとの出会いに恵まれていると思います。
    友人だったり、指導者だったり、先輩・後輩・同期にも恵まれました。特に所属した研究室の指導教員と研究室時代をいっしょに過ごした人との出会いはとても良いものでした。偶然フォルシアの存在を知り、入社して少し経ったいま「また良い縁に恵まれたなぁ」と思っています。
  • フォルシアを漢字一文字で表すと...「人」
    社員を大切にしている会社だと思います。
    また、そこで働いている人も一緒に働く同僚を大切にしていると感じます。新人の私を新人扱いせず一人の技術者として議論に参加させてくれたり、一方で初めてでわからないことは手厚くサポートしてくれたりします。
フォルシア株式会社からお誘い
この話題に共感したら、メンバーと話してみませんか?
フォルシア株式会社では一緒に働く仲間を募集しています
2 いいね!
2 いいね!

同じタグの記事

今週のランキング

伊藤 明日香さんにいいねを伝えよう
伊藤 明日香さんや会社があなたに興味を持つかも