思いついたら、さっさと作れ!

思いついたら、さっさと作れ!

思いついたら、さっさと作れ!

個人開発にニーズ調査はいらない。「準備」と称して企画に延々と時間をかけるのは無駄

本記事は “Why Needs Assessment is Not Necessary For Your Niche Product” の日本語訳です。

こんにちは、TAKUYAです。InkdropというMarkdownノートアプリを一人で開発しています。このアプリは一人で企画から運用までやって、先月の売上は40万円を超えました。以前、ローンチさせて最初の売上を得るまでの話を書きましたが、その中で個人開発としてどんなアプリを作るとよいのかという話をしました。毎日感じるちょっとした問題を見つける、というものです。本稿ではこの話についてもう少し掘り下げて書きたいと思います。

沢山のユーザに使ってもらえるサービスを考えるのは簡単ではありません。それを事前に知るのはほぼ不可能です。でも僕は多くの人が「これ、欲しいと思う?」と聞いて回るのを見ました。彼らは失敗を恐れているように見えます。自分の時間と努力を無駄にしたくないようです。もし解決したい問題を見つけたなら、それに今すぐ取り組むべきです。周りがそれをどう思うかなんて気にする必要はありません。その理由について説明します。

Inkdrop — Jot down your daily hacking endeavors.

周りの意見は信じなくていいです。

僕はInkdropを作っている時に、友人にその話をしました。でも彼らの答えは「別にいらない」でした。しかも僕が抱えている問題を理解すらしてもらえませんでした。僕は間違っていたのでしょうか?そんなことはありません。Markdownエディタやノートアプリはすでに巷にあふれていましたが、僕はそれに満足していませんでした。UIデザインやシームレスなデータ同期、シンプルさ、パフォーマンスなど、そのこだわりを理解してもらうのが難しかったのです。自分と同じ問題を抱えていない限り、簡単には深く理解してもらえません。

僕のアイデアを理解してもらえないというのは寧ろ良い事です。もし理解できたなら、僕の問題を解決してくれるアプリはすでに存在していたでしょう。僕は数年間探し続けましたが、見つけられませんでした。それは別に、僕と同じような人が一人もいないという意味ではありません。だって自分は特別でもなんでもなく、普通の人間だからです。ただ単に、他の人達がその問題に気付いていないか、気付いているけど技術的なハードルが高いのです。

If you’re having this problem, it’s likely hundreds of thousands of others are in the same boat. — DHH訳: もしあなたが何か問題を抱えているなら、そこには何百何千もの人が同じように悩んでいる可能性が高い

まだ存在しないサービスを想像するのは難しいです。あなたが誰かに自分のアイデアを話すと、だいたい「え、本気で言ってる?」というような反応を示すでしょう。なぜならそのアイデアは洗濯機や冷蔵庫みたいな製品とは違うからです。ニッチ製品はほとんどの人にとって奇妙に聞こえるものです。現にInkdropをリリースしたら、「これが正に自分の求めていたものだ!」と何人かに言われました。彼らはやっと僕の問題を理解したのです。

もしそれがあなたの問題を解決するのなら、人が言ってることなんか無視して作業を続けて下さい。もちろん、彼らの言う通り沢山の人には使われないかもしれません。でも同様に使われる可能性だってあるのです。それはリリースするまで誰にも分かりません。

ブログはその事が知れる良い例です。ブログは記事を公開するまでバズるかどうか分かりません。どれだけ入念に徹底してライティングの成功法則に倣って書いたとしても、バズるかどうかは依然として分かりません。先日、自分の書いた記事がHacker Newsで話題1位になりましたが、それは全くの予想外の出来事でした。

ブログの記事は贈り物です。記事がいつも誰かにとって有益で、シェアしてもらえるとは限りませんし、期待もできません。それは全て読者次第です。ただやれる事は、記事を書き続けることです。MVPを素早く作ってとにかくリリースして何が起こるか見ろ、と成功者が口を揃えて言っているのは、まさにそれが理由です。

