HN 日本語サマリー

← 一覧へ戻る
オープンソース

Monicaを再構築しています

We Are Rebuilding Monica (monicahq.com)

55 pointsby robinhood31 コメント

要約

オープンソースの個人向けCRMであるMonicaは、創設者レジス・フレイド氏によってゼロから再構築されることになりました。この新しいバージョン(v3)では、過去10年間の経験に基づき、人間関係の表現方法やカスタマイズ性など、根本的な設計思想が見直されます。プライバシーとデータ所有権は引き続き重視され、オープンソースかつセルフホスト可能なままで開発が進められます。

全文翻訳

記事に戻る Monicaを再構築しています Monicaを再構築しています Monicaをゼロから再構築します。この新しいシリーズでは、その方法を記録していきます。 RF レジス・フレイド 創設者 コピーリンク これは「Building Monica」というタイトルのシリーズの最初の記事です。このシリーズでは、オープンソースの個人向けCRMであるMonicaをゼロから再構築するプロセスを記録していきたいと考えています。解決しようとしている問題、その過程で下される決定、そしておそらく期待通りにいかないであろういくつかのことについて話します。 ほぼ10年前、私は人々のことを覚えるのが非常に苦手だったので、Monicaの構築を開始しました。私は、子供の名前、最後に会った時に何を話したか、あるいは数ヶ月前に教えてもらった重要なことを忘れてしまうことがありました。これらのことを書き留めておく場所が欲しかったのです。主に私の記憶力の悪さを補うために、プロフェッショナルCRMを使い始めました。それは素晴らしい解決策ではありませんでした。そのソフトウェアはセールスマン向けに作られていましたが、私はセールスマンではなく、友人や家族のことを覚えるためだけにツールにお金を払いたくありませんでした。より適切なものを探しましたが、見つからなかったので、自分で作ることにしました。その小さなプロジェクトが、やがてMonicaになりました。コードをGitHubに公開し、Hacker Newsに投稿したところ、状況は少しクレイジーになりました。私だけがこのようなものを探していたわけではないことが判明しました。アレクシスが共同創設者として私に加わり、長年にわたり何千人もの人々がMonicaを使用し、コードに貢献し、翻訳し、バグを報告し、自分のサーバーにインストールしました。このプロジェクトは現在、GitHubで25,000以上のスターを獲得しており、最もよく知られたオープンソースの個人向けCRMの1つとなっています。Monicaが成し遂げたことを非常に誇りに思っています。しかし、長年取り組んできた結果、現在のバージョンは、私が今日構築するであろう個人向けCRMではなくなってしまいました。 ほぼ10年の決定 Monicaを始めたとき、明らかに、ソフトウェアで人間関係を表現する方法について10年間考えてきた経験はありませんでした。ほとんどの決定は、問題が発生したときに下されました。連絡先が必要だったので、連絡先を構築しました。人間関係が必要だったので、人間関係を追加しました。次にリマインダー、アクティビティ、ギフト、メモ、ペット、住所、その他多くの機能が追加されました。このようにソフトウェアを構築することに特に問題はありません。Monicaが成長してきた方法であり、当時の多くの決定は理にかなっていました。しかし、ほぼ10年後、それらは蓄積されます。新しいアイデアは、数年前に下された決定の周りで機能しなければならず、かつては実装の詳細のように見えたものが、ゆっくりと製品でできることの制約となっていきます。時間が経つにつれて、Monicaの一部を変更することが、本来よりも困難になりました。さらに重要なのは、元の決定のいくつかについて私の考えが変わったことです。 今日なら何を作るか? ある時点で、私は自分自身に単純な質問を投げかけるようになりました。「もしMonicaが存在しなかったら、そして私が過去10年間に学んだすべてを使って今日個人向けCRMを構築しなければならなかったとしたら、それはどのようなものになるだろうか?」これはすぐに、Monicaがどのような機能を持つべきかというよりも、はるかに基本的な質問につながりました。Monicaにおける「人」とは正確には何でしょうか?人々の間の関係はどのように機能すべきでしょうか?Monicaはユーザー自身をどのように表現すべきでしょうか?誰かの人生における重要なものが、他の人ではなく、動物、組織、あるいは全く別の何かであった場合、何が起こるでしょうか?人間関係が自然にスケジュールに従わない場合、リマインダーはどのように機能すべきでしょうか?アクティビティは何を表すべきでしょうか?そして、これらのうちのどれだけをMonicaが最初に定義すべきでしょうか? 人間関係は良い例です。Monicaがロス(Ross)の姉妹であることを保存することは、それほど複雑ではないように思えます。しかし、Monicaがロスの姉妹であれば、ロスもMonicaの兄弟です。親の関係は子の関係を意味します。一部の関係には方向性がありますが、そうでないものもあります。実際の家族には、離婚、再婚、継子、異母・異父兄弟、養子縁組、そして定義済みのリストにはうまく収まらないあらゆる種類の構造が含まれます。異なる文化も家族関係を異なる方法で記述します。私は新しいバージョンについてこのことについて多くの時間を費やして考えてきました。そして今、私は人間関係を、連絡先に追加される属性ではなく、それ自体が独立した領域として見ています。それは今では私にとって明白です。Monicaの最初のバージョンを設計したときには、それは明白ではありませんでした。 カスタマイズ性も、私の考えが変わったもう一つの分野です。歴史的に、Monicaは主に連絡先とは何か、そしてそれについてどのような情報を保存できるかを定義しており、私たちはその構造の周りにカスタマイズを追加してきました。v3では、これを逆転させたいと考えています。Monicaは依然として優れたデフォルトを提供します。誰も最初の連絡先を追加する前に50個の設定を構成したくないからです。しかし、あなたの人生は、私たちが皆にとって正しいと判断したデータベーススキーマに合わせる必要はありません。そのレベルで物事を変更し始めると、数画面の再設計だけでは不十分です。基盤も変更する必要があります。 v3にしたいこと Monica v3は、現在の製品にきれいなインターフェースを追加するだけのものではありません。インターフェースは大幅に変更され、今日私たちが使用するほとんどのソフトウェアよりもはるかに遊び心があり、個人的なものになることを望んでいます。しかし、それは仕事の一部にすぎません。私は、ある人の人生における人々や人間関係を文書化するための非常に強力なシステムを構築したいと考えています。単純な人生しか表現できない製品の結果になるのであれば、すべてを単純さのために最適化することにはあまり興味がありません。何も構成したくない人には良いデフォルトを提供し、構成したい人にはMonicaの動作方法について膨大な制御権を与えたいと考えています。これは、人間関係を第一級の概念として扱い、人々が自分にとって重要な情報を決定できるようにすることを意味します。Monicaは、連絡先に追加された定義済みのフィールドリストよりもはるかに多くのものを処理する必要があります。難しい部分は、すべてを、友人や家族を管理するためのエンタープライズソフトウェアに行き着くことなく行うことです。なぜなら、それはかなりひどいことになるからです。 また、変更したくないこともあります。プライバシーとデータ所有権は、Monicaにとって依然として非常に重要です。このプロジェクトは、オープンソースでセルフホスト可能であり続けます。もしあなたが人生で最も個人的な情報のいくつかをソフトウェアに何年もかけて入力するのであれば、その情報に対して可能な限り多くの制御権を持つべきだと私は思います。また、Monicaに誰かがあなたにとってどれほど重要かを決定させたくありません。それはあなたが物事を覚えるのを助け、情報を整理し、しばらく誰とも話していないことを知らせてくれるかもしれません。人間関係そのものは、依然としてあなたが維持するものです。 10年の経験を元に再出発 「再出発」というのは、もちろん完全に正確ではありません。2017年にMonicaを作成したとき、私はアイデアと解決したい問題を持っていました。今回は、その問題に取り組んできたほぼ10年の経験、ユーザーとの何千もの会話、世界中の人々からの貢献、製品の2世代、そして同じことを二度としないであろうことのかなり長いリストがあります。v3に取り組むにあたり、この多くを公に記録していきたいと考えています。一見単純に見えることの背後には、驚くほど多くの難しい問題があります。特に、人間関係、リマインダー、カスタマイズ性、そして人間のような複雑なものをデータベースでどのように表現するかを真剣に考え始めると、そのようになります。それらの問題について書きますが、私たちが下している技術的および設計上の決定、そして私たちが試してうまくいかなかったことについても書きます。それが「Building Monica」の内容になります。記事をどれくらいの頻度で公開するかは分かりませんし、単に公開するためだけに公開スケジュールをinventしたくもありません。興味深い話題があるときに書きます。2017年、私は当時の問題に対する理解に基づいてMonicaを構築しました。ほぼ10年後、私はその問題を非常に異なった方法で理解しています。だからこそ、私たちはそれを再構築しているのです。