名人氏の自己紹介

名人氏:タイトルは「個人開発がおすすめな理由」というところで、株式会社NoSchoolでCTOをしている名人という者ですが、発表します。お願いします。

目次です。自己紹介と、私が個人開発しているツールを話したあとに、おすすめな理由を6つほど用意してきたので、それを話す感じで発表をしていきます。

最初に軽めに自己紹介をします。名人というハンドルネームで「Twitter(現X)」や「Zenn」で記事を書いているので、良かったら見てもらえたらうれしいです。ふだんはオンライン家庭教師「マナリンク」という家庭教師のサービスを開発している株式会社NoSchoolでCTOをしています。個人開発で「テストメーカー」というサービスを作っています。

好きな言語はTypeScriptで、好きな麻雀の役は七対子です。趣味は将棋、カメラ、ラム酒、個人開発、筋トレです。お願いします。

名人氏が個人開発している「テストメーカー」

最初に自分が個人開発しているサービスを軽く紹介できればと思います。テストメーカーというサービスで、もし興味がある方がいたらググったりしてもらえると出てくるかなと思います。

2021年ぐらいに開発し始めて半年ぐらいでリリースしたやつで、今は累計で14,000アカウントぐらい登録してもらっている感じです。

「文章をそのまま穴埋め問題にできる」というコンセプトのツールを作っています。「技術的な話で興味あるよ」という方がいたら、「Zenn テストメーカー」と検索をしてもらえると、いい感じのが見つかるかなと思います。

ちなみにテストメーカーは人生で10個目ぐらいの個人開発で、過去にもいろいろと作ったことがあるのですが、だいたいスベっている感じです。

せっかくなので操作動画を見てもらえると良いかなと思います。(画面を示して)こんな感じで文章を入力したら、そこからそのまま問題ができて、選択問題を作れたり、解答モードに移ったら解答できるようなツールです。「トランペット」と打って、採点したら結果が出るみたいなツールを作っています。

あとは、リリースした時に取材も受けたりして、貴重な経験ができている感じの人です。

個人開発がおすすめな理由1 使ってみたい技術を試す場になる

こんな感じで個人開発を1年半ぐらいやっている自分から、個人開発がおすすめな理由を発表していけたらと思います。

1つ目が、使ってみたい技術を試す場になるところです。これはすごく月並みな話ですが、個人開発は意思決定者が自分なので「使ってみたいから」という理由で技術導入ができます。

テストメーカーの場合は、これは本当にアレなんですが、意味もなくi18n対応しました。国際化対応は、本来はそういうサービスに関わらないとやることはないと思うんです。

だけど、知り合いの方と話していて「名人さんはi18nをやったことあります?」みたいなことを聞かれて、「i18nはないですね」みたいな話になり、ちょっと悲しかったので、テストメーカーでやるかという感じで入れました。

その時の話の内容があとからわかってうれしかったというか、やって良かったなと思いました。

あとは、既存サービスをあとから国際化対応するのはメチャクチャだるいなという感覚を得られて良かったなと思っていて、こういうことが経験できるのは良いところかなと思っています。

個人開発がおすすめな理由2 不確実性に投資できる

2つ目は不確実性に投資できるところです。これはどういうことか、独特な表現かなと思います。自分は今エンジニアになって7、8年ぐらい経つんですが、エンジニアは経験を積めば積むほど、より確実にリターンが得られる手段を選ぶ傾向にあるかなと思います。

例えば、自分がReactをメチャクチャ経験したことがあるんだったら、業務で新しいものを作るとなったら、まずはReactで作ることを選ぶと思います。

経験値に応じて等級や立場も上がっていくと、なおさら「自分はReactをやっているしReactでやるか」みたいな感じになっていって、不確実性が高いことができなくなっていく傾向にあるかなと個人的には思っています。

なので、誰とつながるかわからないけどイベントに登壇をするとか、読まれるかわからないけど記事を書いてみる。あとは、1円も入るかわからないけど個人開発をするとか、そういった行動をあえてすることは個人的には大事かなと思っていて、個人開発もそのうちの1つかなと思っています。

なので、個人開発をしようと思っている方は、自分もそうなんですが、「このアイデアはスベリそうだからやめようかな」みたいなことをあまり思わずに、どんどん開発するのがいいのかなと思っています。

個人開発がおすすめな理由3 作ったことのあるサービスの種類が増える

次に3つ目です。作ったことのあるサービスの種類が増えるという話をしていきたいと思います。いきなり大きい話になるのですが、いろいろなWebサービスが世の中にあると思うんですが、雑に分類すると、メディア、SaaS、ツール、SNSの4つぐらいがあるのかなと思っています。

メディアというのは、飲食店検索サイトの「食べログ」さん、ECサイトやブログですね。SaaSは会計のSaaSで「freee」さんや株式会社マネーフォワードさん、あとは医療SaaSとか。ツールは「Slack」「Notion」あとは「Autify」とか。SNSには「X」や「Facebook」というようなサービスがあると思います。

