2007年創業の株式会社Helpfeel(旧Nota株式会社)は、スクリーンショット共有ツール「Gyazo」とナレッジ共有サービス「Scrapbox」、検索型FAQシステム「Helpfeel」という3つのプロダクトを提供するスタートアップです。
このうち「Helpfeel」は、曖昧な表現や感覚的な表現、スペルミスなどを含んだ入力に対応する「意図予測検索」によって、FAQ検索ヒット率98%を実現。エンドユーザーの課題解決を補助するだけでなく、カスタマーサポートやコールセンターの負担軽減に貢献します。
エンジニアの秦友幸は「Helpfeel」のヘルプサイト管理者向けの機能やバックエンドの機能を担当しています。そして、秦は業務でコードを書くだけではなく、プライベートの活動でもお絵かきアプリ「premy」やJSXおよびTSXの文章校正をする「textlint-plugin-jsx」などのOSSの開発も行っているのです。根っからの技術屋である彼のキャリアについて聞きました。
趣味の活動から始まったエンジニアとしての歩み
秦とプログラミングとの出会いは小学6年生の頃。Windows上で手軽にソフトウェアを開発できる、HSP(Hot Soup Processor)というスクリプト言語に触れたのがきっかけです。ブロック崩しやシューティングなどのゲームを作成していました。また、ソフトウェアだけではなくハードウェアにも触れていたといいます。
当時から、コンピューター内部の複雑な仕組みを知ることに楽しさを覚えていました。自然と「将来はエンジニアとして働こう」と考えるように。そして高等専門学校に進み、最初の就職先としてSES企業を選びます。
「その頃の私は、組み込み系のプログラミングをしたりRaspberry PiでWebサーバーを立てたりと、幅広い技術領域に触れていました。今後、どの技術領域に特化するか決めかねている時期だったんです。そのSES企業は、組み込み系からWebアプリケーションまで幅広く手掛けていることをコーポレートサイトで謳っていて。さまざまな技術を扱うその環境ならば、自分に合っているのではないかと考えました」
秦が配属されたのは公共機関のサービスを開発するプロジェクトです。その職場ではシステムを堅牢に保つための仕組みやノウハウを学ぶことができ、エンジニアとして成長できたといいます。しかし、現場で担当する業務の内容に、秦は違和感を覚えるようになりました。
「エンジニアが担う業務のなかには、基本設計書や画面仕様書など各種ドキュメントを作成するというものがありました。そして、仕様書のなかにはプログラムで使用する変数の一覧を記載する欄があり、変数の日本語名・英語名や型、説明などをエンジニアが埋めていく必要があったんです。そういった仕事に携わっているうちに、機械と人間の立場が反転しているような感覚を覚えて。徐々に『エンジニアとしてもっと楽をするためにプログラミングをしたい』と考えるようになりました」
OSS開発がつないでくれたHelpfeelとの縁
そう考えた秦は、Web制作会社に転職をします。この会社では前職とは打って変わり、TypeScriptやReact、GraphQLなど積極的にモダンな技術を採用するプロジェクトに携わりました。一方で、そのプロジェクトは「新しい技術を“過剰に”取り入れる傾向があった」と話します。つまり、最新技術を試すことそのものが目的化してしまっていたのです。
エンジニアが新しい技術を習得するための学習コストも高くなり、プロジェクトの進捗にマイナスの影響が出ていました。この時代に「プロジェクトで達成すべき目的は何かを考えて、適切に技術を選択すること」の重要性を学んだといいます。
秦がWeb制作会社で携わったのは、ユーザーがブログを書くことのできるプラットフォーム。そのシステムの開発では、ブログの投稿機能を作成するために、OSSのブロックエディタであるEditor.jsを活用していました。そして、秦はエディタの改善をするために、Editor.js関連ツールへのコントリビューションを行っていたのです。
このOSS活動が、Helpfeelとの接点を創出するきっかけになりました。ある日、転職サービスを経由して、次の文面が記載されたスカウトメッセージが秦のもとに届いたのです。
エディタ設計に関してお問い合わせフォームHelpfeel Contactの実装に知見を活かしたり、FAQのように長時間ユーザーが滞在しない環境でのクライアントサイドの辞書設計を一緒に考えたり。そういった多くの点でご活躍いただけるかと思います。(一部抜粋、原文ママ)
「とても興味を惹かれるスカウトでした。他の会社から送られてきたスカウトメッセージの文面は『ReactやTypeScriptなどのスキルをお持ちで』といったように、私のプロフィールに記載された特定技術のスキルの有無について触れたものがほとんど。ですが、Helpfeelのスカウトメッセージからは、私のこれまでの活動内容を入念に調べてくれていることが伝わりました」
これをきっかけに秦はHelpfeelに興味を抱き、入社を決めたのです。
Helpfeelのメンバーたちは、プロダクトの世界観を大切にしている
秦は「『Helpfeel』の開発に携わるメンバーはみな、プロダクトの世界観や設計を大切にしている。だからこそ、一緒に働いていて楽しい」と述べます。その具体例についても秦は解説しました。
入社して間もない頃、秦は「『Helpfeel』を用いて、レイアウトやデザインに凝ったヘルプページを作成する方法」を模索していたといいます。前職で携わっていたブログプラットフォームが多機能であったため、「Helpfeel」でも文章の細かな装飾や記事ごとのOGPの設定などが実現できないかと考えたのです。
しかし、「Helpfeel」の世界観を知るにつれて、その考えはなくなりました。むしろ、「開発者たちは『Helpfeel』をより良いサービスにするために、文章を装飾するような機能を意図的に省いているのではないか」と感じるようになったのです。
「Helpfeel」を利用する方々のなかには、ヘルプページの文章を書くことに不慣れな人もいます。そういった人々に機能の多すぎるサービスを提供すると、かえって混乱の原因になってしまうのです。「『ヘルプページ作成』という本質的な目的にフォーカスして機能を絞り込むことで、『Helpfeel』を使うユーザーが困らないようにしている」と秦は考察します。
また、秦に「どのような要素を持ったエンジニアと一緒に働きたいですか」と質問してみると「強気ではない人」というユニークな答えが返ってきました。
Webの世界のみに限定しても、エンジニアが習得すべき技術の例としてAWSやGCP、React、Vue.jsなど多種多様なものがあります。また、SaaSの開発に携わるエンジニアは、技術のことだけではなく経営戦略や顧客対応なども学ぶ必要があります。
だからこそ、エンジニアは「自分には何が足りていないのか」を考えて、学び続ける必要があります。秦の言う「強気ではない人」という言葉の裏には「謙虚な気持ちで自己研鑽できる人」「他の方々の仕事に興味・関心を持ち、そして大切に出来る人」というメッセージが込められていました。
今後の目標についても問うと、秦は「実は、コンピューター技術書籍を出版しているO'reillyの本を1冊も読んだことがないので、今後は読んでみたい」と答えてくれました。
「私はこれまで、インターネット上にある情報を調べてエンジニアリングの知識を身につけてきました。Webには、何かを達成するための最新の手段が多く載っています。一方で、書籍は特定技術の“概論”や“コンセプト”に類する情報が記載されています。先ほども述べたように、Helpfeelはプロダクトの世界観や設計を大切にする会社です。そして、そうした方針のアイデアを発案できるようになるためには、書籍で情報を得ることが有効だと考えています」
自らの好奇心をきっかけにプログラミングを始め、今もなお強い探究心を持ってコードと向き合う秦。彼の静かな口ぶりからは、プロダクト開発にかける熱い想いがあふれていました。秦のエンジニアとしての努力はこれからも続きます。