- サーバーサイドエンジニア
- プロジェクトマネージャー
- 新卒(24新卒その他)
- 他26件の職種
- 開発
- ビジネス
- その他
先日7月31日(日)に開催されたセミナーイベント、「あなたはどっち派?ベンチャーor大手?
1プロジェクトの立ち上がりから終了までを全て覗き見!どちらが自分にFitするか見極めよう!」に、弊社CTO横井が登壇致しました!
直前のゲリラ豪雨にも見舞われる中、20名近いエンジニアの方々にご参加頂きました。ありがとうございました。
イベントにて横井がお話した内容を公開致します。
皆さんこんにちは。ランサーズ株式会社CTOの横井と申します。
本日は、新規事業がどんどん出来て、組織拡大中のフェーズにいるランサーズが、どんな風にプロジェクトを回しているのか、というテーマでお話できればと思っています。
■ 自己紹介
1985年生まれ。早稲田大学商学部を卒業後、WebデザイナーとしてWebサイトの開発に携わった後、SIerにて証券会社のシステムのバックエンドを担当。その後フロントエンドエンジニアに転向し、Adobe AIRを中心にアプリ開発を行う。前職ではWebサービス事業部長を務め、新規Webサービスの企画/開発/運用の全てに携わる。2015年6月よりランサーズ株式会社にジョインし同年9月よりCTOに就任。デザイン、クライアントサイド、サーバサイド、サービス全体に携わってきた経験から、自身も多くの時間を開発に使いつつ、「コードにビジョンをのせる」を合言葉に、拡大するランサーズのエンジニアチームを牽引する。
■ ランサーズについて
改めて「ランサーズ」というサービスについてですが、クラウドソーシングのプラットフォームです。オンライン上で仕事を依頼したい人と仕事をしたい人をマッチングして、その後はそのプラットフォーム上で仕事管理や業務進行上のやりとりをしたり、最終的に納品して決済し評価して、という一連のプロセスが可能な仕組みです。
元々ランサーズは、代表の秋好が弟さんと二人で、8畳くらいのオフィスでコードを書いていたところからサービスをやっていて、今は既に9年目です。それなりに長くやらせて頂いている。
なので、「ランサーズってもう保守しかやってないんじゃないの?」と思われるかもしれませんが、実は最近色々なことをやっています。
例えばこのランサーズストア。これはスキルマーケットのサービスです。
それから、「Quant(クオント)」という、デジタルマーケティング分野のツールを出しています。
これは、コンテンツマーケティング&クリエイターマネージメントシステムです。
例えば「この記事は、30代の女性で、ファッションに興味がある人に夜スマホをいじりながら見られている」というようなオーディエンスデータを分析して、その記事から生まれた効果を可視化している。更にランサーズはそこからクラウドソーシングのプラットフォームに繋がっているので、「その記事を書いたのはこの人」というところまでわかる。つまりさっきの話で言うと、「30代の女性で、ファッションに興味がある人に、ウケる記事を書いているのはこの人だ」まで分かる。
後は、Propag(プロパグ)という新しいサービスも出しています。
これはECの事業者さん向けで、店舗さんが出しているメルマガをそのままWebメディアに変換して、手軽にコンテンツマーケティングが始められるようなサービスです。
こんな感じで、新しい事も結構始めている中で、技術的にもこの一年で新しいところに踏み出しています。
元々は一つのサービスを行っていたので、PHP、CakePHPがメインだったんですが、先程紹介した新しいサービスはRailsを中心に使用しています。クライアントサイドも、かつてjQueryでゴリゴリ書いていた時代はあったんですが、今はES2015でBabelでトランスパイルして…という風にやっています。インフラ周りは元からAWSに寄せていたんですが、最近はAuroraであったり、RedShift等も取り入れています。このように、サービスが成長し増えていく中で、技術も新しい物を取り入れていくようにしています。
そんな中で、うちがどういうふうに開発をしてきたか。ということを今日お話できればと思っています。
今回、二つ事例を持ってきています。一つは、ランサーズにおけるスタンダードな開発プロセスで作ったもの。もう一つは、ランサーズ内でもスピード感をもってつくったもの。こちらの二本立てでお話したいと思います。
■ case.1 ランサーズストア
先程ご紹介した、スキルマーケットです。先日4月にリリースしたばかりのサービスです。
元々ランサーズは、例えばクライアントさんが「記事を書いてください」っていう依頼をマーケットに出して、その依頼に対して提案が集まってくる仕組みだった。ストアはそうではなくて、逆。ライターさんや、ロゴデザイナーさん等の方から発信する仕組みです。例を挙げると、バナー制作。「○○円で請け負いますよ」という風にデザイナーさんが自分で値段設定をして、要件定義をしてストアに出している。
開発の経緯
元々、去年の年末年始にかけて戦略会議を行っていました。その時に参加していたのが各部門のトップで、マーケティング、カスタマーコミュニケーション(カスタマーサポート)、デザイナー、もちろん社長もいて、合宿もしながら話し合っていた。その中に、当時新卒2年目の上野くんもいました。そこで上野くんが「僕やります」って手を上げて、やることになったんです。
企画・開発は基本的に開発チームの上野くん中心にやっていて、開発チームは2名。デザイナー1名。あとはマーケティング1名、カスタマーコミュニケーション1名、リリースまで大体2ヶ月位。打ち合わせや、ブレストレベルの話でも、毎回社長も含め全員で議論していました。
実際の開発プロセスは、ランサーズスタンダードのGitHub-flow。コードレビューは2名以上のOKでmerge。今回の場合は開発チームが2名だったので、他のチームも巻き込んで「今僕らこういうやろうとしているんです」って説明して、レビュアーを担当してもらったりしています。
あとは、今うちはプルリク駆動でやっていて、実装する前にまず空プルリク立てると。その中で、テンプレートで、実装の目的背景と画面機能、あと機能要件、その他不安なことを絶対に記述してもらう。それから、プルリク一覧みたいなものを可視化してツールで出している。で、アジェンダの所だけ見れば、大体どういうことをやっているかのか分かるようになっている。コミュニケーションにはChatworkを使っていて、ストック情報等はConfuluenceに書いています。
タスクは、ユーザストーリーベースでプロジェクトを管理。「ユーザーが●●できること」等と切り分けている。それに対してのストーリーポイントで見積もりを行って、消化ポイント数でベロシティを算出して…という、いわゆるアジャイルの手法です。
厳密に何時間です、とか何人日です、とかっていうよりは、あくまで相対的なポイントを付けていて、実際それを一週間にどれだけこなしたか、というところからポイントの価値、ベロシティを出していく。後半になればなるほどベロシティは基本安定してくるので、それに伴い「一週間で大体5pt終わる」ということが分かる。そしたら来週も同じペースで進めたり。ベロシティが出てきたら今度はバーンダウンチャートを引いていて、もし遅れていたら、ポイント分のヘルプや、機能をどうしていくか等を検討していく。いわゆるアジャイルの「荒ぶる四天王」ですが、ソフトウェア開発のプロセスにおける、機能・予算・品質・時間の調整の四象限をどうずらしていくかしかないと思っています。
あとはモデリングですね。基本的には開発に入るまでに図を描く。今回だと、元々ランサーズのプラットフォームという確たるものがあったので、それに追加する形で出てくる世界っていうのをどうまとめますか、という話。"今回のドメイン世界ってどうなるんだろうね"、って言いながら、例えば、"ストアで扱うこの一つ一つの商品とか仕事を、何ていう概念で言葉に言い表すのがいいんだろう"、というところから最初はディスカッションに時間を使っていた。最終的にこの「メニュー」の概念がちゃんとしっくりきますね、って名称を決定していったり…。
リリース後、プロセスKPIや各種数値のモニタリングはエンジニアリングからも行っています。メルマガ等の、グロース施策も幅広くエンジニアがやっています。後は、こまめに一つ一つユーザーの動きを見ながら仮設を立てて検証を繰り返し、開発の意思決定をどういう風にやっていくか話し合ったり。そういった細かいところまで、チーム内で完結してやっている。
もちろん自分たちに足りないスキル、例えばWebマーケだったりとか、カスタマーコミュニケーションについては他部署と連携しながら進めるんですけれども、大枠はチーム内でやっていますね。もちろんディレクターもいるので、要件やKPIの追い方が複雑なところとかは入ってもらいながら。
でも、プロジェクトの最初からみんなでやりとりしながら、まとまって動いている。
これがランサーズにおけるスタンダードなケースの話です。
■ Case.2 Propag(プロパグ)
で、スタンダード以外のケースというか、スピード感のあるプロジェクトの紹介もします。
これは上記スケジュールのイメージで進行して、2週間くらいでリリース。
基本、僕とCOOの二人だけでやってました。
COOが企画立てて営業したり、座組みとか色々考えたり。自分は開発、デザイン、インフラとか諸々。もちろん、法務に利用規約作ってもらったり等、周囲も巻き込みながらではありますが。
サービス名も自分で作りました。全部で50本位ネーミングを出して、ようやく決まるという。
方針としては、「最速でいく」。
あとは、自分はプロダクトの開発部長も兼任させて頂いているので、結構色んな所に引っぱり出され、会議やらイベントやらでカレンダーが細切れになるんですね。なので、「基本作業単位を30分」で、いわゆるポモドーロ・テクニック的に取り組んだ。30分で刻んで、30分内に収まるようなタスク単位にしました。
後は、リリース後「運用が楽になるようにしましょう」とか。
ビジネス上の座組として、「OEM展開を見据えて可搬性を重視」とか。
この時の使用技術は、Node.jsで書いています。で、フレームワークはRestify。
Node.jsっていきなり唐突な印象があるかもしれませが、ランサーズプラットフォームにおけるチャット部分は、裏がNode.jsで動いています。あとはimap用のルーティングライブラリ書いてみたり、今後他にも使えるようなもの作ったりとか。色々やりました。リリース後の反響としては、EC向けセミナーにいる人に利用して頂いたりとか、結構反応も良かったです。まだまだこれからも成長させていきます。
■ まとめ
これまで、とりとめのない2つのプロジェクトの話したんですけれども、まとめとして、ランサーズが今どういうフェーズにあるのかを改めて考えてみます。
やはり、立ち上げたばっかりというフェーズではないです。ただ今お話したように、事業が増え始め、大きく展開してきている瞬間です。あとはシステムアーキテクチャ的なところとしても、今までは一つのサービスを作っていたのが、横にいろんなサービスができていく中で、それらを統合するようなシステム基盤、例えば認証基盤であったりとか、例えばログ基盤みたいなものをどうやって作っていきますかって所に今トライしている。一方で、ベンチャー企業らしさというか、決済も含めスピード感はまだまだ保てている状態かなと思います。
で、このフェーズがどういう人に向いているかというと、事業も社員も増えてくるようなタイミングで、色々組織的にも整っていない部分も正直あります。なので、基本的には「自分でやることを決めて、自らドライブしていく人」、っていうのが向いているのかなと思う。
あとは、「変化を許容しつつも、未来を描ける人」。
このフェーズなんで、とにかく仮説検証、仮説検証。仮説検証を繰り返しながら進んでいる所には変わりはないので、色々変化はすると。その時に、それらの変化っていうのを、ちゃんと「あ、なるほどね」って理解しつつも、ただ、その先にある未来をちゃんと持っているってところは必要なのかなと。
もう一つは「組織を創っていきたい人。」
まだ人数もそこまで多くないので、みんなの意思がわかっていて、大体どういう人がいるかとか、わかりながらやっていたりとか、阿吽の呼吸で進められていたようなところから、これからちゃんとした組織になっていく。
それはお固い話ではなくて、みんなが上手くやれるように、例えば、「じゃあこういう仕組みが必要だよね」とか、「エンジニアだったら開発プロセスこういう風にしてかなきゃならないよね、とか。ある程度、そういったところは人と人とのつながりだとは思うので、それを作っていくのが必要になってくるフェーズかなと。この100人の壁の段階においてはそう思っていて、そこに興味がある方ってのは向いているのかなと。
で、何だかんだ言っても、結局は「突破力」の話というか、どんな状況であれ、そこを自分の力で変えていける人っていうのは、それはこのフェーズに限らず、一緒に本当にやりたい方だなと思っています。
最後に、弊社のビジョンは「時間と場所にとらわれない新しい働き方を作る」というもので、今も色んな話をしたんですけれど、結局僕らが何をしているのかっていうと、「時間と場所にとらわれない新しい働き方」っていうビジョンに共感してやってきて、「時間と場所にとらわれない新しい働き方」を作るために働いていると。
エンジニアで言ったら、それはコードを書くことだと僕は思っている。
うちのエンジニアチームでは「コードにビジョンをのせる」っていうことを言っていて、ただただ、"目の前の仕事をこのコードで解決できますね。"っていうだけではなくて、さっきも言った、「未来を描く」、ってことです。最終的にそれがどうやって「時間と場所にとらわれない新しい働き方」を作っていくコードになっていくのかっていうことを一個一個考えながらコードを書いていくチームでいたいと思うし、まだまだこの先もやっていきたい。という風に思っています。
というわけで、自分のお話は以上になります。
本日はありがとうございました。