HN 日本語サマリー

← 一覧へ戻る
プログラミング

一人開発のメリット・デメリット

Pros and Cons of Solo Development (johnjeffers.com)

37 pointsby johnj-hn9 コメント

要約

著者は、Kubernetesクラスタ管理アプリ「Luxury Yacht」を一人で開発・維持する経験から、一人開発のメリットとデメリットを語っています。メリットとしては、完全な自由と満足感、迅速な開発サイクル、学習機会が挙げられますが、デメリットとしては、全ての責任を負うこと、フィードバックの欠如、燃え尽きの可能性、そして自己規律の必要性が強調されています。

全文翻訳

一人開発のメリット・デメリット 2026年7月5日 私はKubernetesクラスタを管理するためのデスクトップアプリ「Luxury Yacht」を作成し、維持しています。Headlamp、Lens、k9sのようなアプリだと考えてください。まさにそのような種類のアプリです。 Luxury Yachtは個人プロジェクトであり、今日に至るまでかなりの挑戦でした。この6ヶ月間で学んだことについていくつか話したいと思います。 まず、なぜ? Headlamp、Lens、k9sのようなアプリが存在するのに、なぜこれを行うのか?私は自分に合うアプリを一度も見つけられませんでした。私が求めていたものに最も近かったのはInfraでしたが、これは長年放置されていました。そこで、自分で書くことにしました。その過程で、他の人も使うかもしれないと思うほど良くなったので、リリースしました。 Luxury Yachtの維持は、実質的に私が無償で行っているフルタイムの仕事であり、私の余暇を消費しています。それは私の夜と週末の大部分を占めています。文句を言っているのではありません!誰も私にこれを強制しているわけではありません。私はそれを楽しんでいます。自分にとって本当に役立つものを作成し、それを他の人と共有できるのです。この記事を書いている時点で、GitHubリポジトリには350以上のスターがあり、それはとても良い気分です。 メリット アプリの唯一のメンテナーであることには、多くの自由が伴います。これが私にとっての大きな魅力です。私は自分が望む通りのアプリを、自分が望む通りの方法で手に入れることができます。これは非常に満足感があり、まだ試したことがないなら試してみるべきです。AIはこの扉を多くの人々に開きました。後でもっと詳しく話します。 一度に多くの変更をリリースできます。他の人には絶対に押し付けたくないような、途方もなく大きなPRを作成できます。自分自身以外に誰にも責任を負わないことは解放的です。私は全ての製品決定を行います。機能が必要なら、それを構築します。リリース期限を守るために機能をカットしたり遅延させたり、私が同意しない方向にアプリを進めることについてプロダクトチームと交渉したりする必要はありません。自分のスケジュールでリリースします。時には1日に数回リリースすることもありますが、特に大きくて複雑なタスクに取り組んでいる場合は、リリース間に数週間かかることもあります。 スタンドアップ、スプリント、ポイント、またはバーンダウンは行いません。実際に作業を行うのを妨げる可能性のある全ての儀式は、一人で事業を行っている場合はなくなります。 私は自分のアプリを好きなようにライセンスし、リリースすることができます。私の場合は、全て無償で提供することにしました。それにはいくつかの理由があります。 私はFOSSの哲学が好きで、私に多くのものを提供してくれたコミュニティに何かを還元するという考えが好きです。私はLLMを広範に使用してLuxury Yachtを書いています。他の人の努力に基づいてトレーニングされたコードを使用するために誰かに料金を請求するのは、正しくないように思えます。おそらくこれはナイーブな考え方かもしれません。 私はソフトウェアビジネスに関わりたくありません。私はアプリを作成するのが好きです。ビジネスを運営したくありません。自分が何をしているのかを理解することは重要です。そうすれば、自分がやっていることを楽しむことができ、燃え尽きないでしょう。私はお金を失っているかもしれませんが、気にしません。幸せでいたいのです。 メリットのもう一つのカテゴリは学習機会です。あなたのプロジェクトから何を学ぶかは、あなたが何を構築するか、どのように構築するか、そしてどこから始めるかによって異なります。Luxury Yachtでの作業から具体的に何を学んだかについては、私固有のことなので詳しく説明しません。十分なのは、それがあなた自身の専門分野では対処する必要がないかもしれない物事に対処することを余儀なくされるため、多くのことを学ぶということです。 デメリット その自由の裏返しは責任です。あなたは全てのことに責任を負います。一人でこれを行うには、多くの自己規律が必要です。規律がない人にはお勧めしません。 AIのおかげで、ソフトウェアを書くことは簡単ですが、良いソフトウェアを書くことは依然として困難です。LLMにコードの大部分を書かせたとしても、それがゴミになるのを防ぐには多くの作業が必要です。現在のLLMは、コンテキストウィンドウで大規模なアプリの複雑さを保持できません。奇妙な脱線に進み、ゴミコードを生成しないように、常に監視し、指示する必要があります。 友人(アプリのユーザー)以外に、アイデアを相談できる相手がいません。私の設計上の選択が正しいのか分かりません。私の実装が理にかなっているのか分かりません。コードで初歩的な間違いを犯しているのか分かりません。 私が持っているのは、プラットフォーム/インフラエンジニアとしての豊富な経験であり、Kubernetesは登場してからほぼずっと使用しています。このようなアプリに何を求めるかについては、かなり良い感覚を持っています。そして、私がこのアプリに求めるものが、他の人々が求めるものと同じであることを願っています。しかし…ユーザーが本当に何を求めているのかは分かりません。Luxury Yachtにはいかなるテレメトリもありません。それを言えるのは好きですが、何人がそれを使用しているのか、どのように使用しているのか全く分かりません。他の人々にとってどの機能が最も重要なのかも分かりません。 それは巨大な時間の浪費になり得ます。前述したように、私は放課後の時間のほとんどをこれに費やしています。もちろん、私の選択です。私は誰にも縛られていませんが、自分の名前が付いたものを世界に送り出す以上、可能な限り最高のものにしたいと思っています。 あなたはカスタマーサポートチームです。開かれる全てのバグレポートと機能リクエストはあなたに割り当てられます。全てのコントリビューターPRはあなたがレビューするものです。あなたのアプリが人気になればなるほど、やるべきことは増えます。自身の成功の犠牲者になることは現実です。 バランスを見つける メリットとデメリットのほとんどが、コインの裏表であることがお気づきかもしれません。あなたは楽しくてやりがいのある全てを行うことができ、そうでない全てを行う必要があります。うまくいけば、「できること」が「しなければならないこと」を上回るでしょう。 試してみるまで分からないかもしれませんが、この記事がそれを理解するのに役立ったことを願っています。私にとって、バランスは取れています。私はこのプロジェクトをとても楽しんでいます。私が楽しんで使用できる良いソフトウェアを構築することは満足感があります。それが他者によって使用されているのを見るのは、さらにやりがいがあります。リポジトリをスターした人々の場所をチェックして、彼らが世界中から来ているのを見るのは非常にクールです。 ちょっとした逸話です。私はこの4月にアムステルダムで開催されたKubeConに参加しました。友人のアドバイスに従って、Luxury Yachtのステッカーを作成し、カンファレンスに持っていきました。会社のブースに置きました。カンファレンス2日目に、ある参加者が私たちのブースに立ち寄り、ステッカーを見て、「おい、それ使ってるよ!」と言いました。私は「本当に?私が作ったんだよ!」と答えました。それから、なぜ彼が他のアプリよりも私のアプリを気に入っているのかについて少し話しました。この人はカンファレンスに出席するためにドイツから旅行してきた人で、私が作ったものが私の住む場所から遠く離れた誰かに評価されていることが、どれほどクールなことか衝撃を受けました。これが、この努力を価値あるものにするものです。 #development #kubernetes #thoughts