(このポストは、Daniel Stenbergのブログ記事、WORKING OPEN SOURCEを日本語訳したものです。)
わたしはフルタイムでオープンソースの仕事をしています。今回はそのお話です。
バックグラウンド
私は30年以上前に10代でプログラミングの方法を学び始め、1990年代初頭からソフトウェアエンジニアおよび開発者として働いてきました。開発者として最初に雇用されたのは1993年でした。それ以来、多くの企業で働き長年にわたって膨大な量の(独自の)ソフトウェア製品やデバイスに取り組んできました。つまり、私の人生のスタートはオープンソースではありませんでした。私はそれで稼がなければなりませんでした。
私は20歳のとき、スウェーデンで(当時は義務だった)兵役につきました。それを耐え忍んた後、大学に応募すると同時にIBMから仕事のオファーを受けました。私は躊躇なく仕事の方を引き受けました。大学には後でいつでも行くことができると思いましたが、結局人生は別の方向に進み、そちらに進むことはありませんでした。大学には一日も行っていませんが私はそれを後悔していません。
私は80年代半ばにコモドール64でコーディングすることを学び、それ以来ずっとソフトウェア開発は私の主な趣味の1つです。その頃私が身に着けた習慣の1つは、今でもそうなのですが、自宅のコンピューターの前で1日数時間を過ごすことです。
そしてcURL
1998年の春に、長年暖めてきた小さな計画の名前を再び変更し、初めてcURLをリリースしました。 この話は何度もしているのですが、それ以来、私はそのプロジェクトに2時間ほどの余暇を費やしてきました – 毎日20年以上、日中ソフトウェアエンジニアとして働いているかたわら。
時間の経過とともに、cURLは徐々に人気を博し、より多くのユーザーを引き付けました。 私がスタートの鐘を鳴らし、すべてが一斉に離陸した瞬間というものはありませんでした。 私と私の仲間のプロジェクトメンバーがcURLを改善し、磨き続けている間、それはゆっくりと着実に進んでいきました。 ある時点で、cURLとlibcurlが、製品やデバイスで参照されたりオープンソースライセンス集に表示されはじめていることに気づきました。
しかし、それはまだただの余暇プロジェクトでした。
独自ソフトウェアの時代
仕事としてオープンソースを作成できる立場にたどり着く前に、私は長年(20年以上!)契約およびコンサルタント開発者として、主にプロプライエタリのソフトウェアとカスタムソリューションに携わっていました。
Mozilla
2014年に私はMozillaに参加し、オープンソースプロジェクトのFirefoxで生計を立てる機会を得ました。そして、それは完全に私の家からやっています。これは私のキャリアの中で初めてであり、実際にほとんどの日をオープンで世界中で利用できるコードに費やしました。彼らは、たとえそれが本当のところあまり彼らの助けにはなっておらずcURLがMozillaの仕事や製品の基本的な部分ではなかったとしても、私の仕事時間の一部をcURLに費やすことを許してくれました。これは一つの奉仕活動です。
ポータブルなネットワークコーディングとこのレベルで成功したオープンソースプロジェクトを率いた長年の経験により、私はMozillaでその仕事に就くことができました。
私のMozillaでの仕事がセットアップされ、(今でも続けている)1日2時間の空き時間以外にもcURLにさらに多くの時間を費やすことができました。 Mozillaの誰も(私の仕事の)cURLをあまり気にしませんでしたし、誰も私にそれについて尋ねさえしませんでした。私はFirefoxで生計を立てていました。
仕事の一環としてオープンソースをやりたいと思っている人にとっては、すでに多くのオープンソースを行っている会社に就職することがおそらく最善の道です。それも簡単ではないかもしれませんし、あなた自身が完全には賛同していないかもしれない幾つかのオープンソースプロジェクトでの作業を受け入れる必要があることを意味するかもしれません。
2018年の終わりに、私はMozillaを退職しました。「リアルに」cURLの仕事をしたかったからです(また、ここで省略した他の理由もあります)。cURLはその時すでに20年以上も経ち、かつてないほど使用されていました。
wolfSSL
私は今、wolfSSLで働いています。 cURLのサポートおよび関連サービスを企業に販売しています。 企業はwolfSSLに支払い、wolfSSLは私に給料を支払い、私は食卓に食べ物を用意します。 これは、これがグッドアイディアであると企業を十分に納得させることができる限り機能します。
もちろん、cURLユーザーの大多数は何も支払わず、今後も何も支払うことはないでしょう。それを実現するには少数の企業が必要です–そしてそれは機能しているようです。 私たちは、お客様がcURLをよりよく使用できるように支援し、cURLをより良くし、この方法でより良い製品を出荷できるようにします。 それはウィンウィンの関係です。 そして、このおかげで私は一日中オープンソースに取り組むことができます。
私のオープンソースのライフスタイル
平日は朝7時前に起きて、妻と2人の子供という家族と一緒に朝食をとります。 それからその日の最初の一杯のコーヒーを手に取り、「オフィス」への階段を13段上ります。
そして、2つの27インチ画面を備えたメインの開発(Linux)マシンの前に座って、仕事に取り掛かります。
仕事とその順序
私はcURLプロジェクトを率いています。それは、多くの質問や決定について意見を述べたり、発言したりします。cURLで何かをしたい開発者がそれを続けられるように、できるだけ早くブロック状態を解除したり確認することが私にとっての優先事項です。
私は起きていてネットワークにアクセスできる時間はずっと、cURLに関するメールを読んで返信します。もちろん、受信メッセージが実際に即時の応答を必要とすることはめったにないので、それらをキューに入れて、後で行うことができます。また、新しいcURLの問題をできるだけ早く読んで評価し、すぐに対処する必要のある緊急の問題があるかどうかを確認したり、今後の対処方法を見つけます。
私は通常、取り組むべき一連のバグや機能修正などの課題をかかえているので、警告メールやGitHubの問題が残っていない場合は、cURLのソースコードツリーと現在取り組んでいる特定のブランチにコンテキストスイッチします。通常、さまざまな段階と成熟度の開発の20〜30の異なるブランチが進行中です。何かに行き詰まった場合、またはすべてのCIジョブを完了するのに時間が必要なプルリクエストを作成し、他の課題に切り替えます。
もちろん、私が何に取り組むかを決めるときは、顧客とそのニーズが優先されます。例外はおそらくセキュリティの脆弱性やその他の非常に深刻なバグが報告されていることですが、ありがたいことにそれらは稀です。でもその後は耳を傾けて、楽しいと思うことや、ユーザーに喜ばれると思うことをやっていきます。
私自身のために、または顧客のために何かを進めたい場合、それが他のプロジェクトの他のソフトウェアに触れたり改善したりすることを伴う場合、私はそれらのプルリクエストを送信することを躊躇しません-または少なくとも問題をファイルします。
暇な時間のオープンソース
はい、私は今でも空き時間をオープンソースに費やしています。ほとんどはcURLです。これは、私がcURLとcURL関連の活動に週に50-55時間を費やすことになります。しかし、私は労働時間を数えたり測定したりすることはなく、誰かに報告する必要はめったにありません。これは愛の仕事です。
多くの人が、人生、家族、子供などの理由で時間がないと言います。もちろん、私がやりたいことにずっと時間を費やす機会と能力を持っていられたのは、もちろん何年にもわたって非常に幸運だったからです。しかし、一般的に人々は趣味に多くの時間を費やしていることを忘れないでください。テレビを見たり、コンピュータゲームをしたり、友達と交流したり、寝たり。あなたがそれらのすべて(そう、睡眠を含めて)を減らすならば、チャンスはあるかもしれません。それは多くの場合、優先順位の問題です。私は自分の人生で暇な時間について、開発を優先させました。
cURLサポート?
cURLまたはlibcurlを使用している多くの企業はサポートを購入することで時間とリソースを無駄にせず、メリットを得ることができます。私たちwolfSSLはすでにcURLについては多くの経験があり、問題をはるかに迅速に見つけて修正できるので、結局より安価で長期的に有利になります。
クレジット
このブログの冒頭の写真は妻のAnja Stenbergが撮影したものです。 2020年の夏、地元の森にいる私です。