スタートアップ企業では、1人あるいはごく少数のエンジニアでシステム構築のすべてをこなす必要がある。それを担うのがスタートアップエンジニア。外部のサービスを活用して、素早く楽に開発を進める、まるで魔法使いのような存在だ。

 セルフリーは、Webブラウザーとヘッドセットで電話ができるサービス「CallConnect」を提供するスタートアップ企業。既にコールセンターなどに導入され、100社ほどの有料ユーザーがいる。

 同社の本間皇成氏は、CallConnectを一人で日々ブラッシュアップする。直近で取り組んだのは、チャットサービス「Slack」との連携機能だ。掛かってきた電話の情報、例えば「いつ誰から」などをSlackに転送する。これにより、関係者で情報のシェアが容易になる。

 本間氏らは、サービス開発の要求を自ら起こす。自分たちがユーザーの立場となり、欲しい機能を実装していくわけだ。「自分たちの理想のサービスを追求する。要望に応えていくと、機能だらけになる」と言う。

 設計は、絵を描く程度で、本間氏の頭の中にある。これといってドキュメントを起こしたりはしない。「このほうが早い。開発に複数の人がかかわらないので共有しなくてもいい」(同氏)。

 頭の中の設計書から開発に移す。Slackとの連携は、サーバー機能をRuby、フロントエンド部分をJavaScriptとNode.jsで実装し、AWS Lambdaで動作させている。「一人で書いた方がきれいなコードを保てる。前職ではソースの記述がバラバラで、読むのさえ苦労した」と振り返る。

 サービス開発のほとんどは、フロントエンドに費やしている。サーバーのインフラ機能は、クラウドサービスに任せる。例えば、CallConnectの電話機能はAPIで提供される「Twilio」を利用し、そのサーバーはPaaS「Heroku」で動作する。Heroku上のWebサーバーやDBを利用するため、ミドルウエアの設定や運用が不要だ。ログ管理やバックアップも、Herokuのサービスを利用する。「これらがあるから、1人でできる。自分はプログラムに集中する」(同氏)。