Start by making something clean and simple that you would want to use yourself. Get a version 1.0 out fast, then continue to improve the software, listening closely to users as you do.— Paul Graham, from “Hackers & Painters: Big Ideas from the Computer Age”訳: 簡潔で簡単で、自分が使いたいモノをまずは作れ。バージョン1.0をさっさと出して、それを改善し続けて、ユーザの声を親身に聞け。 — ポール・グレアム

繰り返しますが、同じ問題を抱えた人は一定数います。そこを心配する必要はありません。ただ、ニッチ製品は人々に見つかるまでに時間がかかります。Inkdropは最初の正式リリースから成長し始めるまでに一年かかりました。以下のStripeの売上レポートでその様子を見ることが出来ます:

月間売上レポート

製品をリリースしてすぐに何も起こらなくても、気にしなくていいです。誰も気付いていないだけだからです。すぐに見切りを付けるのはやめましょう。製品が知られ始めるまでにやれることは、以下に示す3つがあります。

自分が欲しいから作っている。だとすれば、その製品が目指すイメージはあなたの頭の中にあるはずです。それに近づけましょう。開発していると、自分が何を解決したいのかがより具体的になります。そして自分自身がヘビーユーザになりましょう。毎日使うのです。もしそんな気分にならないのなら、問題が実際に解決できていないか、もしくはそれほど大きな問題ではなかった可能性が高いです。

ユーザはあなたと同じ問題を抱えた仲間です。彼らは他にも似た人を知っている可能性が高いです。そんな彼らに口コミで広げてもらえるように、ファンになってもらうのです。以前書いた通り、それは大企業が出来ないようなユーザサポートをすることで可能です:

Inkdropのユーザ流入のほとんどは僕自身のブログからです。あなたは自分の製品に関連する話題について沢山ネタを持っているはずです。僕がなぜInkdropを作ったかと言うと、自分の生産性やクリエイティビティへの意識が高かったからです。だからそういった話題についてなら書けることが沢山ありました。そうして書いた記事が、アプリを知ってもらえるきっかけを作るわけです。もちろん昨今ではブログだけでなくYouTubeやポッドキャストなどいろいろ情報発信手段は揃っているので、好きなものを使うと良いでしょう。

もし失敗が怖くてしょうがない場合は、次に挙げるような問題を抱えている可能性があります。

もしモノを作る理由が人気者になりたいという事なら、それが恐怖の原因です。なぜなら、もし失敗すればあなたは人気者になるほどの価値がないという証明になってしまうからです。つまり自分自身が怖いのです。他人に自分の幸せを委ねています。そしてその内面は製品に表れてユーザに伝わります。「私はすごい!私を褒めて!」というように。もし心当たりがあるなら、自分のモチベーションについて見つめ直したほうが良いです。

もし好きな事なら、他人がどう思うかなんて気にならないはずです。なぜなら、それをやってる時点であなたはすでに楽しくて幸せだからです。もちろん良い製品を作るのは大変です。でも、興味のない領域で良い製品を作るのはもっと大変です。これはサイドハッスルです。もっと楽しみましょう。

失敗は沢山の学びをくれます。失敗から学ぼうという姿勢があれば、それは無駄ではありません。次はもっと上手くやれます。トライしてトライしまくるのです。そしたら成功率は徐々に上がります。賢い人は過去に沢山の失敗を積み重ねているから賢いのです。

あなたはすでに幸せです。だってやりたい事があるんですから。それを「準備」と称して無駄にしないで下さい。今やりましょう。

Read more

Claude Codeをtmuxのポップアップウィンドウで継続的に走らせる方法

Claude Codeをtmuxのポップアップウィンドウで継続的に走らせる方法

