最近はTaxnoteのAndroid版を作ってるんだけど、僕はAndroid開発に慣れてなくて一人でやると亀のようにノロイ。ということで、できる方にお願いしてSkypeペアプロで教えてもらったり、ここの作業をお願いしますといった形で、リモートで開発を手伝ってもらいはじめた。
このサイトでも、エンジニアをゆるく募集というページを最近作りました。
去年からRailsやらAndroidやらと、Skypeで画面共有しながら教えてもらうことを始めたんだけど、完全にコーディングをお任せするというのは初体験だったのでどうしたら上手くいくか日々考えてるところ。
そこで、リモートで働いてもらう時にどうしたら相手がやりやすいか考えてる。周りのフリーの人の話を聞いたり、自分だったらこういうやり方が働きやすいかなと想像しながら実行してるアイデア。
1.時給でお願いして時間は自己申告してもらう
2.コミュニケーションをめちゃ大事にする
3.ゆるくお願いする
4.こちらから提供出来る事も考える
時給でお願いして時間は自己申告してもらう
まず、プログラミングなんてものは修正の繰り返しだし、機能を実装するのにどれだけ時間かかるか見積もるなんてミッション・インポッシブル。というわけで、働いた時間だけお金を払う時給計算が無難だと思う。
プログラミングはどれだけ時間かかるか事前にはわからないし、こだわればこだわるほど時間がかかる。アプリって何度もやり直しながら作るもんだから、時給じゃないと修正依頼も言いにくいし、やるほうもいやだろうと思う。
そして、作業時間は自分で測ってもらう。そのさい、調べ物する時間や、作業中にハマった時間も含めて、仕事に関する作業をしている時間はすべて計測して申告してくださいとしている。プログラミングって頭の中で考えたり、調べ物したり、ハマったりすることは当たり前なので。
もちろん、Skypeで作業の打ち合わせをする時間も、作業報告のメール書く時間も含め、すべて計測してもらって。
こうすることで、お願いする自分のほうも、相手が効率良く仕事できるようにいろいろ考えるので結構いい。例えば、相手が作業中に悩まないように必要な情報を漏れなく完結に伝えるとか。疑問点や聞きたいことがあれば速攻で聞いてもらうようにするとか。
これ、お願いする側からすると、どれだけお金がかかるかわからないから不安だとか、ダラダラ仕事されたら不安とか思うかもしれない。でも、優秀なエンジニアはそんなケチなことしないので大丈夫。
まだお互い付き合い短い間は、これ以上時間かかりそうだったら一旦止めて相談してくださいと先に言っておいてもいい。
ちなみに、世界最大のリモートワーク斡旋サイトUpworkでは、時給計算のお仕事用に作業者のPC画面のスクショを定期的に記録する機能があるけど、あんなのは絶対にやめたほうがいいと思う。
僕だったら、自分のPCを定期的にスクショ取られる時点でプライベートなものが写ったらどうしようと気になって集中できない。作業でハマった時には頭をクリーンインストールするため、エッチな動画でも見てスッキリするのはエンジニアでは誰もがやっている当然のことだろうし。
コミュニケーションをめちゃ大事にする
こうすればやりやすいかなと思った事を実行してるんだけど、自分の想像と相手とのズレがあったらまずいので、出来るだけ定期的にこちらから相手にいろいろ聞くようにしてる。聞かれないと自分から言いにくい事ってたくさんあるし。
「もっと働きやすいようにするにはどうしたらいいですかね?」とか、「どういう時が一番困りますかね?」とか。
すると、「やっぱり、コミュニケーションを密にとってもらうのが一番重要だと思います。」と教えてもらった。
確かに、依頼側の要求がよくわからないままやる作業ほどストレス溜まるだろうし、作業中に「これどうしたらいいかな?」とか、「ここどうしてほしいかな?」とかいろいろ疑問に思う事は無数に出てくると思う。
なので、聞きたいことがあったらすぐ聞いてもらえるよう、Skypeにできる限り常駐することにした。あと、電話で聞いてもらってもいいし。
さらに、やってほしい作業の説明も誤解がないよう出来る限り詳しく説明するように。特に、アプリ開発って何度もやりなおしたり、後からUIが変わったり、今は後回しにするけど将来的にはこういう設計にしたいとかいろいろある。
特に僕は、小さくリリースしてユーザの反応や要望を聞きながら開発するポイントの優先順位を決めていくので、最初は本当に重要な部分から順番に開発する。だから、新しい実装をお願いする時も、変更や修正が多そうなところは、まずはザックリとだけ作ってもらうようにお願いしてる。
せっかくやってもらった作業が無駄にならないよう、「ここはいろいろ変わったり、違う方法に変更するかもしれないので、まずはざっくりとラフな感じでお願いできますかね」といった感じ。
ほんと、コミュニケーションを取るってのはこまめに相談する機会を増やすにつきるだろうし、言いやすい空気もあるだろうし、お互いのイメージに誤解があるとやりにくいだろうし、本当に難しいと思う。
反対に、何度も無駄な打ち合わせがあってもウンザリするだろうし、簡潔に大事なことを短く伝えるというのは意識し続けないと難しそうだ。相手だって要点がわかりにくい長い文章を読みたくないだろし。
フリーでやってる友達に聞いたところ、Skypeの打ち合わせはお互いに時間を合わせないといけないのがダルいらしい。だから、機能追加していく場合、詳細な説明が書かれている実装リストを細かく定義してくれるのがやりやすいとか。
今まで基本的に一人で作ってきたので、こういうところは本当に新しい領域。
ゆるくお願いする
先週、ペアプロで教えてもらってるエンジニアの方に「ゆるくできるのはメリット」だとも教えてもらった。どういうゆるさがよかったのかは聞いてないのだが、自分がどっかで働くなら、労働時間が短くて、いつでも気軽に辞められて、スケジュール調整に融通がきくのが嬉しい。
まず、キツイ納期だといいプログラミングが書けないので、1日3時間ぐらいまでのペースでやってもらって、あまり作業は急かさないようにするのがよいと思う。もちろん、もっと長くやりたい場合はやってもらってもいいんだけど。
あと、ちょっと仕事したくなくなってきたら、いつでも気軽に辞めれる、またはしばらく休める、気乗りしないプロジェクトや作業は断れるっていうのが気軽でいいと思う。僕もコードを書くので完全に開発がストップするということはない。
ゆるい感じだと、「ちょっと興味あるけど、始めてみてなんか微妙だったら嫌だな」と思った優秀なエンジニアが軽い気持ちでちょろっと手伝ってくれるかもしれない。飽きたり、他のことをしたくなったりもすると思うので、暇な時だけ手伝ってもらうぐらいがいいかも。
こうなってくると、ワークシェアみたいな考え方で同時に複数人の人に手伝ってもらう体制になるので、メリットもデメリットもありそう。
まず、エンジニアとしては他の人が書いたコードを引き継ぐというのは基本的に苦痛である。だから、作業人数が多くなればなるほどやりにくい。とはいえ、フリーランスの人もいろいろな仕事をかけもちしてるだろうから、毎日手伝ってもらうことも難しい。このへんはジレンマ。
こちらから提供出来る事も考える
世の中には無料ランチとか、技術書読み放題とか、成長できる!とかいろいろ働く場所によっていいことがあります。
残念ながら僕の開発を手伝うのはあまり成長できるわけでもなさそうだし、セクシーなスタートアップ環境でもない。このへんも厳しいところなんだけど、このブログで書けないように自分の個人アプリ開発での経験やらノウハウやらに興味ある人には、雑談タイムに好きなだけ話したい。
あとは、Taxnote作るにあたって確定申告に詳しくなったので、初めて申告する人の相談にはのれそう。
こう書いてみたけど、正直どちらもエンジニアの人にとってはあまりメリットなさそうなのが困る。やっぱ、エンジニアなら優秀な人が集まってて、成長できて、新しいことに挑戦できる職場がいいもんですよね。悩ましい。
僕の経験でいうと、仲の良い友達と一緒にやるバイトってのは楽しかった思い出があるんで、一番重要なのは少しでも楽しく仕事ができる雰囲気を作ることなんですかね。このへんは人間力が問われる難しいところだ。
実際いろんな意見を聞くとハッとすることが多いので、TwitterでもFacebookでも、こういうのよくなくて、こういうのがやりやすいというのを教えてもらえれば喜びます。
*家計簿と読み上げのアプリ作ってます。自己紹介と過去ログはこちら。