OSS開発だけでお金をもらえるようになった

最近ついにPaid OSS Developerというやつになったのでので,そのことについて少し詳しく書きます.

要約:

  • WhalebirdというMastodonクライアントを作っている
  • 上記OSSについてお金を支払ってくれるチームが現れた
  • 時給制,USD建てで毎月支払われる

最初は本当に詐欺かと疑うくらいだったんですが,無事報酬が振り込まれたので載せます.詐欺じゃないです.

経緯

WhalebirdというMastodon/Pleroma用デスクトップクライアントを作っています.Windows/macOS/Linux用を用意しており,いずれも無料でダウンロードできます.

h3poteto.hatenablog.com

これはOSSとしてGitHubに公開されており,ライセンスはMITなので,Forkやコピー等も行えます.

github.com

このクライアントに関して,とあるActivityPubなSNSを運営するチームから「Whalebird - paid open source development opportunity」というタイトルで,

  • そのSNSの公式クライアントにしたいので俺のOSSをForkした
  • Fork元のWhalebirdと,Forkされたもの両方の開発をやってほしい
  • この開発についてお金を払う用意がある

というメールが届きました(本文は英語だったので適当に要約してます). メールアドレスは,サービスの連絡先だったりGitHubでも公開にしているんで,普段から英語の(迷惑)メールが結構届きますが,そこに紛れていました.

あまりこちらに不利な気がしなかったので(それでも新手の詐欺じゃないかと不安にはなったけど),詳しく話を聞いた結果,請けることにしました.

開発優先度への影響

OSSで,単なる寄付以上のお金をもらうことに関して,「機能開発の優先度に影響があるのではないか」という不安はありました.

これが正社員として働いている会社のプロダクト開発であるなら,ビジネスの施策を無視して俺が好きな機能を積み続けるだけではダメなのは理解しています.しかし,俺が作ったOSSとなると,基本的には俺が積むべきと判断した機能しか積まれてこなかったわけで,ここに利害関係が入ることの影響がどの程度なのか,自分でもわかりませんでした.

結論から言うと,大きな機能追加の要望や優先度を変更してほしいというリクエストは今のところないです.まだ俺が好きな機能を好きな優先度で開発しています.

ただ,もともと俺の独断と偏見により開発されていたわけで,別に中立性を維持しなければならないわけではないので,嫌なら契約を打ち切ればいいかなと思って始めました.

報酬の決定と契約

さすがに日本国内で正社員として働いているので(フリーランスではない),「フルタイムは無理だよ,パートタイムだよ」ということを最初に伝えました.

また,

  • 成果の測定方法
  • 単価と相場
  • 支払い方法

が全然わからなかったので,海外で開発している友達に,

  • 副業という雇用形態は割と一般的であるのか
  • その場合の相場がどのくらいなのか
  • 時給もよくある話なのか

ということを聞きました.

それを元に何回がメールのやり取りをし,こちらのリクエストを伝え,

  • 副業で構わない
  • 成果については時給制・自己申告で良い
  • 支払い方法は銀行振込で良い,別にPayPalとかでもいい
  • 単価について

の合意が得られました.

また, 契約書は作っておいた方が良い という入れ知恵があり,「契約書を作って欲しい」ということもちゃんと伝えておきました.

だいたい上記で決めたことですが,

  • 支払対象となるリポジトリ
  • ライセンスに関して
  • 単価
  • 支払い方法
  • 支払い時の手数料を誰が負担するか
  • 請求期限と支払期限

について書いてもらいました.

ライセンスはOSSのライセンス準拠にしました(WhalebirdはMIT).

そもそも契約書については,日本語で書いてあっても難しいのに英語で書いてあるので,できれば誰かにレビューしてもらうと良いです.

単価について

具体的な金額については伏せます.これはmizchiさんが良いことを言っていたのでそのまま引用させてもらいます(フリーランスじゃないんだけど……).

ただ,単価の決定についてはかなり悩ましく,完全に副業のお仕事であればそれなりに決めようもあるのですが,なにしろ今まで趣味でやっていたOSS開発だったので,どのくらいを要求していいのか謎でした.これは国内/海外問わず,趣味でやっているものに報酬を払うと言われても,特に決める基準がないからだと思います.

