見出し画像

認知度1%の超マニアック言語「Haskell(ハスケル)」を日本一極めた男の告白!システムアイNO.1の技術ヲタクがついに登場。

こんにちは、システムアイ広報担当の白井雪乃です!
今回もシステムアイで活躍する社員へのインタビューをお届けしたいと思います。

今回は、自他共に認めるプログラミングヲタクを超えた超ギークな男、岡部究(おかべきわむ)さんにお話を伺いました。

岡部さんは、システムアイCTOを務めている緒方さんも面接前から岡部さんを知っていたくらいHaskell界隈では有名な方です。

インタビューを通して、ヲタクレベルのプログラミング技術に対する熱い想いはもちろん、プログラミングに対しての喜びの矛先まで、人間味溢れる岡部さんを垣間見ることができました!

《インタビュー対象者》
株式会社システムアイ
システムエンジニア 岡部究さん

株式会社リコーで10年間、組み込み系のシステムエンジニアとして、関数型言語を使用したアプリケーション設計、プリンターOSの開発・評価に従事。もっと変化の激しい環境で知的好奇心を満たせるチャレンジングな仕事へ挑戦したい想いからシステムアイにジョイン。Haskellエンジニア界隈では彼の名を知らない人はいないくらいの有名人。

MSXパソコンを使ったゲームとの出会い


小学4年生の時に、親からプレゼントされたパソコンがプログラミングにのめり込んだきっかけですね。

特に、親がパソコンに詳しかったとか、特別な技術を持っていたとかではないので、両親から影響を受けたということではないのですが(笑)

パソコンが手元にあった当時に、偶然、学研の学習雑誌を取っていたんですね。確か、その当時の学研の学習雑誌に、MSXパソコンを使ったゲームが載っていて、それを見て「面白そう!やってみたい!」と小学生ながらに思ったのを覚えています。

その時に、ベーシックを見よう見まねで写したりしていて、そこから、プログラミングを書いて何かができるということにハマっていきました。

そこから、大学では、強電力の半導体実験を行う電気工学部に入りました。これでも、学生時代は、電気回路のエンジニアリングをやってみたいと思っていたんです(笑)

大学生の頃は、プログラミングは趣味で続けようと思っていて、社会に出たら電気回路の設計者として生計を立てていこうと思っていました。

LINUX JAPANに魅せられて


大学時代に、LINUX JAPANという雑誌があり、その雑誌にDebian JP Projectという自由に利用・変更・配布可能なオペレーティングシステムのDebian特集が組まれていたんですね。

「ディレクトリ・ディストリビューションを作るから参加しませんか?」という募集をみて、サークルというか、ヲタクだらけのコミュニティにはいったんです。ちなみに、今も所属していますよ。

Debian JP Projectはとても民主的な組織で、リーダーが数年に一回投票で変わるし、どういうふうにDebianプロジェクトを前に進めるかというのを表明演説するのも魅力的に感じました。

そんな出会いから、大学時代の時に、ソフトウェアプログラマーとしての活動を趣味で始めたんです。

Debian JP Projectに出会ってからも、ソフトウェアはあくまで趣味として捉えていて、電気回路の設計者として仕事したい気持ちに変わりはなかったです(笑)

今思えば、Debian JP Projectとの出会いが、本格的にソフトエンジニアとしてのキャリアを描いたきっかけなのかもしれません。

大学卒業後もまだ電気回路のエンジニアリングをやってみたいという気持ちに変わりはなく、本業として、オシロスコープを設計するエンジニアになりたいという気持ちでリコーに就職したんですが、結局いまの仕事が好きで好きで、深夜何時まででも考えていたし取り組んでいたいと思える原点は、大学時代にあったんじゃないかと思います。

リコーに就職してからもソフトウェアのプログラミングは趣味でやるという気持ちは変わらなかったんですが、まさかまさかの出来事で、FPGAのエンジニアの部署か、ソフトエンジニアのOSを扱う部署にいくかを選ばなければならず、そこでソフトエンジニアの部署を選びました。

電気回路の設計者として生計を立てていこうと思っていた私にとって、思わぬところでソフトエンジニアとしてのキャリアがスタートしてしまったわけです(笑)

クレイジーな技術に興奮を覚えてしまった...


