会員登録すると
このコラムを保存して、いつでも見返せます
「課題を明らかにし、それを解決するソリューションを形にする」ことはITエンジニアにとって面白い部分ではあるが、これを再現可能なプロセスとして言語化するのは難しい。
竹内秀行氏は、まさにその部分に長けているエンジニアだ。企業情報、業界レポート、市場データ、ニュース、統計など経済情報を扱うユーザベースに参画し、「SPEEDA」や「NewsPicks」を作り上げた。現在は起業し、SaaS(サービスとして提供されるソフトウェア)統制プラットフォーム「YESOD」の開発に打ち込む。彼の力の源がどこにあるのか、それを探っていこう。【大内孝子】
誰も、「何を作ればいいか」は教えてくれない
――まず、ユーザベース時代に関わった「SPEEDA」の開発についてお聞きします。さまざまな金融情報を扱うということで、開発はかなり大変だったのではないでしょうか。
竹内:大変だったとか、特に苦労したところは正直なかったです。ただ、すぐにできたわけではなく、これがないと売れないという機能が多かったので、それをしっかり作るところまで持っていくのに1年~1年半かかりました。エンジニアは4、5人いましたが、実際にプログラムを書けたのは僕だけ、みたいな感じでした。
――竹内さんは、よりよいものを作るための提案は積極的にされる方ですか。
竹内:そうですね。当然、最初の仕様はあるわけですが、「こういう形の方がいい」と思ったところがあれば、それを言葉で説明するよりも、作ってしまって、作ったものを周囲の人たちに見てもらうという形で進めていました。
――金融という分野の知識は、かなりお持ちだったのでしょうか。
竹内:どこまでが「詳しい」というラインなのか、という話なのかなと思っていて。もしかしたら普通の人にとっては「それ、詳しいだろ」というラインかもしれないですが、詳しいか詳しくないかでいうと、そんなに詳しくはなかったです。
実際、プロダクトを作っていく上で、ビジネスサイドの人が「こういうものを作りたい」あるいは「こういう考え方でこういうところを作った」となどと話してくれる中で、「金融領域ではここの数字にはこういう意味があるのだ」というように理解していきました。
――今でいう「ドメイン駆動設計」(*1)ですね。2008年当時は、まだそう呼ばれていなかったと思いますが、すでにそういうやり方をしていたということですね。
*1 システムの使用者(ユーザー)が実際に現場で従事する業務に合わせて、ソフトウェアを開発する手法。ドメイン(プログラムを適用する対象となる領域)の知識を得るために、ドメインエキスパート(対象の分野について詳しい人)と向き合ってシステム設計を行う形を採る。
竹内:そうですね。当初の構想も、そもそもふわっとしたものだったので、結局、僕からも「何が作りたいのか」を聞き出さないとできなかった。相手から聞き出すことが得意だったというわけではないのですが、「どうあるべきか」を考えるのはすごく得意だったので、こうあるべきなんじゃないかと仮説を立てた上で、それをユーザベース代表(当時)の梅田優祐にぶつけたりしながら、形にしていきました。
――「どうあるべきか」という思考が常にある。それはプログラマーにとっては当たり前のことなのでしょうか。
竹内:人によるかもしれませんが、昔、活躍していたプログラマーはそうだと思います。仕様をきっちり固めてから作り始めるのではなく、すぐ聞けるような人を隣に置いて、常にやりとりをしながら開発するといったアジャイル開発がはやりだしたのは、ここ10年のこと。それ以前は、本当にプログラマー自身がどうあるべきかを考えて作っていた時代なのではないかな、と僕は思っています。今とは開発の仕方が異なりますね。
また、今は専門性が高くなってきているので、例えばiPhoneアプリを作る、という知識を追い掛けるだけでいっぱいいっぱいで、それ以外のことを勉強する時間が取れない、また時間を取ることが無駄だと考えてしまう人たちが多いのかなと思ったりします。昔は機能や技術的なことで差別化ができなかった分、「何を作るべきか」みたいなことを考える時間の方が多かったような気がします。
情報科学の知識だけでは、ものは作れない
――学生時代に、仲間と受注開発の会社を起業されたと聞きましたが、プログラミングは何歳ぐらいから始めたのですか。
竹内:初めてプログラムに触れたのは、小学校1年生のときです。当時は「N88-BASIC」(*2)で、雑誌に載っていたコードを打ち込んで実際に画面の中でゲームが動く、みたいなものをちょっと作ってみたりしていました。
*2 NECのパソコン「PC-8800シリーズ」(1981年)および「PC-9800シリーズ」(1982年)で動作するプログラミング言語(拡張BASIC)。1982年には『マイコンBASICマガジン』(電波新聞社)などプログラムを紹介する雑誌が登場し、掲載されているプログラムコードを入力すると、パソコンでゲームを実行することができた。
本格的にプログラミングを始めようと思ったのは、中学生のときです。C言語を学び始めて。ただ“Hello world”までは簡単なのですが、そこから先、例えばメモリの管理の仕方とか、実際にMacintoshの上でウィンドウを表示するとなると、プログラムの難易度が全然違っていて、中学生のときは挫折しましたね。実際に理解できる形で始めたのは高校に入ってからです。
――何が起業のきっかけになったのですか。
竹内:大学1年生のときには開発の仕事を受けていましたが、東工大で修士課程にいたとき、「会社を作るってどういうことなんだろう」と試してみたくなって、友達3人と会社を作ってみたのが起業したきっかけです。ちょうどITバブルで、IT系の起業家がそれなりに取り上げられていた時期でした。
そもそも「会社とはなんだろう」、あるいは「個人と法人の違いは何か」といったことから、法人になったときに発生する社会保険の手続きなど、そういうところから含めて経験することが目的の一つでした。実際、会計の仕組みを知ることは面白かったですね。
――なるほど。分からないことを経験したり、まず知ろうとしたりする、と。
竹内:知りたいという知識欲が、たぶん人より旺盛なのかもしれません。いろいろな人と話すことは楽しいですし。いろいろな仕事の仕組みを知ることが、そもそも楽しいので。
――とはいえ、本質的なところを捉えないと、ちゃんとしたものは作れないとよく言われますよね。そこを、竹内さんはナチュラルにやられている印象があります。
竹内:そこを言語化できるといいなと思いつつ、人に伝えるのはなかなか難しくて。性格の問題もおそらくあるでしょうし。ただ、特にエンジニアは「この知識だけを知りたい」という傾向になりがちだと思います。でも、それだと仕事の幅が広がらなかったり、「何を作るべきか」といったことがなかなか見えてこなかったりするので、プログラミングという閉じた世界だけではなくて、もう少し視野を広げるといいのかなと思います。
プログラミングと何かの掛け合わせの部分が一番価値を生む場所なので、日常の暮らしを知らないと社会の課題を自分事として落とし込むことができないし、それが落とし込まれてこないと、やはりエンジニアとして何を作るべきかというところまで考えるのは難しいのではないかなと思います。
――現在手掛けている「YESOD」(*3)を作ろうと思い立ったきっかけは何ですか。
*3 SaaSアカウントを一元的に管理するプラットフォーム。企業が利用する複数のSaaSアカウントを人事・組織情報と紐付け、統括管理することで、業務改善、内部統制、情報セキュリティーへの対応を迅速に行うことができる。
竹内:ユーザベースが上場するとき、監査とは何なのか、なぜ必要なのか、内部統制とはなぜ必要なのか、みたいなことが何となく気になってしまって。調べ始めてみたら面白いなと。
システム化されていないところがたくさんあるんです。ガバナンスやコンプライアンスの部分も、システム化されているのは株価に直結するような部分だけですし。それらを連携させればすごく効率化されるなと思って、このシステムを作り始めたというところです。
人の手でやっているところが結構あるので、それ自体をそもそも変えていければ日本の生産性も上がるし、世界の生産性も上げられるのかなと思っています。
――何を作るべきかというところが分からない人は多いと思います。ハッカソンとかアイディアソンでもアイデアは出るけれど、技術ベースのアイデアだったり。本当に作るべきものは何か、みたいなところまで、なかなか到達できなかったりします。
竹内:情報科学の知識だけでは、ものは作れないので、それ以外のもの、いろいろな分野の知識を持っているからこそ、世の中のもの・ことを見て、どうあるべきかを考えることができるのだと思います。
伸びるのは、「面白がる」力を持って業界を学べるエンジニア
――今、社会の中でのエンジニアのニーズは増えていく流れにあって、優秀なエンジニアを採りたいという企業側と、エンジニアとして社会をより良くしたい、能力を発揮したいという学生側がミスマッチを起こしていることも少なくないのではないかと思います。竹内さんは、今の状況をどう見ていますか。
竹内:エンジニアになりたいという人は増えているのですが、実際、いろいろな課題の解決に対して正しいアプローチができているかどうかというと、それは違う、みたいなことが発生していると思いますね。
先ほども触れましたが、やはりプログラムを作る上では、その業界の知識や、情報科学以外の知識が当然必要になってくるので、そこの部分を本当に勉強する人がすごく少なくなったなと、僕自身、見ていてもどかしいところです。「プログラマーなんだから、プログラミングのことだけやっていればいいでしょ」みたいな思考の人たちが増えているなとは思いますね。
――そうなってしまうのはなぜでしょうか。
竹内:エンジニアって、「エンジニアから評価されたい」みたいな気持ちが強い人たちが多くて、エンジニアに評価されるためには何をすればいいのかという思考になってしまうというのが、一つあるかなと思っています。そこを変えていかないと、そもそも世の中のためになるシステムは作れないのではないかなと思います。
――要は、エンジニアのコミュニティーの中での評価ばかり見てしまう、ということですね。技術系のカンファレンスで頻繁に登壇する、「Qiita」や「はてな」などの技術情報共有サービスで「いいね」が付く知見を公開しているとか。
竹内:そこは、本当にエンジニアの世界に閉じたらいけないと思っています。エンジニアに評価されるエンジニアではなく、それ以外の業界の人たちから評価されるエンジニアになるべきだと、僕は思います。自分がエンジニアとして働く業界のこともちゃんと理解した上でプログラムを作っていく。そのように理解できる人の方が今後も重宝されると思うし、実際に良いものを作れるようになると思います。
もちろん、新しい技術を覚えることも重要だし、それはそれでエンジニアとして面白いことでもあるんです。とはいえ、新しい技術で何か新しいものが作れるかというと、それはまた別の話です。実際にそれを表現する“場”みたいなものが必要で、その場のことをちゃんと理解しないと、良いものは作れないと思います。
――逆に、良いエンジニアを採用したい企業は、何をポイントにするとよいと思いますか。
竹内:そもそも「良いエンジニア」の定義が何なのかということが、一つあります。それこそ、エンジニアが言う「良いエンジニア」は、エンジニアの中で評価されているエンジニアなんです。そういう人を採ったからといって、会社がやっている業務に興味がなければ、全然働けません。
例えば、農業分野の会社に、農業に関してまったく興味のない人がエンジニアとして入っても、そこで何を作ればいいのかが分からない。「非常に優秀だ」と、エンジニアの中で評価されていたとしても。
むしろ、農業について知りたいとか、農業の問題をどうにか解決したいという人をちゃんと採った方が、お互いのためになる。農業はIoT(Internet of Things)が盛んだったりするのですが、電源をどこから引っ張ってくるのかとかそういう問題もあります。それを実現するために他の分野についても勉強することで、「総合的に考えて、こうすれば解決できますよ」と提案できるようになる。
やはり興味があることについては、人間、面白がって勉強するので。逆に興味がないことを勉強するのは苦痛になってしまう。
エンジニアとして伸びるためにも、自分自身の興味があるところに関わるべきだと思っていますし、エンジニアを採用する際にも、自分たちの業界に興味があるのかを見極めた上で採らないと、お互いに不幸になるだけだと思います。エンジニア側も、言われたものを作っているだけでは全然面白くないので。
興味があるからこそ、エンジニアはいろいろなことを試してみたくなる。そうでないと、本当に世の中のためになる、役に立つシステムは作れないし、面白い世の中になっていかないのではないかなと思います。
会員登録すると
このコラムを保存して
いつでも見返せます
マッキンゼー ゴールドマン 三菱商事
P&G アクセンチュア
内定攻略 会員限定公開
トップ企業内定者が利用する外資就活ドットコム
この記事を友達に教える