それでも,一般的な労働の相場が国内よりは相場が高いことは聞いていたので,そこから趣味であることを差し引いて,「まぁ国内の労働でもらう単価としては普通かちょっと高い」くらいの金額で聞いてみて,OKをもらいました.

請求と海外送金の受け取り

この分野についてはほぼ素人なので,あまり当てにしないでください.

請求書

契約時に「月末締めで請求書を送ってね!」という話をしてしまったので,請求書を作らなきゃいけないわけです. ところが,freeeもMisocaも,請求書を作る機能はあっても,それを英語で出すことはできませんでした.

というわけで,諦めてTeXで請求書を作りました.

なお,請求書には支払先の情報を書く必要がありますが,海外送金になるので,自分が利用したい銀行にて,海外送金に必要な情報がどこかに書いてあるので,それを記述して送りました.

支払い方法については,PayPalでも銀行でもいいと言われたので,銀行受け取りにしました.手数料を向こうに負担してもらうことで合意はしているので,どれでもいいんですが.

契約書ではUSDで時給を表記していたんですが,請求金額自体は別にJPYでも良いとのことだったのでJPYで請求しました. この辺はどっちでも,為替相場によって多少変わるくらいなもので,それを自分でコントロールしたければUSDで受け取って好きなタイミングでJPYにすればいいと思います.

リフティングチャージと受取手数料とかかる時間

海外送金/受け取りは今回が初めてだったんですが(海外旅行のときはクレジットカードしか使わないしね),これがかなりめんどくさいというのはわかりました.

まず リフティングチャージ という概念がでてきます(これは銀行振込で受け取る限りおそらく避けられない). これでだいたい2500JPYくらいかかります.これは中継銀行でかかる手数料なので,実際に自分の口座に振り込まれる金額は,すでにリフティングチャージを引いたものが振り込まれます. それが振り込まれると同時に,自分の銀行での受取手数料がかかります(これも2500JPYだった).

というわけで,合計5000JPYくらいが差し引かれた金額になりました.この手数料について,契約書上では相手方の負担にしていたんですが,なにしろリフティングチャージの金額が不明だったので,初回は請求書に含めていませんでした. 次回からちゃんと含めよう…….

ちなみに海外からの送金を受け取る場合は,だいたい2週間くらいかかりました.

俺の場合,相手方がウチの住所表記を間違えており(1-1-1みたいな住所を111と表記してきた),その確認で数日追加でかかりました.

英語

基本的に先方とのやりとりは最初から最後まで英語です. Slackには入っており,基本的に文字ベースのコミュニケーションで,オンライン通話とかはないです.読み書きだけなら今のところなんとかなってます.

チームの何人かとは話していますが,皆さん住んでいる場所がバラバラなので,どこかのオフィスに集まってやっているというわけではなさそうです.そういう意味ではやりやすいですが,時差はかなり感じます.

まとめ

というわけで趣味でWhalebirdの開発をしているだけでお金がもらえる状態になりました.

今回はたまたま趣味のOSSが割と大きめの金額になりましたが,こんなことはほとんどなくて,本当に運が良かっただけだと思います.そもそもWhalebirdがこんなに色んな人に使ってもらえるとも思ってなかったので,それも運が良かっただけですね.

ただ,たとえ趣味でもずっとコードを書き続けてると,こういった形でたまには良いことがあるらしい.

一応チームのSlackに入れてもらって,fork版の方の設定等の相談はしていたりしていますが,特にWhalebirdにこういう機能がほしいというようなリクエストは今のところありません.お金を受け取ってはいますが,相変わらず俺の独断と偏見により機能が追加されています.

寄付について

また,WhalebirdはPatoreonLiberaPay による寄付募集が公開されています.今回の話の中にはこの寄付については一切含めていません. そこまでパトロンの人数も多くないので,大きな金額ではないですが,継続的に数人からいただいています.

ありがとうございます.

この先

完全に副業で,契約書にも

This contract may be terminated at any time

と書かれており,これがいつまで続くのかはまったく謎です.もしかしたら来月くらいにはまたただの趣味に戻っているかもしれません.

が,とりあえず今はソフトウェアエンジニアの夢みたいな状態になっているので,楽しんでおこうと思います.