縁あって複業を始めてみた話

ごあいさつ

この記事はクラウドワークスアドベントカレンダー2019 の24日目の記事です。
昨日の記事は k-waragai さんによる「リアルタイム共同編集ツール『HackMD』をオンプレ運用して、好きな機能を追加して幸せになった話」でした。

こんにちは。クラウドワークスで開発業とか偉くないマネージメント業のようなことを手掛けています、沢田と申します。

クラウドワークスでは、公式に副業 (or 複業) が認められています。ひょんな縁で僕も複業を始めることにしまして、気がついたら一年近くが経っていました。せっかくなので、そのきっかけとか、やってみてどうだったかといった話をご紹介しようと思います。もちろん、話して大丈夫な範囲で。

ちなみに、この記事は当の複業先の方々にも先にレビューを頂いてから公開しています。公開してはいけないトピックは含まれていないはず。

「複業」という表記について

「ふくぎょう」は通常は「副業」という字をあてますが、この記事では「複業」で通します。
これは、クラウドワークスの仕事ともう一つの仕事、どちらも同じぐらい大事に考えていて位置づけとしては対等であるという考えでこれを選択しています。

「副業」という表記だと、どうしても「メインとサブ」みたいに序列があるようなニュアンスを出してしまう気がするので。

きっかけ

きっかけは一通のメールでした。「GitHub とか Qiita を見て興味を持ったので連絡しています」的な書き出しだったので初見で人材コンサルの人かな?と思いきや、技術的負債を解消したりより良いエンジニア組織を作るのを手伝ってもらえる Ruby や Rails の経験がある人を探している、という内容が続き、どうやらコンサルさんではなくて自社サービスを手掛けている会社の人らしいことが分かりました。さらに「こういうサービスを作っておりまして」という説明が続いたところで、ふと気づきます。

・・・知人が CTO やってる会社だw

コンタクトしてきたのはその会社の代表の方でしたが、その CTO の知人と繋がりがあることは知らずに声をかけてくれたようです。
やー、アウトプットはしておくものですねw Qiita の記事と言ってもアドベントカレンダーぐらいしか投稿してなかったのですが。

不思議な縁と言うか、業界狭いと言うか、とにかく状況が面白かったので話は聞きに行ってみようと考えました。一方でクラウドワークスでやりたいこともまだまだあるので転職という選択肢はありませんでした。

しかし、幸いなことにクラウドワークスでは複業が公式に認められています。当時は複業と呼べるものは何もしていなかったこともあり、平日夜とかであればお手伝いしても良いかも、と考えました。代表の方のメールの文面からするとおそらくフルタイムとして転職をご希望なんじゃないかなーと思いつつも、あくまでも空いた時間で良ければという方針で。

で、話をしてみたら即答で「ぜひ!」ということになり。
マジですか (。◉ᆺ◉)

そんなこんなで知人の勤めている会社の事業をお手伝いすることになりました。

何を手伝おう?

さて、そうなると考えないといけないのは、何を引き受けて、どういう仕事の仕方をするか、です。昼間の会社勤めが終わった後の夜の時間に別の仕事をするという経験はなく、1から手探りです。

いちばん分かりやすいのは、一括で開発業務を請負って毎日ちょっとずつ進め、完成したら納入するみたいなやり方ではないかと思います。多くの人が副業で開発を請負うと聞いて思い浮かべるのはこういうイメージではないかと。ところが、僕の場合は過去の経験から考えて、このやり方は向いていないということが分かっていました。それよりも、チームの一員としてプロジェクトに参加し、共同で作業を進めていくというやり方の方が性に合っています。

問題は、チームの一員として仕事をするには勤務時間が他の人達とずれているところですね。社員の人たちがそろそろ切り上げて帰ろうかというタイミングで自分の仕事がスタートするようなタイミングになります。普通に考えて、コミュニケーションの難易度は少し高くなりそう。ですが、タイムゾーンが8時間ぐらいずれているだけだと捉えれば、不可能ということもないだろうとも思いました。先方の社員の人たちは Slack でコミュニケーションを取っているということなので、お互いに引き継ぎ事項をポストしてから帰るようにするなど、上手く工夫すれば良いかなと。

次に、一日の作業をどれぐらいにするかが問題になります。自分の性格を考えると、毎日少しずつ仕事をする形の方が向いていると考えました。それに、チームの人たちから見ても毎日何らかの進捗があった方が安心でしょうし、こまめに軌道修正しながら進めることができるというメリットもありそうです。そのように考えて、平日月〜金の夜に1時間をめどに仕事することに決めました。

