将来プログラムに関わるだろうと漠然と考えていた

まずは中村さんのご経歴について教えてください。
私は、2008年に新卒採用でゲオホールディングスに入社し、システム開発部に配属されました。当時は社内事業である、ネットカフェのPOSシステムの保守が主な業務でした。
それ以降もさまざまな事業やシステムに携わっており、例えば弊社会員のエントリーシステムや、共通ポイントサービスに加盟した際の連携、セカンドストリートオンラインのWebサイト構築、当社グループ全店で使用されているPOSシステムのリプレイスなどを対応しましたね。
その後も、店舗システムの開発を中心に携わることが多かったです。
現在の業務は、どのような内容になりますか?
昨年10月にフロントSE課に異動して主にシステム案件の取りまとめを行っています。ざっくりお話すると、案件として進めるに適した効果を得られるかの判断を行うため、事業側に寄り添いながら課題を洗い出し、どのようなシステムを作りたいか要件を詰めて実装コストを算出し、OKが出ればシステム開発を担う部署に依頼するようなことをしています。社内には様々なシステムがある中で、店舗システムの案件をメインで担当させていただいています。
異動前までは実際に手を動かしてプログラムを作成することは勿論、要件定義から導入、保守など一貫してシステム開発業務に従事していました。
なるほど。入社されてから、約15年ほどゲオホールディングスでエンジニアとして働かれていらっしゃる中村さんですが、はじめてプログラミングに触れたのはいつごろでしょうか?
初めてプログラミングに触れたのは大学生のころです。理工学部に進学し、演習で「Hello world」を表示するところから始めました。その頃から将来プログラムに関わる仕事に就きたいと漠然と思っていました。
困難を乗り越えられるのは、努力が“成果物”になるから

プログラミングを活用し、日々お仕事をするなかで、大きな達成感を得られた経験やプロジェクトはありましたか?
今までで一番達成感を得られたのは、弊社の全店で動いているPOSシステムのリプレイスを行ったプロジェクトですね。
POSというと、普通コンビニで使用されているような販売・棚卸し・発注ができるようなシステムをイメージする人が多いかもしれませんが、弊社の場合は他にもレンタルや買取・中古販売という業務を行えるようにするのも必要で……。当時は弊社が求めるようなパッケージが世に出ておらず、自社で内製したPOSシステムを長いこと使用しており、それをリプレイスすることになったんです。
かなり短期間で、少数精鋭のチームで作り上げるプロジェクトでしたが、本当にひたすらコーディングの日々で。色々なエラーを出しながらも、しっかり安定稼働できる状態にまでもっていけたのはやりがいがありましたね。
ハードなプロジェクトだからこそ、やり遂げたときの達成感が大きかったんですね。
そうですね。自分がコーディングしたシステムが実際に店舗で活用されているのをみると、感慨深いものがありますね。
いまの質問に付随して、難易度が高かったプロジェクトはありましたか?
一番難しかったのは、入社10年目くらいに参画した、アメリカに出店するセカンドストリートのPOSシステム開発プロジェクトです。法律も文化も日本とまったく異なるので、そのあたりをヒアリングしてシステム要件に落とし込んだり、時差や現地での機材準備等を加味してリリース計画を検討したりと苦戦しましたが良い経験を積ませていただきました。
それはとても難易度が高そうですね……。さまざまな困難を乗り越えながらも、コーディングをし続けるモチベーションの源には、何があるのでしょうか?
努力した結果が、成果物として形になることでしょうか。努力が目に見えてわかりやすい形になりますし、開発したシステムがちゃんと使用されて評価されると嬉しいですね。よりよい成果物を生み出せるとモチベーションがあがります。
スキルの習得に悩んだ新卒時代。効果的なのは実践すること

これまでさまざまなプロジェクトに携わってこられた中村さんですが、入社当初は技術の習得や学習に悩んだ経験もあったのではないでしょうか?
もちろんありました。私が入社した14年前は、今と比較すると教育体制もそれほど整っていませんでしたし、とにかく手を動かして覚えるような体制だったので、本当に悩みましたね。
「初めのころはとにかくスキルを身につけないと」と、勉強サイトを見たり、書籍を読んだり、研修へ行ったりしていました。
試行錯誤されていたのですね!中村さんのなかで一番しっくりきた学習法はどれでしたか?
一番よかったのは、実際に家でコードを書いてみることです。
座学で知識をインプットするのも大事ですが、とにかくコードを書いてみるのが上達のコツだと思います。とくに私はあまり勉強が好きではなかったので、経験から習得することが多かったですね。
初めて触れる言語はとにかく書いてみる。何を書けばいいのかわからない場合は、インターネットにたくさん答えが載っています。例えば、初心者向けのサイトを見ながら、コードをなぞるように書いてみるなど、実践しながら理解するのが重要だと思いますね。
エンジニア初心者や、プログラミング未経験から学習している方にアドバイスをするなら、どんな言葉をかけますか?
実際にコードを書いてみることはもちろんですけど、業務でプログラミングに携わっているだけでは限られた技術しか身につかないので、自分のスキルアップのためにも学び続ける姿勢はとても大切だと伝えたいです。
次に目指すは「提案できるエンジニア」

中村さんのなかで、プログラミングスキルを“活かせる人”であるメリットは何だと思いますか?
そんなことはないと思いますが、今の会社がなくなっても通用するスキルがあることです。
あとは、今の業務でもプログラミングスキルがあることでメリットを感じる場面は多々ありますね。今はプレイヤーとして手を動かすのではなく、システム案件の取りまとめを行っています。実際にユーザーヒアリングを行う際、どういうものを作れるのか、開発にはどれくらいの期間がかかるのかなどが理解できるので、事業部と情報システム部の仲介をより精度高くできる点は、スキルがあるからこそのメリットです。
日常生活のなかで活かせる点はありますか?
難しい質問ですね(笑)。プログラミング経験により論理的思考力(ロジカルシンキング)が養われ、日常生活のあらゆるところで活かせていると思います。例えば、家電のセッティングでエラーが出たときに、原因として考えられる要素を一つずつ確認して解決するなどですね。目的を達成するために、どのような手段があるか整理して、どのように実行するかを考える力は公私ともに役立ちます。
技術を“活かせる人”として、今後の目標があれば教えてください。
いまある課題に対して、指示されたものをつくるだけではなく、「これだったら、こういう方法もありますよ」「こうすればもっといいものがつくれるかもしれません」など、提案ができるようになりたいです。
今の部署ではとくに提案を求められる場面も多いですし、提案力があると、より相手の課題に寄り添えると思うんです。実際にプレイヤーとして手を動かしているときは意識できなかったので、提案力を身につけていきたいですね。