コラム

「夫婦専用」をやめたとき、コードのどこを直すことになったか

公開日 2026/7/21
設計の話失敗談

ふたかけはもともと「夫婦2人で使う家計簿」として作り始めた。自分たち夫婦が使うために作ったので、それが自然だった。

一般に公開するにあたって、この前提を外した。今は1人でも、未婚のカップルでも、同性のパートナーでも、同じように使えるようにしてある。

外してみて分かったのは、前提というのはコードの1箇所に書いてあるわけではないということだった。その記録を書いておく。

きっかけは、矛盾した2つの決定だった

公開版の仕様を詰めていた時期に、2日違いで次の2つを決めていた。

  • ある日:夫婦ロールは現状維持。「夫婦専用アプリ」と割り切る
  • その翌日:パートナーが未参加でも全機能を使える。1人利用を正式にサポートする

後者が前者を実質的に上書きしているのだが、そのことに誰も気づかないまま実装が進んだ。決定の記録は残っているのに、前の決定を取り消す作業をしなかったせいだ。

結果どうなったか。

「1人でも始められます」と書いた登録画面の、真上に夫婦のアバターが並んでいた。 登録直後の最初の設問が「あなたは夫ですか、妻ですか」の二択だった。

一人で使おうとした人が最初に見る画面がこれである。文言では歓迎しておいて、UI では「あなたは想定の利用者ではない」と言っている状態だった。

前提はどこに埋まっていたか

外す作業に入って、「夫婦」がどこに書かれているかを探した。出てきた場所はおおよそ次のとおりだった。

文言。 これは分かりやすい。「夫婦2人専用」「夫の手取り」「夫婦合算」。文字を置き換えれば済む。

二択の設問。 「夫か妻か」を選ばせている箇所。これは選択肢を消して自由入力にした。

アバターの色。 ここが厄介だった。「夫なら青、妻なら赤」という決め方が、3つの画面にそれぞれ手書きされていた。役割で色を決めている限り、役割を無くすと色も決まらない。

分母のラベル。 耐性メーターの説明文に「夫の手取り比」と直接書かれていた箇所があった。

一番効いた修正は、色の決め方を変えたこと

アバターの色は、役割ではなく世帯内の並び順で決めるように変えた。1人目はこの色、2人目はこの色、という単純な規則だ。

これで「夫」「妻」を選ばなくても色が決まる。役割を書いていない人も、猫の名前を役割欄に入れた人も、同じように表示される。

同時に、3箇所に散らばっていた決定ロジックを1つの関数にまとめた。今後メンバーを表示する画面を増やしても、そこを呼ぶ限り表示は揃う。

前提を外す作業をしていると、同じ判断が複数の場所に手書きされていることが必ず見つかる。前提があるうちは「夫は青」で全部通じるので、重複していても困らない。前提を外した瞬間に、その重複が全部バグになる。

「夫」「妻」を禁止したわけではない

誤解されやすいので書いておくと、この語を使えなくしたわけではない

役割は自由に書ける欄になっていて、「夫」と書きたい人は書ける。書けば表示される。選ばされるのをやめただけで、選びたい人の選択肢は残っている。

同時に決めたのは、役割に機能を依存させないことだ。役割欄は表示のためだけにあって、集計にも権限にも一切影響しない。ここを一度でも崩すと、「役割を空欄にすると動かない機能がある」という形で前提が復活する。

名前は変えなかった

一方で、「片働き耐性メーター」という名前はそのままにした。

「片働き」は夫婦を前提にした語に聞こえるが、この指標が測っているのは「支出を、ひとりぶんの収入で割る」という計算そのものだ。1人で使っている人にとっても「自分の収入だけで暮らせているか」という意味で普通に成立する。

用語を機械的に中立化しにいくと、測っているものを指す名前まで曖昧になる。ここは踏みとどまるべき線だと判断した。

世帯は2人までのまま

もうひとつ変えなかったのが、世帯の上限は2人という制約だ。

3人以上を許すと、「誰の収入を分母にするか」も「誰が払ったか」も一気に複雑になる。ふたかけは「ふたりで同じ画面を見る」ことに寄せたアプリなので、ここを広げると別のアプリになる。

前提を外す作業では、外すものと守るものを最初に分けておかないと、なし崩しに全部を一般化してしまう。「夫婦であること」は外し、「2人であること」は守る、という線を先に引いたのがよかったと思っている。

確かめ方も決めた

作業の最後に、「夫婦」という語がコードから消えたかを機械的に確認できるようにした。

ただしここで一度失敗している。アプリのコードだけを検索して「0件、完了」としたのだが、アプリの外にあるファイルが検索対象から漏れていた。具体的には、スマホにインストールしたときのアプリ説明文が古い文言のまま残っていた。

検索して0件だったときは、検索した範囲が正しかったかを疑うべきだった。これは今も自分への戒めとして覚えている。

広告

関連記事