面白半分

ブログの内容は個人の感想、バイアス満載。異論しか出てこないようなことを書いてます。あと、文章を書く練習中。

oDeskでソフトウェアを海外に外注してみる話

ちょっとしたアイデアを思いついたけど、自分で勉強して作るのがちょっと面倒だったし、テスト用の動作確認のみをしたかったので、気になっていたoDeskを使って外注してみることにしました。
自分でやっても勉強込みで1週間かからんだろうから、経験者なら数時間でできるであろう、ということでとりあえず予算は$50。仕事を投稿して5分もしないで数人の応募者が集まってきました。んで、採用したのは「$30でやる」と言ってきたインドのウェブエンジニアの方。「お前の言う仕様のサイトは作ったことがある」という彼の作ったサイトのリンクをチェックしつつ、要求仕様を理解しているか私からの最終確認。

ま、テストとして捨てても仕方の無い金額なので、「がんばろうぜ」、採用、と。


翌日くらいにすぐソースコードが届きました。チェックチェック、と。…ん?…これ、拡張子はPHPだけど、コードは全部JavaScriptですやん…。そうきたか。PHPのプログラムを、という依頼だが確かに「処理をPHPで書け」とは書いてない。まぁ、そういうものなのか?それはよいとして仕様は満たしてるのか?…ない。だし仕様書に書いた使ってほしいAPIも使ってない。「お前の欲しいものは全部入ってる」とか言ってるし。こらアカンわ。
まずPHPじゃない点、それから機能についてもう一回確認します。「拡張子はPHPだけど中身はJavaScriptだよね?PHPでプログラム書いて欲しいんだけど、大丈夫?」「あと、俺のリクエストちゃんと読んでる?アレとコレがしたくて、このAPIを使って欲しいんだが」

お返事きました。
インド:「その機能だったらJavaScriptとhtmlでできちゃうんだが、どうしてもPHPなの?そんなに言うんだったらそのAPIも見てみるけど」
はい、私JavaScriptよく分かりませんので。

私のリクエストをしっかり読んでなかったわけね。しっかりJobのタイトルにも書いてあるんだけど。
その後PHPで処理が書かれたコードが届き始めますが、実行したい2つの処理が別々のファイルで届いて「1画面の一度の操作で2つの処理をいっぺんに実行して欲しいんだけど」(この辺は私の指示も悪い気がする)とか、処理は2つついているけど、UIのボタンが片方の処理しか動かさないから「これ、ちゃんとテストしてる?」みたいな話をしたりとかをして、やっと思った通りの動きをするコードができましたとさ。

雑感:
結局最初のコンタクトから納品まで13日かかりました。想定よりはかなり長期間ですが、納期のある仕事でもないですし、その間は自分のことをできて並列で仕事ができてるわけなので、特に損をした感じはありません。お金も$30ですし(日本で経験者とかにお願いしたら1日〜2日作業で1〜2万てとこですかね)。管理にかけた時間も短ければ数分、長くて2時間くらい(テスト等)ですね。またやってみたいです。
反省点:
私自身がこのタイプの開発に不慣れ(というかやったことない)せいで、テストも手間取りましたし、外注先への指示も曖昧になっていたと思います。次回はもう少し具体的に仕様化して望みたいと思います。
注意点:
oDeskで初めて発注する際は、カード情報の登録とともに、Payment Verifyというステップが必要です。これは認証プロセスのようなもので、ランダムな金額がクレジットカード会社を通じて自分の口座から2回引き落とされるので、その2つの金額を認証コードとして入力せよ、というものです。この引き落としがPayment Verifyの申請から2〜3日かかりますので、その間は納品物のチェック画面に進めないし、別の方法で納品物を受け取ったとしても外注先にお金を払えません。海外外注に興味がある場合、実際仕事を依頼していなくてもPayment Verifyだけは先にやっておいた方が無難ですね。