さて、時間の使い方を決めたら、次はどういうタイプの仕事ができるかです。一日の持ち時間は1時間なので、ある程度まとまった時間を要するような作業は向かないだろうと考えました。たとえば新規の機能開発みたいなのは、1時間ごとの細切れにして作業するとちょっと辛そうに思えます。それよりは、たとえばリファクタリングとかの小さめの作業とかの方が良いかもしれません。

というようなことも踏まえて、先方のチームの人たちと話し合った結果、

* コードレビュー
* Rails4 → 5 のバージョンアップのお手伝い

をメインにするということで合意しました。偶然にも、クラウドワークスでも Rails4 → 5 に上げる対応が進行中だったわけですがw

機材どうする?

業務を始めるにあたって、PC はどうする? と打診されました。ウィルス対策などがしてあることという条件付きで自前のものでも良いし、貸与でもどちらでも ok という話でした。自前であればセットアップとかの手間も省けるので楽そうですが、カンファレンス参加などであちこちに持ち出すことが多いし、リスクを考えると分けておいた方が賢明そうだと考えて、貸与を選択。

実際やってみると、セットアップの手間はあまり問題になりませんでした。困ったのは、ソフトウエアアップデートですね。クラウドワークスの仕事をリモートワークでやっていることもあるので、自宅には最大で

* 私物
* クラウドワークスの業務用
* 複業先の業務用

と3台の mac があるわけですが、これらが一斉に「アップデートがあるけど、いま適用する?」「え?適用しないの?じゃあいつやる?今晩?明日?」とか主張し始めます。控えめにいってうるさい。おまえらちょっと静かにしろと言いたくなりますw

まぁ放置するわけにもいかないので対応するわけですが、業務時間にアップデートを始めてしまうと、下手するとそれだけで30分とかかかってしまうわけで、一日の持ち時間が1時間という制約下ではちょっと厳しい。しょうがないので、空き時間にまとめて対応することになったりします。

あと、周辺機器は多重化しました。普段からキーボードやトラックパッドは外付けのものを使っているのですが、自宅とクラウドワークスのオフィスそれぞれに一式を置きっぱなしにします。幸いにして (?) 複業の方はオフィスに出向くことはあまりないので、そちらようにもう一式置いておく必要はありませんでしたが。こうすることで、移動の際は PC さえ持っていけば大丈夫な体制になります。移動のたびにキーボードとかトラックパッドとか、あと外部ディスプレイ接続用のアダプターまで全部忘れずに持っていくというのは僕の性格からは無理だったので、札束で殴りに行く作戦にしました。

ちなみに、移動の際に PC 自体を持っていくのを忘れたことは今のところないですが、職場に間違った PC を持っていかないような工夫は必要になります。mac って世代が変わっても見た目はそんなに違わないですし、取り違えやすい。少し考えて、入れておくカバンを分ける運用にしました。クラウドワークスに出社するときはこちらのトートバッグを持っていく、複業先の方は別のリュックで、と決めてしまい、混ざらないようにするという作戦です。仕事が終わった後は、速やかに該当する方のカバンに収納しておきます。該当じゃない方にはすでに先客が入っているので、取り違えて逆に入れてしまう可能性は極めて低いです。・・・とかなんとか言いつつも、一度だけうっかり「2枚刺し」状態にしたことはあるけどな。(ほら、最近の mac って薄いので、ついw)

やってみて

実際に仕事を始めてみると、当初心配したほどには深刻な問題は起きませんでした。これは事前に考えた作戦が上手く行ったということもありますが、それ以上に先方のチームの皆様が理解ある方々で、コミュニケーションのとり方もお互いに工夫する感じで行けたし、タイトなスケジュールに追われるようなこともなくて無理のないペースで仕事できたことが大きかったように思えます。つまりは、チームに恵まれた。

始める前は、これほんとに上手くいくのかな?という漠然とした不安はあったわけですが、実際にやってみたらこうだったという話を以下にまとめてみます。

普段の生活は?

昼間の仕事 (クラウドワークス) →帰宅→夕食→複業先のお仕事という生活リズムに落ち着きました。複業のお仕事を終えてから夕食というのも試してみたのですが、食事の時間帯が遅くなりすぎるのも良くないと考えてやめました。昼間の仕事が終わった時点ですでにお腹へってますしねw

一日に1時間程度ということにしたおかげで、仕事自体が負担になるというほどのこともありませんでした。1時間だけ残業しているような感覚ですね。むしろ、昼間の仕事で残業しなくなりました。こちらで無理をしてしまうと自分の首を絞めるのが分かっているので。クラウドワークスの方のチームメンバーにも複業の仕事をしていることを伝えた上で、残業とかしなくても無理なく業務が進められるように仕事量を調整したりしています。こちらでも、理解のあるチームメンバーに恵まれたおかげで助かっています。ありがたい。

