7月30日を実質的な最終出社日としてMicrosoftを辞めることにしました。と言っても「出社」なんてしていないので*1、業務でXamarinの開発に携わるのはこの日が最後だった、という意味合いです。社員としての最後のcommitはコレになることでしょう。
プロジェクトに参加したのが2002年、Novellに入社したのが2003年、それ以来15年間も業務でMono Projectおよび関連プロジェクトの開発に携わっていたことになりますが、それにひと区切りを付けたということになります。長いですね。Microsoftでの2年と1ヶ月など自分の経歴ではオマケでしかないですし、Xamarinの開発ですら2011年からの7年間なので、それでもこの仕事の半分以下ということになります。
何で辞めるの?
いろいろありますが、今日はクリーンでポジティブな話だけを取り上げて書きたいところですが、「Microsoftに」所属して活動する意味はほぼ無い、と判断したからです。これまでMonoを生業の中心としてきたわけですが、Monoはオープンな開発コミュニティであり、MSに所属して関わっていく必要性は全くありません。まあもちろんMSから給料は払われなくなるわけですが、今でもMonoにコミットしているのではなく、Xamarin製品の仕事をやらされているわけで、その意味ではどこでどうしていようが変わりはないと思っています。
人はおよそ「自分を雇用する資格のある会社」に所属すべきです。
巨大企業の官僚主義に利用されることなく、伸び伸びと自分のやりたいことを最適なやり方で実現するためにcontributeするなら、自分のみの意思でできることが重要ですし、自分のコードに集中する自由もしっかり確保しておく必要があります。
あと、自分の周りで「気持ちよく」「楽しそうに」仕事している友人が増えてきたので、自分も「仕事だから…」と思って我慢して踏みとどまるのは良くない、と思うようになったことは大きいです。その意味では、Miguelと一緒に「仕事」しなくなるのはちょっと残念ではありますが、それはMonoコミュニティにcontributorとして参加していれば大して変わらないかなと思っています(Androidチームとしては彼との関わりも現状ほとんど無いですし)。社内のメンバーの何割かは同様にむしろ同僚というより友人なのですが、これからも続く縁はあるでしょう。
しかしいずれにせよ、やることをリセットするのであれば、すぐに仕事につくより、むしろ満を持して無職をエンジョイする勢になっておかないと…!というわけでまずそこからスタートです。Xamarin.Forms本の作業などもそうですが、今の立場にいると無駄に雑多なタスクが入ってきて趣味の活動を妨げるので、そういうものをひととおりリセットして*2、自分のやりたいことに使える時間を大事にしようと思っています。まあ別にそっちに全振りするわけではなく、全振りしなくても無理なく継続していけるライフスタイルが重要です。
これからどうするの?
8月以降の仕事の予定はありません。とはいえ、8/11には台北のCOSCUP 2018で登壇しなければならないので台湾に渡りますし、当日まではいろいろ準備しなければならないでしょう。それが終わったら技術書典5の手伝いなどをしながら、音楽ソフトなどをいじって遊んで暮らす予定です。
XamarinにはMonoDevelopの商用アドインやデバッガーなど、プロプラエタリに提供している部分がそれなりにあり、それらはわたしの興味の範囲外なので、非OSS部分が無いとコードが維持できないレベルになってきたら、他の言語やフレームワークに乗り換えてやっていくつもりです。特にわたしは中の人特権でLinux上でIDEアドインを無理やり動かしていたわけですが、それが使えなくなるので、これは早々にそうなるかもしれません。
モバイル以外の、MonoやMonoDevelop、Gtk# 3やXwt、Workbooksなどはオープンなので、そういった懸念は小さく、引き続き使っていくつもりです。作っているものによっては他の言語に移る可能性ももちろんありますが。.NETはみんなが思っているほどオープンソースではないので今後やっていくかどうかは分かりません。
今後も(Xamarinも含めて)Monoコミュニティに一番縁の深い日本人として、日本で起こっていることなどをXamarin本家にいろいろ連絡したりしながらやっていくでしょうし、コードなどにcontributeしたいけどどう参加したらいいかわからない…! みたいな人がいたら、これまで通り(?)サポートしますんで、お気軽にご相談ください。基本的には暇人になりますんで。