リコーで取り扱っていたコピー機って、実はソフト・リアルタイムで動いているんですね。例えば、FAXもリアルタイム周期が守れないと、使えないというイメージです。

機械なのにNetBSBというオープンソースのソフトウェアを使っていることを入社後に知って、単純に「なぜ?クレイジーだな」と思いました(笑)だからこそ、基盤になるソフトウェアのOSを取り扱う部署を選んだんです。

きっと、普通だったら今まで学んできた電気回路のエンジニアのキャリアを選ぶと思うんですが、クレイジーなものは楽しいと感じるし、これって普通じゃ出来ないよね?と感じたりすると、面白いからやってみたいと感じるんです。ちょっとおかしいかもしれませんね(笑)

実際に、ソフトウェアエンジニアの道を選択してからは、本当に長時間勤務で大変でしたが、ソフトを開発できる、しかもオープンソースで書けるという喜びで満ち溢れていましたね。

なので、時間も気にしなくなるくらいで、5、6年があっという間に過ぎていったなという感覚でした(笑)

ですが、ソフトウェアも常に進化しているので、不具合が起きる確率も大きくなってプロセスが悪くなることはどうしても避けられない。

だからこそ、ソフトウェアエンジニアになって10年以上が経ちますが、今でも、そのような負の連鎖を断ち切りたい、断ち切れるようなソフトをオープンソースで開発していきたいという思いがあります。

認知度1%の超マニアック言語「Haskell(ハスケル)」


今から、10年前くらいに、日本で大きなHaskellブームが起こったんですね。今でも、Haskellを知らないエンジニアはいっぱいいるので、多分私のようなマニアックなエンジニアの中で起こったブームだったと思うんですが(笑)

Haskellを知ったことで、「型」のポテンシャルを最大限に引き出すことを知れたのは、エンジニアとしてとても大きな出来事でした。

Haskellは、型推論があるのが特別だなと思っています。なんて言うんでしょうか...。エンジニアとして、過去にやりたくても出来なかったことをHaskellを知っていることで出来るという未来があるって感じです。

Haskellを知ってて良かったことは、C言語でも型を意識して書くようになったことです。型に対しての曖昧さがなくなって、パフォーマンスが上がるようになりましたし、強い型付けが出来るようになりました。

Haskellを知らないエンジニアも多いですが、私は、Haskellの豊富で実験的なライブラリがあったり、独自にエンジニアがめんどくさいなと思うことも、C言語にコンパイルして、バイナリにできたりするところが好きなんです。

こんなふうに話すと、“マニア”と言われても仕方ないですよね(笑)

エンジニアが、手をかければ品質を担保出来るのは当たり前。だからこそ、あまり人の力をかけずに不具合を少なくなるようにするということが、ソフトウェアエンジニアとしての私の大きなテーマなんです。

Haskellの知識を生かして、人の手をかけない方向で不具合をすくなくするシステムを作っていきたいですね。

「コードとコードの間を読めるようになれ」の真実


私のエンジニア人生の指針として“コードとコードの間を読めるようになれ”ということを教えてくれた鵜飼文敏さんにとても影響を受けました。

彼は、私が大学生の頃に、Debian JP Projectのリーダーとして、かなり名を馳せた人なんです。

学生時代は、夜型だったので、いつも朝の5時まで起きていたんですが、鵜飼さんは、いつ見てもDebian JP ProjectのIRCチャンネルにいてエンジニアたちの質問に答えていたんですよ。

当時、ヒューレット・パッカードで研究者をやっていたはずなのに、です(笑)どんだけプログラミングが好きなんだと思いました。

私にとって、鵜飼さんは、とにかくコードを読むということを教えてくれたような人です。過去、ネットには「鵜飼文敏語録」というものがあって、私はそれをずっと読んでいました。

コードには真実があって、ドキュメントにはみんなが思い描く理想の姿があると思っています。

だけど、理想と現実には必ずギャップがあって、そのギャップはいつも埋まらないんです。

だからこそ、鵜飼さんの“コードとコードの間を読めるようになれ”という言葉は、私に大きな影響を与えてくれました。ドキュメント否定派では無いですけどね(笑)