まぁ、日によっては複業の仕事が終わった頃には疲労困憊してしまっていて、「ちょっと休憩」というつもりで横になったらそのまま寝落ちてしまって、気がついたら明け方、みたいなことは稀によくありましたw 最近は、疲れたな、と思ったらゲームとかは諦めて寝るようにしています。

一日一時間で仕事は回る?

短時間で片付けやすいタイプの仕事を選んで回してもらっていることもあって、だいたい毎日少なくとも何か1つは完了することを継続できています。たとえばコードレビューとかであれば中にはすぐに判断できるものも混じっていたりするので、運が良いと4,5件ぐらい倒せたりとか。

まれに調査タスクなどで、試行錯誤が必要だったり、検証用の環境を手元に作って様子を見るみたいなことが必要になったりして、1時間では収まらないことも出てくることはあります。そういった場合は、すぐには終わらなそうだと判断すれば「今日はここまでやって分かったことはこれ、明日は残りのこれを検証します」的に作業報告を残しつつ翌日に続きをやる感じにしてみたり、あるいは「きっともうちょっとで読み解けるはず!」と判断して1時間を超えても続ける場合もありました。気がついたら2時間ぐらい経っていて、慌てて明日に仕切り直しにすることもありましたがw

とはいえ、平均するとだいたい1時間ちょっとというところに落ち着いていると思います。

コミュニケーションはどうやってる?

お互い Slack に慣れていたので、全て Slack に集約しました。

すでに説明したように働く時間帯が違っているので、基本的には非同期を前提にメッセージを投げています。つまり、質問とかを書いてもすぐに返事が来ることは求めない。翌日に分かればいいや、ぐらいの感覚でポストします。返事が来るまでの間は、不明点は横に置いておいて別のことに取り掛かるなどします。

また、1時間ガッツリかけて調査する場合などは、一歩進むごとに起きたこと・分かったことなどをこまめにポストすることもあります。たとえばこんな感じに。

* 今日はこの件の調査に着手します
* 何が問題なのかが分からなかったのでググって出てきたコレを参考にしました (リンク貼る)
* これなら、ソースコードを横断でキーワード xxx で検索すれば良さそう
* 一致箇所多すぎた>< もうちょっと絞り込むのにこんなコマンドで探してみます (コマンドを貼る)
* こんな結果が出てきました (結果の出力をまるっと貼る)

昼間にこれをやるとかなりうるさいと思いますがw 夜間で人も少ないので延々と独り言を言っているような状態になります。こうすることで、何らかの進捗があるとか、あるいはどこかで困っているということが後から見てもわかりやすくなります。翌日に見る人の立場からは、追いかけるのが大変かもしれませんがw

それ以外にも、できるだけコミュケーションコストが少なくて済むようにログとかスクリーンショットを貼りつつ「こういう現象になっていて、状況から見てたぶんこうだと思うんですが合ってます?」みたいに工夫したりはしています。

そんな感じで心構えとしては非同期対話なんですが、実際には業務中に返事をもらえることも多々あり。調べてみないと分からないみたいな内容だとさすがに無理だと思いますが、比較的簡単に分かるものについては急ぎで答えてもらっているようです。ありがたい。

複業していることのメリットは?

クラウドワークスと複業先とで携わっている業務はよく似ているため、問題のない範囲で知見やノウハウの融通が利くというのが大きいと思います。もちろん、業務知識的な情報を渡してしまうのはアウトですが、機密保持には抵触しないような一般的な情報をお互いの会社に伝えたり、一方の仕事で得た知見を他方の仕事をする時に活かすみたいなことは、たまにやっていました。

分かりやすいところでは、Rails4 → 5 のアップデート対応の知見があります。偶然にも (?) 両方の会社で 4 → 5 のアップデート対応を進めていたのですが、調査や対応を進めていくと「これは弊社の方でも気をつけないといけないポイントなのでは?」みたいなことに気づくことがあります。ざっと振り返ってみたところ、クラウドワークス側の Qiita Team に「new_framework_defaults.rb の扱い方」とか「Rails4, 5 でテストコード中のリクエストパラメーターの扱いが変わる件」みたいな記事を残していました。

そんな感じで、一方でやっている仕事が他方の仕事で役に立つ、みたいなことが起きるのが複業のメリットかなと思います。
まぁ、どの情報は融通して良いかというのは気をつけないといけないところですけどね。一般的な知識を説明しているつもりで、うっかり業務知識に触れてしまわないように注意が必要です。

個人的に持っている基準は、インターネットなどに転がっている公開情報を集めた知識であればOK, その組織に所属していなければ得られない情報・知識はNGというようにしています。あと、NGなものはNDAにも書かれているので、そちらも参考に。もし中間のグレーゾーンのものを融通したくなった場合は、都度相談して許諾を得れば良いかなというぐらいのスタンスです。