💡本記事は英語ブログの日本語訳です。 どうも、TAKUYAです。 AIコーディングでは専らClaude Codeを使っています。最初はtmuxでターミナルの右側にペインを分割して使っていたのですが、幅が狭すぎてメッセージやdiffがまともに表示できず、使いづらかったです。 <Prefix>+zでペインを最大化すればいいのですが、毎回やるのは面倒でした。 そこで、ポップアップウィンドウでClaude Codeを起動するようにしました。キーバインドを押せばセッションが開き、閉じてもバックグラウンドで動き続けるので、すぐに再開できます。 この記事では、それを実現するためのtmuxの設定方法を紹介します。 動画で見る(英語): ポップアップウィンドウはサブプロセスを維持できない tmuxのdisplay-popupコマンドを使うとポップアップウィンドウを表示でき、ちょっとしたツールにすぐアクセスするのに便利です。 僕はlazygitでgitの状態をサッと確認するのに使っています: bind -r g display-popup -d '#{pane_current_path}'

By Takuya Matsuyama
Keychron K2 HEを無刻印化する手順

Keychron K2 HEを無刻印化する手順

どうもTAKUYAです。KeychronさんにK2 HEをお願いしたら音速で送ってくれたので、無刻印化してみました。どうやったのか過程をシェアします。 Unboxing 上はKeychron Q1です。これは3年間ぐらい使ってきました。キーキャップが若干くたびれていますね。でも問題なく今まで使えていました。そろそろ飽きてきたので新しいキーボードを試したいと思い、前から気になっていたK2 HEを試すことにしました(写真下)。 Amazon | 【国内正規品】Keychron K2 HE ラピッドトリガー ワイヤレス カスタムキーボード、ホールエフェクトGateronダブルレール・マグネットスイッチ、2.4GHz・Bluetooth無線対応、QMKプログラム可能、アルミ+ウッドフレーム、USレイアウト、RGBライト、Mac Windows Linux対応 (ブラック) | Keychron | パソコン用キーボード 通販【国内正規品】Keychron K2 HE ラピッドトリガー ワイヤレス カスタムキーボード、ホールエフェクトGateronダブルレール・マグネットスイッチ、

By Takuya Matsuyama
ノート駆動AIコーディング術の提案

ノート駆動AIコーディング術の提案

どうもTAKUYAです。みなさんはAIエージェントを普段のコーディングで活用されていますか。ちょっと面白いワークフローを思いついたのでシェアします。それは、ノート駆動のエージェンティック・コーディング・ワークフローです。最近Claude Codeのプランモードを使っていたら、ターミナル内で生成されたプランを読むのが辛かったんです。それで、じゃあMarkdownノートアプリであるInkdropをプランの保存先バックエンドとして使えば解決するんじゃないかと思って、 試してみました。こちらがそのデモです(英語): こちらがClaude Codeの設定ファイル群です: GitHub - inkdropapp/note-driven-agentic-coding-workflow at devas.lifeComplete Claude Code configuration collection - agents, skills, hooks, commands, rules, MCPs. Battle-tested configs from an Anthropic hackathon w

By Takuya Matsuyama
2025年個人開発活動の振り返り

2025年個人開発活動の振り返り

どうもTAKUYAです。もう1月も半ばに差し掛かっているけど、2025年の自分の活動の振り返りをしたい。去年を一言で言うなら、本厄を満喫した年だった。 厄年とは、人生の節目にあたって、体調不良や災難が起こりやすいと経験的に言われる年齢のこと。数え年で42歳、確かにもう若さに任せた事は出来ないなと痛感した年だった。(ところであなたの国ではこのような年はありますか?) 夏に体調を崩して2~3ヶ月動けなくなった 暖かくなり花粉が飛び出した頃に、持病のアトピーが悪化しだして、まともに生活出来なくなってしまった。酷さで言うと、2019年に脱ステした時と同じぐらい。 脱ステに無事成功したから、この地獄は二度と味わうことはないだろうと高を括っていたが、まさか7年後にまた味わうとは思わなかった。当時の独身時代と違い、妻も子供もいる中で、周りに多大な迷惑をかける事となった。夏の子供との思い出が全く無い。悲しい。 現在はQoLもほとんど元の状態まで復活できた。写真を撮って症状の変化を記録したので、機会があればシェアしたい。食事療法など色々試したが、結局歩くのが一番自分に効いた。それ以来、一日一万歩

By Takuya Matsuyama