株式会社クラウドワークス

個人が自らの才能・スキルを活かせるインフラを目指して
個人の働き方に関して週末起業や副業などが取り沙汰される中、個人に仕事を発注したいと検討している、あるいは既に発注している企業は増えているのではないだろうか。そういった企業と個人を繋ぐサービス、日本最大のクラウドソーシングサイトを運営しているのが、東京都渋谷区に本社を置く株式会社クラウドワークス(以下クラウドワークス)だ。
今回、社名にもなっている同社のサービスcrowdworks.jpの開発について野村氏と塚本氏にお話を伺った。
個人で稼ぐことが難しかった時代
crowdworks.jpが誕生したのは2012年。野村氏によれば、当時は個人がインターネット上でお金を稼ぐ手段は「ポイントサイト」などお小遣い稼ぎレベルのものに止まっていたのだという。エンジニアやデザイナーなどのプロフェッショナルスキルを持つ人々が、ネット上で、主たる収入源となりうる仕事を得るのは難しかった時代。
これは発注する企業側の事情も大きい。企業間の取引においては通常、契約書を含む複数回の書類の往復が必要になる。個人が仕事を受託する場合には、そういった手続きを含めあらゆる点が低コストで済ませられる一方、企業が直接個人に発注するには法務などの観点から難しく「そもそも『個人とは契約できない』としている企業も一般的です」と野村氏は話す。これを解決するためにcrowdworks.jpは開発された。

Rubyならビジネスに必要な部分だけ、自分達の道具も気軽に作れる
サービスの立ち上げ時は市場のニーズが不確かな状況なので、仮説検証を繰り返すためにスピード感を持ってシステムを開発していく必要がある。「Rubyはそのような用途に適した言語であると考えていた」と野村氏は振り返る。
「10個作ったら9個は刺さらないような状況ですから、10個をいかに早く作れるかというのは事業の成否を決める上では重要です。技術面だけに限った話ですが、同じ時期に立ち上がったスタートアップで、コストの高い技術選定をして消えていった会社は沢山あります。」(野村氏)
Rubyを選択した効果を実感する部分として他にも、「RubyはRailsをはじめとしてライブラリが整っているので、自分達で作るものが少なくて済みます。そういったエコシステムが整っている言語はそれほど多くないと思います。」と野村氏は話す。自社のビジネスに必要な部分だけを作れば良いわけだ。
必要となる開発はサービスプロダクトだけに限った話ではない。そのサービスを運用するための管理ツールもある。「自分達の道具も気軽に作れるのがRubyの良さ」と話してくれたのは塚本氏。外部サービスとの連携用ミドルウェアのようなものは「gem化して利用しやすくしている」という。作った道具はcrowdworks.jpの社内向け管理システムにとどまらず、社員の情報ディレクトリや日報ツール、社員間でコインを送り合うp2pボーナスのようなシステムまで幅広い。

成熟したプロダクトとの向き合い
crowdworks.jpはリリースから10年を迎える。
「最近だとYouTubeの市場がすごく盛り上がっていて、動画制作などの仕事がすごく増えているんですよ。」と野村氏。そういった時代のトレンドやニーズを取り入れること以外にも様々な対応が必要になる。それらの対応を続けていった結果、システム構成が複雑化し、システム全体の信頼性の維持や向上が課題になることがよくある。その対策として「アプリケーション開発とは別に専門のチームが必要であろう」と野村氏は考えSREチームを設立した。
SRE(Site Reliability Engineering)とはGoogleが提唱したエンジニアの役割で、システムの拡張性や信頼性に焦点を置いた活動を行う。
野村氏はメンバーの選定にあたり新たに中途採用を行う形で編成を行なった。採用したメンバーはエンジニアとしてのバックグラウンドはあるものの、Rubyでの開発に長けている人ばかりではない。それでも、社内でトレーニングなどはやっていないのだという。「Rubyは言語に関する情報も多いですし、言語仕様自体も複雑なことも無い、学習コストが非常に低い言語の一つです。」と話す。
crowdworks.jpが誕生した2012年頃のRubyはver.1.9。この10年でver.3.1まで上がっている。SREのチームはこのバージョンアップ対応も進めてきた。
「バージョンは良くも悪くもどんどん上がっていくので、プロダクトとして成熟してきている今、追従していくのはコストがかかる作業になります」と野村氏は前置きしつつも「裏を返せばそれだけメンテナンスされているということです。誰もメンテナンスされてないライブラリで脆弱性が見つかった場合は対応に苦労することになります。Rubyはそういった心配が起こりにくい状況です。」と話す。
「Rubyは後方互換に気を遣ってくれているので、アップデートもそんなに大変じゃないですね。」と塚本氏。

技術的負債をどう解消していくかということも大きなテーマになる。クラウドワークスは昨年、そういった負債の解消に投資することを決めた。それを担当しているのが塚本氏のチームだ。
プロダクトのフロントエンド技術をモダンな形に寄せていくために、バックエンドのAPI化なども進めている。モノリスのRailsアプリケーションをモデリングし直し段階的にプロダクトに適用しているものの、一番コアな部分に手を入れるのはまだ先になる。新たな機能開発も並行して行う状況では、負債の解消も丁寧に行う必要があるからだ。塚本氏は「プロダクトも成熟していて機能も多いため、仕様を全て把握することも難しい」としながらも「ビジネス的価値が一番あるところは把握しています」と話す。今はその部分の変更容易性を高めることに注力している。
個のためのインフラに向けて
2012年の創業以来、「働くを通して人々に笑顔を」をミッションに掲げ、クラウドソーシングをはじめとする新しい働き方を広めていくことで働く選択肢を増やし、全ての人々が生き生きと働ける社会の実現を目指してきたクラウドワークス。
昨年10月にはミッションを「個のためのインフラになる」にアップデートし、従来の「働く」概念には必ずしも含まれない、YouTuberなどに代表される「働く」というよりも「自らが楽しむ」という意識、あるいは自社社員の副業の事例に見られるような「学びを得たい」「人の役に立ちたい」などの思いに端を発する、新しいスタイルの報酬の得方も含めて個人が自らの才能・スキルを活かして報酬を得るための「インフラ」を目指す、と自らを再定義した。
元々広かった事業ドメインをさらに拡大し、旗艦事業を成長させていくことは大前提としつつも、引き続き継続的に新規事業に取り組んでいく方針だ。そこでは「柔軟さと十分かつ成熟したエコシステムを持つRubyは主要な選択肢であり続けると考えています」と野村氏。
今後も株式会社クラウドワークスの活躍に注目したい。
※本事例に記載の内容は取材日時点(2022年2月)のものであり、現在変更されている可能性があります。
事例概要
- 会社名
- 株式会社クラウドワークス
- 開発した主なシステム
- 利用技術
- Ruby on Rails / nginx / MySQL / Elasticsearch
- TypeScript / Vue.js / CoffeeScript
- Swift / kotlin
- Amazon Web Services / Terraform / Docker / Go
- Datadog / Rollbar / Pingdom / Redash
- GitHub / CircleCI / Slack / Qiita Team
- ニーズおよび解決したかったこと
- フリーランス等、個人として収入を得る機会の創出
- 企業が業務を外注する際の時間的・金銭的・手続き的コストの削減
- Ruby採用理由
- 言語の柔軟さやエコシステムの充実に起因するスピード感
- 言語の人気、学習コストの低さによる組織的スケーラビリティ
- Ruby採用効果
- 採用理由1について期待通りの効果が得られました
- 採用理由2について期待通りの効果が得られました