休みたいときは?

会社勤めで言うところの有給休暇みたいなものはあるかと言うと、そういうものはありません。では平日は休みなしで必ず働いているかというと、そこまで厳密ではなくて、たまに休みを入れていたりします。

代表的なところではクラウドワークスの方で夜にイベント (飲み会とも言う) が発生したときとか。あとはカンファレンス参加の場合も。RubyKaigi とか人工知能学会などの遠方の泊りがけで参加するような場合はさすがに仕事は無理だろうと思われるので休みにしていました。どのカンファレンスとは言いませんが、毎晩飲み歩くのが恒例というかむしろそちらが本番みたいになっているものもありますしw ちょっと川の様子を・・・いや、なんでもないです。

その手の、予め分かっている予定で休むときは早めに伝えて了承をもらうようにしています。

課題は?

というような感じで、幸いにもストレスもなく仕事をさせてもらっている状況ですが、いくつか課題も見えてきました。

大きめの課題には挑戦しづらい

まぁ、働き方を設計していた時点で分かっていたことではありました。
やはり1時間より長い時間を要するようなタスクには手を出しづらいですね。長いこと先方のコードを眺めていると「ここはこういう設計に変えるともっと上手くいくのではないか」みたいなアイデアが見えてきたりすることがあるのですが、思いついたことを実現まで持っていくにはハードルが高い。勝手にやってしまうのはちょっと違うと思うし、やるならチームの人とか先方のエンジニアさんとかを巻き込んで提案→議論→実現みたいに持っていくのが筋だろうなと思うのですが、これをちゃんとやろうとすると日に1時間では足りないし、そもそも依頼されているタスクを横に置いてまでそれやる?と考えると難しいものがあります。せっかくなのでいろいろ貢献してみたいんですけどね。

平日夜の勉強会と疎遠になりがち

平日にやっている勉強会はだいたい19時〜21時ぐらいの時間帯に開催されているので、移動時間とかも考えると終わった後に仕事するというのはちょっと無理そうに思えます。ということで、勉強会に参加するならその日は休みにするのが妥当そう。実際、何度か「勉強会に行くので」という理由でお休みにしたことがあります。

ただ、週一ペースとかで開催している勉強会とかは毎回参加してしまうと特定の曜日はいつも休みということになるので、ちょっと無理が。ので、これは気になるというものを選んで参加を検討するようになるのですが、ちゃんと情報収集するのは意外と大変です。仕事が終わるのが21時ぐらいだったりするとけっこう疲れていることもあって、あまり情報収集的な活動をしようという気にもならず。昼間の休憩中に見つけたものも TODO リストに放り込んだまま忘れてしまってたり。

あと、「今日開催の勉強会で、まだ空席がある」みたいな場合もなかなか参加には踏み切れないことが多いですね。「今日面白そうな勉強会を見つけたので休みます」みたいなことを頻繁にやっていると、「平日夜1時間を目処に」という前提が崩れてしまってよろしくない感じになりますし。

そんなこんなで、勉強会からは少し足が遠のく感じになってしまいました。最新の動向をキャッチアップできてない気がしますし、以前によく会っていた人たちともご無沙汰気味。このあたりは上手いことやる方法を考えたいところですね。

まとめと御礼

いろいろ書いてきましたが、こうして振り返ってみると、当初に持っていた不安をよそに快適に仕事ができていたと思います。最初に立てた、平日夜1時間という作戦が概ね上手くいった形になりますが、受け入れ先の人たちが理解のある方々であったことによる恩恵が大きかったと思います。おかげさまで快適に仕事できています。

そして、複業するということに快く同意&配慮してくれたクラウドワークスの、とりわけ一緒に働いているチームの人たちにも感謝を。

思えば、声をかけてくれたのが知人が勤めている会社だったというのが鍵であった気がします。この人が勤めているのであればそうおかしな会社ではないだろうという推測がつくので安心というか、身構える必要がなかったように思えます。この知人も勉強会つながりで知り合った関係なので、あらためて勉強会とかに顔を出しておくのは大事だなーと再確認した次第でした。

まぁ課題はありますが、この先も上手いことバランスが取れるように工夫しながら続けていければな、と考えている今日この頃です。


蛇足

最近、デス・ストランディングというゲームをやってます。簡単に言うと荷物運びを請負ってひたすら山道を歩くという内容 (大雑把すぎ) なのですが、おかげさまで

* 昼間: クラウドワークスの仕事
* 夜: 複業の仕事
* その後の時間: 荷物運送業

という「三足のわらじ」状態になってしまいましたw いや、これが国道とかのインフラ整備業も兼ねていてですね・・・(以下略

お後がよろしいようで。

明日は大トリで shuzonarita さんの登場です。どうぞ、お楽しみに。

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