ひさじゅです。
なんか世間は騒がしいですが、前回の「間違いだらけのクラウドソーシング」で予告したのと、こちらのイベント「クラウドソーシング有効活用 #1」でも発表したので、ちゃんと書きますね。
その前に、こちらの発注方法ですが、前提として以下の様な状況の方を想定していますので、ご注意ください。
- 開発速度を上げたい会社さん
- マネージメントを担当できるエンジニアが一人以上いる
- 予算や納期の融通がききやすい自社サービス開発(推奨)
- Webサービス系の開発
上記じゃないとダメという訳ではないですが、条件的にはWebサービスを扱っているスタートアップさんが一番相性がいいんじゃないかと思います。
発注方法についてですが、まず私がクラウドソーシングを使おうと思った理由から説明します。
私はレンタルCTOという名義で5〜6社のスタートアップさんを対象にフリーランスの仕事をしていました。お調子者の私はいつものように調子よく案件を受けてしまい、完全に詰んでしまいました。そこで、以前からクラウドワークスの吉田さんと面識もあり、クラウドソーシングというものを使ってみたいと思っていたので、仕事の一部を誰かに投げたらまわせるんじゃないかと思い、クラウドワークスを使うことにしました。とはいえ、クライアントさんは私を気に入ってくれて仕事をくれたのだから、丸投げするのも申し訳ないと思い、こう考えました。
「元気玉作れないかな」
簡単に言うと「オラに力を分けてくれー」ということですね。戦うのはあくまで私自身で、みんなに力を借りるイメージです。
はい、よく分からないですね。
発注するに当たって考えたのが、前回のブログで説明したようにエンジニアが敬遠するような発注はやりたくなくて、エンジニアさんの空き時間をお借りして、楽しんでみんながプログラムを書ける環境を作りたいなと思いました。そこでエンジニアさんが仕事をしやすい環境ってなんだろうと思い、以下の条件を思いつきました。
- いつでも
- どこでも
- 責任・リスクがない
- 安すぎない
これでやれば、正社員の方の空き時間や学生、フリーランスの案件の隙間でお願いできるんじゃないかと。で、この条件に合わせた働き方を考えてみました。
いつでも・・納期は切らずに、多くの人を集めて自由な時間に出来る環境(タスクのチケット制、サイズは小さく)
どこでも・・基本的に非対面で(打ち合わせは行わずチャットのみで出来るように、設計まではこちらで対応)
責任・リスクがない、単価が安すぎない・・時給制にして、瑕疵対応、見積もりなど無駄なコストを作らず、最終的にはこちらで調整する
あれ?これってオープンソースの開発みたいに出来る?
と考え、以下の形で募集を開始しました。
「空いた時間で好きな時間だけ出来るRuby On Railsを使用した開発」
詳細はリンク先をご覧ください。
開発の流れとしては、
いわゆるgit flowのモデルで開発していきます。
- まず私がタスクをissueとして、githubに上げていきます。
- クラウドソーシング経由のエンジニアの方には自分の好きなタイミングでissueを自身にアサインしてもらいます。
- アサインしたらissue番号のついたfeatureブランチを切ってもらいます。
- 開発をしてもらい、出来たらプルリクエストを投げてもらいます。
- 後は私の方で、コードレビュー、テストを行い、マージして、だいたい週1くらいでリリースしています。
- 質問や仕様の確認、タスクの報告などはチャットワークを利用してやりとりしています。
ここでポイントとして、タスクの大きさについては、前述で説明したように、隙間時間でお願いできればと思っているので、なるべく数時間で終わる大きさに切っていきます。また仕様はなるべく文字だけで理解してもらえるように細かく記載していきます。(テーブル定義もきちんと作って共有します)
ちなみにタスクを細かくすることは受注側だけでなく、発注側にもメリットがあります。発注側のリスクとして考えられる大きい部分が、エンジニアさんがいきなりいなくなってしまった場合に進捗が戻ってしまうというところです。企業さんにとってはスピードが大事だと思うので、この手戻りはかなりの痛手です。ですがタスクを細かくしておけば、手戻りするのはそのタスクだけなので、リスクを大幅に下げることが出来ます。100%失敗しないというのはタネ明かしをすると、こういうことですね。
もう1つポイントがあるんですが、フルスタックのWAFである、Ruby on Railsを採用したことが、うまくプロジェクトがまわった要因だと思っています。こちらについては、クラウドソーシングに限った話ではないので、次回エントリーで説明します。
一応これでほぼうまくいっているんですが、私の経験から注意しないといけない部分があるので、それも共有しておきます。
- 納期が決まっていて、余裕がないものは、協力してくれる人には一部お願いしていますが、ほぼ巻き取らないと厳しいです。
- 予算はブレたり、見えづらいので、予算感が見えるまでは少しずつ導入していくのもありだと思います。
- 夜や土日に対応していただけることが多いので、携帯にチャットワークアプリを入れておき、返信するのがちょっと大変です。。
こちらの開発手法は、まだまだブラッシュアップ出来ると思いますので、変化してきたら追ってご報告させていただきます。また、現在私は「ポケットコンシェルジュ」というサービスをやっているスタートアップに入りまして、引き続きこの手法で開発を行っています。もしこの手法で開発をまわしてみたい方やこういった開発を勉強したいという方がいらっしゃいましたら私のFacebookまでご連絡ください。
あと、一つ言い忘れましたが、今回私はクラウドワークスを使ってやりましたが、ランサーズでも仕組み的には可能ですので、ランサーズで導入してみたかたがいらっしゃいましたら、ぜひ教えてください。
次回エントリーは文中でも記載したようにスタートアップでの言語選びについて書こうと思います。
それではまた。
コメント