Alpaca技術ブログ

AIと超高速データストレージを駆使して新しいトレーディングを創る

Alpacaの働き方を支える7つのツール

Alpaca CTOの原田(@umitanuki, github)です。

世界を破壊しうる小さなアイデアで働くのは、スタートアップをやる中で一番楽しい部分でもあります。世界中の他のスタートアップが創りだす小さなアイデアが世界を変えていくのを見るのもまた楽しいものです。アルパカのメンバーは皆大企業で働いた経験が何年もありますが、一般的常識の働き方を踏まえて、どうやってもっと良い方法があるかを常に探しています。もちろんそれはウチに限ったことではなく、多くの小さなスタートアップではその通りなのでしょうが、詳細についてはどこも同じではないと思います。ので、今日はAlpacaではどういうツールを使ってどうやって働いているかを少しご紹介しようと思いました。

Slack

slack.com

Slackが急速に普及しているのはもはや疑いの余地がありません。Slackのいいところはたくさんあるのですが、特にウチのようにチームが場所的に離れている場合、チーム内でのコミュニケーションは鍵になるし、Slack無しでシリコンバレーと日本と東南アジアからどうやって仕事すればいいかもはや想像できません。ウチで使っているツールのほとんどはSlackにつながっていて何らかの通知をチャンネルに流したりますし、誰でもそのその更新を即座に知ることができてとても便利です。

Zoom.us

zoom.us

昔はGoogleハングアウトとスカイプを内部の会議にも使っていました。ハングアウトはSlackとつながったりできて便利でしたが、参加人数が3人を超えるととたんに音声の品質が下がったりして使い物にならなくなりました。Skypeは未だに外部のパートナーや投資家、ユーザ等と話すときには使いますが、やはり人数が増えると難しくなったり、スクリーンシェアが止まったり、落ちたりということは頻発していて満足できませんでした。Slackにもつながらないし。それで他にどういうのがあるかなと思って探して、Zoom.usに今は落ち着いています。いろいろな場所から、時には電話や貧弱なネット環境から同時に多人数でアクセスして、それで毎日アジャイルというかスクラムのようなスタイルで日次ミーティングをやる上で、回線の問題で10分もとられるのは痛すぎましたが、Zoom.usにしてからその辺の悩みはほとんどなくなりました。

Pivotal Tracker

www.pivotaltracker.com

私自身Pivotal出身で、アジャイル手法というのはウチのような、どんどん新しい価値をソフトウェアで作っていくケースにはバッチリハマるなと思っています。そしてPivotal Trackerはその手法をなぞるのに過不足ないのです。優先順位付けされた一本のストーリーのパイプラインがあって、それを上から順番にやっつけていくという一見不便な感じの強制力が、意外にもワークフローをブレずに支えてくれて、チームの誰にもステータスがよくわかるようになっているのがいいのではと思います。Trackerにする前はTrelloを使っていたのですが、この辺の透明性とか一本のストーリーパイプラインのあたりがTrelloは弱かったのではないかと思いますが、次に誰が何をすべきで、あとどのぐらい何をしなきゃいけないのかが全然わからなかったという事情があります。Trackerにしてからはその辺問題になることはなくなりました。Trackerの変更は逐一Slackに流れます。

GitHub

github.com

ちょっとした大人の事情があって、ちょっと前までは社内GitLabを使っていましたが、GitHubのプライベートレポジトリにしてからはいろいろとスムーズになりました。すべてのPushイベントはSlackに流れてます。Pivotal Trackerでタスク管理しているのでGitHub Issuesは使っていませんが、プルリクエストベースでの開発スタイルをとっています。社内にできるだけものを持ちたくないので、ソースだけでなく結構いろいろなものをGitHubに放り込んで、非開発者も含めてみんなの作業場になっています。もちろんGitHubを中心としたオープンソースはウチにとっても大事なものですし、アルパカからもいくつかオープンソースにしているものがあります。

CircleCI

circleci.com

スタートアップにとって最も大事なものは時間ですし、速く動くのは絶対必須要件です。大企業のようにQAチームがあるわけでもなく、手戻りなく確実に開発を進めていくためには、CircleCIであらゆる変更をテストし続けるというのはかなり重要です。Dockerベースでも動くので環境依存な問題もなく、すべての開発ブランチでテストを走らせて10分そこそこでマージできるかどうかを知ることができるようになっています。もちろんテスト結果はSlackのチャンネルで通知されます。

Intercom, MixPanel, New Relic

www.intercom.io

mixpanel.com

newrelic.com

僕に言わせればこれらはもうSaaSにおける三種の神器と言ってもいいと思ってます。Intercomで直接ユーザとリアルタイムで話して、MixPanelで詳細な分析をして、システムのパフォーマンスやメトリックスをNew Relicで集めて監視する。この辺のツールは難しいこと考えることなく使えるように作りこまれているので、データ収集のインフラ整えて〜なんてことをやる必要もなく明日からデータドリブンな運用ができるようになっています。

Papertrail

最近Papertrailを見つけたとき、なんでもっと有名じゃないんだろうと驚いたぐらいです。このサービスは基本的にtailコマンドをWebサービスにしただけのものですが、その威力は絶大です。何も考えずにいろいろなアプリケーションからコンソールの出力を全部コイツに送っておけば、あとでブラウザから確認、検索するのも簡単です。特にうちのように全部Dockerの場合に、logspoutを仕掛けておけば本当に何も考えずに全部のコンソール出力がPapertrailに行くので、コンテナ再起動してdocker logの内容が消えちゃった、という後の祭りも防ぐことが簡単です。

これらのツールを使うのは楽しいというだけでなく、各地に散らばった小さなチームとして持ち物を減らせるというのは大きいです。これらのツールなしで今の働き方を実現するのはかなり難しいと思いますし、逆にいい時代になったと思っています。アルパカのマントラである、「人間らしく生きる」をこれからも推進していくために、これらのツールの助けはどんどん借りて行くことになります。

もちろん上記がすべてというわけではありません(例えばGメールを始めとしたAppsは当然使います)が、僕達がどのようなツールを使って働いているかなんとなくわかってもらえたかと思います。これらは現時点のもので、どんどん入れ替えますし、実際リストのうち幾つかはごく最近使い始めたものです。さらなる改善のオススメがあればTwitter等でお知らせいただければと思います!

ディープラーニングを使ったトレーディングプラットフォームのCapitalicoもこのツール群を使って開発されています。現在、期間限定でクローズドベータを実施しており、みなさんのご意見をお待ちしています。すぐにでもベータテストに申し込んで、Capitalicoが実現する新しいトレーディング時代をお楽しみください!