個人開発の静かな不具合|動いていなかった機能を発見する方法
フォームは「入口」です。
ユーザーが何かを投稿するとき、最初に触れる場所。
でもその入口に、いくつか「あと一歩」が足りていませんでした。
今日はその「あと一歩」を埋める作業をしました。
フォームのヘッダーを統一した

プロダクト、記事、質問、相談サービス——Mintorには4種類の投稿フォームがあります。
それぞれにヘッダーを付けて、入力の完成度を表示する仕組みを入れました。
ただし「完成度78%」のような数字表示はやめました。
テストの採点みたいで、プレッシャーを感じるからです。
代わりに「情報を追加すると見つけてもらいやすくなります」「いい感じです」「十分な内容です」のようなテキスト4段階にしました。
数字ではなく、やさしい言葉で「もう少し足してみませんか」と案内する。採点ではなく、ナッジ(そっと背中を押す)の設計です。
表示する場所も右上からタイトルの下に移動しました。
フォームを上から下に読んでいく流れの中で、自然に目に入る位置です。
AIに手伝ってもらう仕組み

投稿フォームにAI入力支援の仕組みも入れました。
二つのやり方を用意しています。
一つ目は、URLを入力するとAIがサイトの情報を自動で読み取ってフォームに入れてくれる方式。
二つ目は、テンプレートをコピーして、ユーザーが普段使っているAI(ChatGPTなど)に渡して、返ってきた結果をフォームに貼り付ける方式です。
二つ目の方式を入れたのは、最初の方式がうまくいかないサイトがあるからです。
特に、ページを開いた後にコンテンツを読み込むタイプのサイト(SPAと呼ばれます)は、情報を読み取れないことがある。
その時の代替手段として、ユーザー自身がAIを使って入力できるようにしました。
名前にも悩みました。
「AIで一括入力」だと、MintorにAI機能が組み込まれているように見えます。
実際はユーザー自身のAIを使う仕組みなので、「普段使っているAIに内容を考えてもらう」に変えました。
長いけれど、誤解がありません。
入力を楽にする仕組みを整えたところで、そもそもフォームの項目自体がちゃんとしているのか、気になり始めました。
設計書と現実のズレを確認した

投稿フォームの改善を始める前に、設計書に書いてある項目と、データベースの実際の構造と、画面の入力項目を全部突き合わせました。
31項目すべてを確認して、9箇所のズレを見つけて修正しました。
「たぶん合ってる」で始めるのと、「確認した」で始めるのは全然違います。 きれいな設計は、きれいな実装につながると信じています。
プロダクトのリンク管理も改善しました。
以前はGitHubのURLとデモサイトのURLしか登録できませんでしたが、note、Zenn、Qiita、YouTube、App Store、Google Play——なんでも登録できるようにしました。
URLの中身を見てApp StoreかGoogle Playかを自動判定する機能も付けました。
ページを閉じる前に聞いてくれる
すべてのフォームに「ページを離れる前の確認ダイアログ」も入れました。
入力途中でうっかりページを閉じても「保存していない変更があります」と教えてくれます。
共通の仕組みが既にあったので、各フォームへの追加は1行ずつで済みました。
統一された仕組みがあると、後から機能を足すのが本当に楽です。
ダッシュボードも整理した
フォームの改善と並行して、ダッシュボードの表示も見直しました。
応援力の表示を統計カードの中に統合し、使っていなかったウィジェットの場所を削除。
リンクのアイコン表示も一元化して、7つのファイルに散らばっていた重複コードを一つの共通ファイルにまとめました。
プロダクト詳細ページのモバイル表示も改善し、記事の読み込みを段階的にするようにしました。
一度にすべて読み込むと遅くなるので、スクロールに応じて順次表示される仕組みです。
完成度の数字をやめて、設計書とデータベースを突き合わせて、ダッシュボードのコードを一箇所にまとめて。
やっていることはばらばらなようで、全部「散らかっているものを整える」作業でした。
整えた先に、次の機能がすっと乗る土台ができている——そう思えたのが、この日の手応えです。
「採点」ではなく「応援」するということ

完成度の数字をやめた判断は、自分でもいい決断だったと思っています。
数字は残酷です。
「78%」と表示されたら、残り22%が足りないと感じてしまう。
せっかく入力してくれたのに、プレッシャーを与えてしまう。
だから「いい感じです」「十分な内容です」という言葉にしました。
採点ではなく、応援。
背中をそっと押す感覚です。
静かに壊れているもの

この日見つけた「静かなバグ」について、もう少し考えてみました。
設計書とデータベースのズレ。
画面の項目と実際の保存先のずれ。
動いているように見えて、実は意図通りに動いていない機能。
こういう「静かに壊れているもの」は、暮らしの中にもたくさんあります。
例えば、友人との関係。
表面的にはやりとりが続いていても、少しずつ温度差が生まれていることがあります。
それに気づくのは、ふと立ち止まって確認した時です。
連絡の頻度が減っていないか、返事が素っ気なくなっていないか。
日々の忙しさの中で見逃しがちなことです。
家の中でもそうです。
蛇口の水漏れ、網戸の破れ、引き出しの建付けの悪さ。
どれも致命的ではないから後回しにしてしまう。
でも、一つ直すと「あれ、こっちも」と連鎖的に気になり始めて、全部直した後の快適さに驚きます。
今日の31項目の突き合わせ作業は、まさにそういう体験でした。
一つひとつは小さなズレ。
でも全部合わせると、サービス全体の信頼性が確実に上がっていることを感じます。