鵜飼さんに影響を受けたこともあり、今IT業界で多い、ピクチャーという大きなデザインドキュメントを書いて、チームが合意したらいきなりコードを書き始める。場合によっては、いきなりコードを書いてレビュープロセスをしてもいいんじゃないかという意見もある事実にモヤモヤすることがあります。

コードファーストというやり方で、既成事実を作り上げてしまうというか...。

だから私は、デザインしながらコードを書いている方が、デザインされたものをコードに落とすよりも楽しいんです。

尚且つ、デザインするときには、結局コードのことを考えていないと書けないので、常に“コードとコードの間を読めるようになれ”という言葉を大切にしています。

いかに最短最速でパズルのピースを組むか


私は、“この分野が”、“この仕組みや技術が”というところに魅力を感じるのではなく、エンジニアとしての達成しなければならないお題が与えられたときに、いかに、既存のものを組み合わせられるかというところに、エンジニアとしての魅力を感じています。

心の中では「ほら、新しいものを開発しなくても、既存のシステムを組み合わせると解決できましたよ」って思ってドヤ顔してます(笑)

既存のシステムを組み合わせるというのが、僕にとっては、オープンソースだったんです。クライアントの希望に沿ったソフトウェアをオーダーメイドで作れるんですよね。

確かに、0から構築して自前でスクラッチから作るのが好きというエンジニアもいますが、私はどちらかと言うと、説明書がないプラモデルやパズルを作るのと同じように、既存のパーツや断面を組み合わせて作って、求められているものに仕立てられるんだろうかと言うところに面白さを感じる改造マニアです(笑)

正直言うと、既存のものを組み合わせるので、楽してすごいだろって言いたいのはありますよ(笑)

伝えるのが難しいんですが、プログラミングが好きだからこそ、プログラムの詳しい部分をそんなに知りたくないんですよ。

こういう入力を与えると、こういう出力で返ってくるよと言う答えがあるものには興味がないんです。ゼロから作りたいと言う人は、プログラム全ての仕組みを知りたい人だと思っていて、私はオープンソースで、今あるプログラムを組み合わせて作ればいいのにと思うんですね。

やっぱり“プログラムを組み合わせて改造するのが楽しい”という言葉が一番合っている気がします。

「最高の報酬」は成果物へのフィードバック


私は仕事をしていくなかで、レビューからテストまで半年かかることも経験し、自分のコミットが中途半端のまま、リポジトリーに反映されないということにストレスを感じました。

昔は、もう少しスピード感を持って仕事をしたいという思いを持っていたこともあり、10年前にOSを担保するシステムを作ってビジネスをしようとフリーランスになったことがありました。

でも、実際にフリーランスでソフトウェアエンジニアをやってみると、なかなかフィードバックが得られず、苦しい思いをしたんです。

テスト工数が膨れ上がっているプログラムを改善したいというような実際の生の問題に直面しないと、プログラミングのアイデアすら浮かんでこなかった。だからこそ、クライアントや実際にシステムを利用するお客様がいてのプログラミングだと気付いたんです。

なので、今は、システムアイで生の問題に直面できること、お客様に寄り添えるプログラミングを作れることにとても幸せを感じています。

問題を解決できたことに喜びを感じるし、それが評価されることに更なる喜びを感じます。

これからも、お客様や相手に何が求められてるのかを第一に考え、そこでどういったプログラムを組んで問題解決に導けるのかということをやりがいとして、私なりのプログラムでやりきるという現場レベルでの喜びを大切にしていきたいと思っています。

おわりに


ここまで読んでいただきありがとうございました。いかがでしたか?

クライアントの問題解決のために、大きな責任と覚悟が求められるシステムエンジニア。システムアイという会社には、人並み以上のギークなプログラミング愛溢れる岡部さんのような社員がたくさんいます。

今回の岡部さんのインタビューを読んでいただくと、システムアイには、プログラミングを極めるヲタク気質でありながらお客様からの声を大切する面白い社員がたくさんいる会社だということが伝わったのかなと思っています。

今後も、システムアイ社員のこれまでにフォーカスを当てたインタビュー記事を更新していきます。

システムアイのプログラミング愛溢れる社員のお話をぜひ楽しみにしていてください。

▶︎カジュアル面談のご応募はこちらから