②グローバル開発チームを作ろう (採用編)

前回の記事 ①グローバル開発チームを作ろう (モチベーション編) でモチベーションに関して説明した。ここでは主にUpworkを使った採用手法に関して説明する。

概要


海外人材のリモート採用をするには、母集団が必要となり、外部プラットフォームを活用する必要がある。初めてやる場合のオススメの手順は

  1. Upwork ( https://www.upwork.com/ )で
    数万円~数十万円のWEB制作・システム開発(ランディングページ作成、Wordpress改修、Vue.jsやReact.js等のフロントエンド改修)やデザイン作成(ロゴ、ワイヤーフレームからUI起こし、UXプロトタイプ作成)依頼をスポットで発注・納品・検品・支払いするまでのフローを掴む。Upworkは日本のクラウドソーシングと同じく手数料が発生するが、あまり気にせずにとりあえずやってみることを強く勧める。(We charge you based on lifetime earnings with each client: 20% for the first $500 you bill your client. 10% for total billings between $500.01 and $10,000. 5% for total billings over $10,000. 5% for total billings over $10,000Clients are charged a 3% fee on all payments https://www.upwork.com/i/how-it-works/freelancer/ )。

  2. Angelist( https://angel.co/ ) 、Linkedin、Glassdoor等の有名求人サイトで業務委託をアドをかけて募集して、契約から支払いを自前でやる。報酬の支払いは慣れるまでは、月額報酬制度は取らずに、アプリ等でタイムトラッキングもしくはマニュアルでの稼働時間入力に対しての時給制度がオススメ。プロダクト開発は成果物の定義が曖昧になりがちで、時間に対しての何かしらのアウトプット(プルリクエスト、デザインページ数)が指標となる。

( 本ブログ記事で説明する内容は、あくまで、一個人が試行錯誤した知見であり、絶対的な最適解になってはないので注意 。あくまで参考程度の内容)

応募者のプール形成編(UpworkでのJob Post)

まずは、何のタスクを切り出し依頼するかを明らかにする。具体的であればあるほど良い。フリーランサーは基本的には金が欲しくて、このプラットフォームに来ており、自分のスキルを使って仕事をしたいという前提条件がある。スキル要件はタイトルに含めるなどして工夫した方が良い。フリーランサーはReact.jsのコーディングスキルに自信があるならReact.jsと検索して仕事を探す。なので、Job Title は"Great React.js Developer is needed!!"などわかりやすい方が良さげ。その他に含めるのは

  • プロジェクト背景とタスク内容
    例えば、B to B のWEB会議システムを作っており、主要なユーザーは~で、〜という顧客課題を解決し、あなたには管理画面をReact.jsを用いて作成して欲しいなど。プロジェクト自体の新規性や社会への有効性もできればアピールしたい。もちろん企業秘密もあり、全部は公開できないとは思うが、可能な限り詳しく書きたい。優秀な奴は面白いプロジェクトを常に探しており、この情報を元に、WEB面談に行った際に何かしらの仮説をぶつけてくる時がある。国内外問わず、優秀な方は成長思考が総じて高く、同じ条件なら多様な経験できる場所を選択する。コモディティ人材になるのを避けるように動いている。つまり、こちら側も選ばれている。

  • スキル要件(ソフト・ハード面含めて両方)
    デザイン作成ツールとして、Adobe XD, illustrator, Sketch, Figmaなのか、フロントエンドスキルとしてReact.js, Vue.js, Nuxt.js, Angular.js が必要なのかを明らかにする。React.jsは扱える人数が圧倒的に多いので良い開発者も大量にいる。今だとWeb3.0系、AR/VR/AIだと良い開発者を集めやすいと思われる。開発者は新規性があり、有効性が高い技術を習得したい。自分の市場価値を上げるためにチャンスを掴みに来る。デザイナーだと、SketchよりFigmaで募集するとたくさん人が来るかもしれない。関連するスキル要件としてコーディング言語やツールで検索が引っかかるように工夫するのもありかもしれない。汎用的なフロントコーディング技術React.js, Nuxt.js, Vue.js でJob Postを行うと何度かやりとりして絞り切っても、大量に良さげな候補者がたくさん残ることが多い。

    また、Problem Solver、Quick Response、Team Collaborationなどのチームの一員として動いて欲しいことを期待するためにソフト面での要件を入れておく(多くはバリューに関連した内容になるだろう)。

  • 想定報酬と稼働時間(時給制の場合は)
    時給制で$15 ~ $30で、週当たり30~40時間稼働 もしくは $1000で2マイルストーンで納品などを記載する(Expected Salary)。同じクライアントと仕事を長くすればフリーランサー側の手数料は下がるがチリも積もれば山となって手数料をフリーランス側に負担させていることを理解しよう。想定報酬は、他社のJob Postを参考にしながら もしくは 自分が出せる予算ということになるだろう。(React.jsなどの汎用スキルな場合は$15~$35/hour。もちろん求めるスキルレベル次第)

  • フリーランサーのみかAgency(日本で云う株式会社や合同会社)も可能かどうか
    構図を説明すると、Upworkに受注者側として登録する際には、会社として登録を行い、その会社のメンバーを追加して、クライアントと個別に契約させることが可能なAgencyという概念がある。日本で云うフリーランスのギルド側チームが実は世界的には当たり前のスタイルとなっている。但し、支払ったお金は胴元(その会社の代表)に流れて、そこから現地で分配という流れになっている(これは以前に諸々発生して知った)。一方で、フリーランサーのみの場合は個人として契約するということになっている。これが何を意味するかは自明だが、契約に柔軟性がなくなるということだ。但し、Agencyの場合は問題が解決できなくてスタックした場合でも他のメンバーがサポートしてくれる場合がある。また、個人だから優秀でAgencyだとそうでないということは正直ない気がする(実際に自分もAgencyに頼んでいる)。ただ、かなり長期的に色々動いてもらうチームとしてコミットしてもらいたい場合はIndividual Freelancer Only などの要件を入れておいた方が無難だろう。また、マニアックな専門的問題をすぐに解決したいならAgencyがオススメ。一般的な話として、Agency所属ではない優秀なフリーランスを探して採用する方が難しい(これは日本でも同じだと思う)。

  • 応募時に関連するプロジェクト経験やスキルチェックでの質問
    これはやった方が良いと思うが、細かい質問をあまりにも求めすぎるといった、応募者側の負担が重たいようなJob Postには応募者数はあまり集まらない。また、大量に機械的 or 人海戦術(内容を見ないで)でApplyしてくるBotのような応募者がいるので、そのフィルターのために募集要項を全部読んだことを確認できるような質問内容を入れるのは有効。


ちなみに自分はかなり昔にフリーランス側としてUpworkに登録を行ったが残念ながら審査が通らなかった。次の画像の通り"Your profile was not accepted"になっている。海外で活躍するフリーランスという夢は絶たれた( ;  ; )

審査に通らなかった私のUpworkプロフィール。Resubmitをする気力が無かった。


また Job Post 投稿のUpworkオプションに関するポイント

  • 仕様変更が何度もあり得るようなアジャイルなシステム開発なケースの場合は時給制で想定報酬のレンジを選ぶ。そうでなければ固定報酬を選択。

  • 募集人数を増やすためにプレミアムブーストオプションは毎度使って良いかもしれない。Upwork Talent Specialistが候補者を3,4人ほど見つけてくれるが、自分はスルーしている。(ちなみに、Upwork Plusという月額有料プランがあり、タレントサーチやプロジェクトごとの稼働状況のみやすいダッシュボードを提供してくれるが、自分は必要性を感じなかった)

    以上の内容でJob Postは問題無く書けると思うが、そうでない方に向けて参考のために半年ほど前に自分が作成したSaaSのWEB開発エンジニアの募集のJob Post の例を共有する。

"Senior FullStack developer (Typescript, React, Node) is needed in Startup Company" というタイトルのJob Post例。募集の度に改善を続けている。自分と会社に関しても情報を公開しておいて、相手が興味を持ってくれたかどうかが確認できた場合だとやはり長期的にうまく行っているような気がする。フリーランサーといえどもバリューの一致部分は確認していきたい。

また、フリーランサーとして登録をしなくても、他の会社がどのようにJob Postして、何人集まっているか、トータルでいくら支払ったのかをみることができるので、研究しつつ、募集内容を改善したい(Wantedly、Green、Indeed正社員採用でも同じプロセスだと思うが)。研究を始めるとわかると思うが、ソフトウェア産業で最強を誇る米国企業では累計1億円以上決済しているのを多数見受けられる(自分はトータルで6,000万円程度)。フリーランサーからクライアントに対するレビューは見られているし、交渉上で使えるかもしれない。日本では新興国と呼称される国々の企業もかなり存在し、かなりの金額を投じていることがわかるだろう。日本企業は稀にいるが、少ない。

応募者の選考編(UpworkでのInterview)

Job Postも終わった所なので、2,3日待てば30~60は募集が集まっただろう。次に進もう。ここから選考を始める必要がある。スピーディに効率良く進めたい。また、Upworkに再度Postという機能があり、有効活用したいが、全ての候補者をShortlist(候補者) or Archive(見送り)に入れる必要がある。また、1度で良い方と巡り合わない可能性もあるので、2~3週間後にまた再度微修正して新規 Job Postするか、こちらから必要な人材をフィルターしてスカウトDMを送るという手法を使う(ライティング、翻訳、WEB制作等の汎用的タスクでは集まり易いが、専門的なタスクはスカウトDMが役に立つ。スカウトDMは続けて50通ほど送ると送信制限がかかるので、時間を空けてうまく送信する必要がある)。

選考フローとしては、①書類選考②テキストチャット選考③WEB面談選考がある。一般的な日本国内の採用フローと変わらないが、海外製プラットフォーム故に玉石混淆の解像度を高めて挑む必要がある。但し、悪意を持ってこのプラットフォームに入って来る奴はいないと思うし、Upwork側でのフリーランス登録のフィルターも厳しいし(自分は突破できなかった)、最強の米国クライアントからの客観的な仕事評価レビューも確認することができる。

①書類選考

たくさん応募があるので、まずは初期フィルターが必要となる。これはかなり難しいので、慣れないうちは全員にとりあえずメッセージを送って、いきなりテキストチャット選考に移っても良いかも知れないが、自分なりのポイントを列挙する。

  • Upwork上のプロフィールで海外の超有名大学を出ているが、$20/hourなどの単価希望で申し込みしてくるケースはだいたい100%経歴詐称しており、プロフィール画像もLinkedinから無断で盗用というケースがある。WEB会議してみると、何故かカメラ壊れたなどの言い訳で顔は映さずに流暢に英語が喋れないので発覚する(アイビーリーグやその他各国の有名大学卒は当たり前に英語が喋れるというかネイティブレベル以上)。但し、本当にアイビーリーグ卒だがシンプルにプロジェクトに興味を持ってきて応募しているケースもあるので、ケースバイケース。

  • 国でフィルターをかけるかどうか?と云う話。 パキスタン、インド、ウクライナ等、世界中の人財が応募してくる。この際に、国で絞ってフィルターをかけるというのはナンセンスで、シンプルに母集団の中から要件に見合った人を見つければ良いという話になるが、そのやり方を進めて試行錯誤を繰り返した自分は、インドの方とマッチすることが多い。英語ができるし、母数が多いし、ローカル複数言語文化の荒波で戦った人間はソフトスキルが高い。協調的であり、リーダーシップ発揮するし、地頭が良い。グローバル企業CEOがインド人になるのは必然という肌感がある。(中国人が何故かこのプラットフォームには存在しないということに気づくがここでは触れない)。

  • 大企業出身者(グローバル企業でない各国ローカル大企業ケースも含めて)はやはり優秀。日本の大企業でもそうだが、やはり選考基準は厳しいので、その門をくぐり抜けて活躍している方は優秀。アイビーリーグ卒のマイクロソフト出身者(シリコンバレー)のシニアプログラムマネージャーの方と出会って半年手伝って頂いたが、クソ優秀だった。

  • 同期的なコミュニケーションを必要とするプロジェクトの場合に、5時間以上時差がある中東や欧米の応募者は、慣れないうちは避けた方が無難。インドも3時間半時差があるが何とかなる。また、UTC+9に稼働時間を変えるので時差は問題ないので気にするなと主張するフリーランスもいるが、実際動き出すとうまくいかない可能性が高い(気がする)。


②テキストチャット選考

さて、未来のチームメイトとコミュニケーションを取る時間となる。金を払ってる立場、顧客側なので横柄な態度で接するなどは絶対に辞めたい。常に相手をリスペクトしよう。外国プラットフォームに籍を移しても、日本のブランド力はやはり存在しており、先祖が築いてきた物があるのでブランドは大切に守りながら、外国人と接したい。以前に、有能なインド開発会社と支払いを先に行って欲しいと云う話になりそうになったが、日本企業に関しては今までトラブルになったことは一度もないので特別扱いしようという話になった。先祖に感謝しかない。それでは、自分なりのポイントを説明する。

Availability(時間通りに働けるかどうか) 、スキルチェック(Skill Check)、人間性 (Humanity)、契約条件(Contract)を重点的にテキストチャットでのやりとりやレジュメから確認していく。

  • Availability(時間通りに働けるかどうか)に関して
    いつから稼働開始可能か、週に何時間稼働できるか、どれくらい長期で稼働できるか、どのタイムゾーンで働いているか(UTC+9, UTC+5:30, UTC 0:00?)というポイントを質問する。地球の反対側で動く人間と、アジャイル開発に求められるスピーディーなコラボはかなり難しい(同期的でも難しい。メタバースが時間を超越?)。定例MTG等、同期的イベントはたくさんあるので時差はやはり無視できないので契約前に確認したい。フリーランサー達は仕事を取るのに必死であるので、嘘をつく可能性がある。もちろん、熱心に営業活動するのは良い態度で、そうあるべきだと思っている。私も毎日熱心に営業活動をして、顧客に選考フィルターされてお祈り or サイレントされている。但し、悪い方向性は許容不可。クラウドソーシングに来ている層は仕事を自分で取りに来るほど、やる気がある状態が前提になっているので、一生懸命手伝ってくれる。新興国の若い方の向上心やタフネスの平均値は想像を絶する(日本の平均値より上)。土日も仕事をガンガンする人もいれば、もちろん、家族との時間を大切にする人もいる。

    原則として、優秀なやつは常に忙しい。忙しい奴に仕事は回るという話がある。フリーランサーを採用する際に、常にいつでも稼働が可能で即契約できるというのは仕事が継続できない問題を起こしたというパターンがある。もちろん、休暇期間や個別の事情はあり得る。大企業からフリーランスに転職という方 もしくは 副業 や 海外有名大卒のモラトリアムフリーランスはほぼ大丈夫。

  • スキルチェック(Skill Check)に関して
    Upworkのレビューや提出されたポートフォリオ、職歴、学歴で判断していくことになる。Upworkのレビューだけは嘘をつけないので、まずはレビューを確認する(その他は捏造可能)。基本的には金額の大きいプロジェクトで、星5を受けていれば信用できる。仕事が問題なく終わった場合の星は5である。そうでない場合(4や1が付いたケース)は何かしら問題が発生したケースである。気になるレビューがあれば、そのプロジェクトに関して説明を求めても良い。レビューでクライアントへ暴言を吐き星1を付けているフリーランサーをたまに見かける。クライアントからの星も1であるケース。海外では、パブリックな場で暴言を吐くのは自分の感情をコントロールできない仕事ができない人間と見做されるようだ。仕事を発注する側としては、できる限り同じ人に継続してもらいたいし、受託する側でもLTV最大化が求めらるので、長期間双方うまくやっている場合だと金額は大きくなるし、現在仕事中というステータス状態になる。ただし、このプラットフォームで一度も仕事をしたことがないので、レビューがそもそも存在しないというケースもよくあるので他の判断軸が必要になる。

    レビューにPrivate Earningという、自分の過去案件の報酬額を隠す機能がある。フリーランサーが選考中にこの機能を使うケースがある。個人的には、単価を釣り上げるだけの機能であると思うので、長期的にコミットしてもらうような方だとNGで特定の問題を解決してくれるように依頼する場合はスルーで大丈夫な気がする。優秀で誠実な方はオープン。そもそも、誇れる金額があったらPrivate Earningを使う必要はない。また、Upworkプロフィールに単価($/hour)を表記して、過去のプロジェクトに紐づくようにしているケースがあるが、過去に何時間稼働した案件であるかは見たいところ。これは1時間3万円で2時間稼働したが、100時間は稼働できないという案件なのかその人のスキルなのかによると云う判断。コピーライティングやマーケ支援は高単価低稼働時間になりやすい。コピーライティングやマーケ戦略のJob Postを行うとGoogle出身者も普通に応募してくる(高単価で)。

    LinkedinやGithubのプロフィールリンクを求めてスキルチェックはMUST。GithubでのOSSコミット貢献度合いや活動量はやはり参考にはなる。シンプルに金だけで動く方と、テクノロジーに興味を持って協力していただける方では長期的に埋めようのないパフォーマンス差が出る(確実に)。UI/UXデザイナー採用の場合ではBehanceやDribbbleでの活動量も参考になる。但し、フリーランサー側からUpwork利用規約違反であると言って開示拒否されるケースがあるが、自分がUpworkスタッフと話した限りでは、Upwork以外でメッセージのやりとりを絶対にしないという誓約を交わした場合だと、要求しても問題ないという話だった(気になるなら直接Upworkスタッフに確認)。Upworkはプラットフォーム外で契約するのを禁止しているので、その導線を消したいという意図があると思う。

  • 人間性 (Humanity)に関して
    Upworkのプロフィール写真に対する考察。人のことは言えないが、悪い顔をしているやつはなるべく避けている(各自の判断に任せたい)。無表情、笑顔、険しい顔等色々あるが悪い顔以外は特に気にしていない。バリュー(仕事に対する価値観)の確認をやっても良いだろう。但し、単発タスク依頼では不要(定められた期間で高品質な成果物を納期すれば無問題)。

    質問に対するメッセージレスポンスがやけに遅いやこちら側の箇条書きでのテキストチャット質問にテキストで低可読性な五月雨式スタイルで返答してくるケースなどは要注意。そもそも、こちら側に協力して仕事をするスタンスがないような人間である。英語の文法も適当な場合だと仕事も雑な可能性が高い(気がする)。

  • 契約条件(Contract)
    再委託を行わずに本人が実際に業務するかどうかは確認したい。Agencyでは無く、個人のフリーランスアカウントになっているが、実際は稼働する人が別というケースがある。また、初めは自分で稼働を行い、急遽別のチームメンバーや関係者が出現し、業務の再委託が発生する場合もある。日本のIT業界の業務委託契約書の中には、必ず再委託が禁止か許容という条項がある。フルリモートワークの場合だと実は相手が、再委託してるかどうかが分からない。何故なら、やる気になれば、Slackでのプロフィールアイコンも変更すれば良いし、オフィスの中でPCは同じで、作業している人を入れ替えれば良いので。何故、作業している人を固定する人があるのか。再委託が禁止されるのか。シンプルに、生産性が低いしリスクがあるからだ。伝言ゲームが発生するし、プロジェクトが長期間になれば属人的な知識も必要とされるが、人が入れ替われば常にゼロからスタートとなる。障害やトラブルが起こった際にも素早く対応もできない。常に無駄なコストが上乗せされた状態になる。

    Upworkタイムトラッカーアプリでのマニュアルでの稼働時間入力を禁止するかどうかの話は先にする。作業内容によるが、基本的に1ヶ月目はNGにして、画像スクリーンショット付きのUpworkタイムトラッキングアプリ利用を必須での契約で進める。デスクトップ画像キャプチャに抵抗がある場合はセカンドディスプレイの利用を打診する。支払いの発生する稼働時間のトラッキングは業務に必要な情報のサーチ、キャッチアップ、勉強、アイドル時間も含めて特に遠慮する必要はないので、全てトラッキングするようにお願いする。

    タイムトラッキングは様々な面で役に立つ。契約開始序盤で報酬調整をする場合には、時間当たりでパフォーマンスが指標となり、客観的なデータが必要となる。稼働時間のトラッキングでのキーボードマウスの活動量と業務パフォーマンスの相関はやはりあると結論付けたい。コーディングの速いエンジニアや有能なプロダクトマネージャーの活動量に明白な結果が長期的に出た。システム開発では、単位時間に対してのPRコード量・質が生産性を図る基準になるが、生産量が測りにくいものとして、新規メンバーが入った場合のオンボーディング、PRのレビュー、ソリューションの提案・相談、障害が起こった場合のサーチ・復旧などがあるが、評価観点に忘れないように、報酬には反映しよう。コード書く以外は一歳協力しないエンジニアもいるが、その場合は専門性を求める。そもそも、高単価でスキルの信頼性が既にある場合は、わざわざモニターする必要はないので、マニュアル時間入力精算か月額報酬で対応する。また、Upworkのタイムトラッキングアプリのデスクトップ画像キャプチャーは、育成やオンボーディングに時間がかかりそうなケースだと有用。どこまで出来ているかが判断(ローカル開発環境構築)できるので。リモートでのモニター(実質的にオンボーディング)が有効に働くケースはやはりある。

たくさんの候補者とやりとりしているとスマホでメッセージ対応したいが、UpworkモバイルアプリのUXが悪く、App Store制約での決済契約関連の機能不足問題もあり、好きになれなかったのでPCブラウザでUpwork利用している。ここまで来れば候補者を3~10程度まで絞ることができたと思う。

③WEB会議選考


ここから、オンライン面談を行い、最終判断をする。良さげな場合は、WEB会議終了後にすぐに契約Offerを送信し、Acceptをしてもらい、Slackへ招待という流れである。オンライン上で握手を行い、Offerを出した後に拒否または検討する可能性は少ない。ここまで来れば英語でヒアリング・スピーキングに問題がなく、そもそも普段からオンライン採用してる方だと注意するポイントはほぼない。いくつかポイントを列挙する。

  • WEB面談時に、マイク・カメラの設定がおかしくて、声が聞こえない・映像が表示されないというトラブルが発生することがある。状況にもよるが、普段から業務でWEB会議をしている人間だと、ヘッドフォンをつけてクリアな音声で会話を実現させるというマナーも当たり前のようにしてくれる。また、WEBカメラが壊れたや何かと理由をつけて顔を出さないのには警戒する。悪いことをしている人間は顔を出さない可能性がある。以前にとあるPFで顧客ヒアリングをWEB会議で行った際に、何故か顔を出さずに不自然に思ったことがあった。その数ヶ月後に巨額詐欺事件の首謀者として逮捕されて、ニュースで目撃という話がある。

  • コーディングのスキルチェックで自分が行うのが、"あなたが今まで書いたコードで、最も複雑なものをスクリーンシェアでリアルタイムに説明してください"というのが今のところ鉄板。DB排他制御(悲観・楽観ロック)の説明等の汎用ITスキルチェックの質問リストを追加で用意しても良い。問題解決・説明能力が開発エンジニアには中長期的に効くので。もちろん、商用ソースコードのNDAで見せれる物がないケースがある。

この他にも数えきれないほど確認項目があるが、各自の判断に任せたい。単価の低いスポットのタスクならわざわざWEB面談しなくても良いかもしれない。テキストチャット時に質問した項目に関しても再度確認しても良い。報酬、稼働開始日、稼働形態などは入念にチェックする。

Angelist、Linkedin編

基本的にはUpworkでの採用フローと変わらないが、契約締結と勤怠管理と報酬支払いを自前で行う必要がある。契約書はDocusignやクラウドサインなどで行い。Upworkと同じ稼働時間が計測できるHubstaff、Toggle等を利用する。決済はWise,Payoneer, Paypal等利用する。これらは稼働開始までに全て合意を取っておく必要がある。AngelistとLindkedin等を使い国外の人的リソースを必要に応じて自由に活用というスキームを確立したい。腕に自身のあるフリーランスの方は、国外のスタートアップに応募して働くという手法が取れる。



③グローバル開発チームを作ろう (開発編)
に続く



https://twitter.com/atyenori
Twitterで、グローバル開発チームに関して呟いてますのでフォローお願いします!










この記事が気に入ったらサポートをしてみませんか?