自分は前職ではメディアで、現職ではメディアとSaaSを兼ねたようなサービスを作っているんですね。経験していないのがツールとSNSだと思っていて、テストメーカーもいわゆるツールのサービスなので、これで3種類経験できたと思っています。

これはなぜ大事かというと、分類ごとに重要視する技術が異なるのかなと思っているからです。例えば、SaaSを作っている方がSEOについて学ぶ機会はあまりないですよね。逆に、LPを量産するメディアをふだん作っている場合には、デザインシステムをがっちり構築することはあまりないかなと思っています。

そこで、個人開発も兼ねることによって、いろいろな種類のサービスを作ってみる経験値があると、流行っている技術や設計手法を聞いた時に、「流行っているから使う」というのではなく、「自社のサービス特性に合っているから使う」みたいな考えが及んだりするので、そういうメリットがあるのかなと思っています。

個人開発がおすすめな理由4 Webサービスの全体感が見える

次に4つ目。Webサービスの全体感が見えることです。これはWebサービスに限った話になりますが、個人開発をするとWebサービスの全体感が見えるようになります。Webサービスを作ると、デザインとか、SEO、「LPにどんな情報を載せるとコンバージョンが取れるのかな」とか、フロントエンド、認証、バックエンド云々みたいな、いろいろなところをやることがあります。

やはり実務で全体を任せられることも普通はあまりないことかなと思うので、個人開発というか、Webサービスを0→1で作ってみると、いろいろなところの解像度が上がっていくのかなと思っています。

例えばテストメーカーの場合ですが、とある格安のサーバーのサービスを契約したら、リージョンが海外だし、謎に落ちるし、サポートが雑というような経験をして、「やはりAWSやGCPって値段が高くて、IAMとか設定も大変で手間もかかるけど、相応のメリットがあるよね」みたいな気づきを得たりしたので、すごく良い経験かなと思っているところです。

個人開発がおすすめな理由5 要件定義の経験ができる

5つ目が、要件定義の経験ができるところです。個人開発は自分が企画から実装までをやるので、課題を解決するためにはたくさんの手段があって、その中から自分が決める経験ができると思っています。

要件まで固まってから開発チームに要件が降りてきて、そのとおりに開発するというところでは、設計や実装に集中して仕事をする方も多いのかなと思います。

個人開発では、サービスやそのサービスで解決したい課題は自分が一番わかっているし、そういう点では、要件定義にチャレンジする上での知識的な障壁がほとんどない状態になっているので、挑戦するには打って付けだなと思っています。

個人開発がおすすめな理由6 汚いコードを書くとどんな目に遭うかわかる

最後の6つ目です。表現がアレですけど(笑)。汚いコードを書けばどんな目に遭うかわかるところです。これはふだん自分も仕事でコードレビューをする時に、つくづく思うところです。

実務だと、コードに問題があった時にソースレビューで弾くことが多いと思うので、リリースしたり、保守することがないと思います。

保守されることがないから、「こういうコードを書いたら具体的にどんな目に遭うのか」は、頭ではわかっていても、実体験が伴わないことがあるのかなと思っています。

例えばコードを見た時に「こういうことで困りそうだから、このコードはダメだよね」じゃなくて、「なんかDDDっぽくないよね」とか、「責務違反だから」みたいな感じに至りがちなのかなと思っています。

個人開発だと、ファットコントローラーや、すごく大きいモジュールとかが思いっきり書けるので、そういう状態で思いっきりリリースしてみて。

機能をどんどん追加するとえらい目に遭ってしまうので、そうすると、やはり「どういうコードを書くとより保守性の高いアプリケーションを作れるのか」が逆にわかってくるのがすごくいいところというか、自分なりの砂場を持つメリットかなと思っています。

個人開発なら「自分がどう取り組むか」をコントロールできる

最後にまとめです。個人開発は、自分のキャリアにおいて不確実性に投資するための手段の1つだと思っています。別のLTであったように、収益を上げたり、ユーザーさんから「いつも助かっている」というメールを受け取ったりするとか、そういうところはうれしいというのもありますが、今回のLTではあえて個人の利益に着眼してみました。

というのも、他の人に使えるかどうかはコントロールはできないですが、自分がその個人開発にどんなふうに取り組むかはコントロールできるので、そういうところを考えてみるのもちょっとありかなと思ってLTをしてみました。

最後に一瞬宣伝です。テストメーカーは有料版もありますが、無料でもそこそこ使えます。知り合いに学校の先生などがいたらぜひ布教や紹介をしてもらえると、とてもうれしいです。

あとは普通の宣伝ですが、私がCTOを務めているマナリンクではエンジニアを募集しています。私も含めて、個人開発で収益化しているメンバーが複数名在籍しているという、謎の特徴があります。

良かったらTwitterのDMとか、あとはカジュアル面談もよくやっているので、連絡をもらえればうれしいです。以上です。ご清聴ありがとうございました。