共通化の目的見誤り
エンジニア特有?の認知バイアスの可能性があるので分析してみる 世の中、似たような物をありとあらゆる人が作っている
account system, UGC platform, collaborative editing, SNS, distribution, EC, ...
--> 共通化する余地があるんじゃ無いの? / 共通化されることで無駄がなくなってよい
これを自明だと思ってたが、冷静に考えると全然自明では無い
いっぱいある = 作るのが十分簡単 -> さらなる共通化は望まれてない可能性が高い
淘汰されないということは、細かい差異・ニッチがあって甲乙つかないということだ
作るのが簡単になれば、さらに細かい差異のある物が生まれ、共通化とは逆行しうる
共通化したい~と言ってるときに実際にしたいのは、
統制したい~
相互運用したい~
ということでは?
真に共通化されるべきなのは、「いっぱいあるべきだけど、いっぱいないもの」に共通する困難な要素
これがいわゆる「民主化」というやつかもしれない
実際、こういうシステムを作ってるとき、細部にすごく特有の事情がビジネスロジックとして埋め込まれることを感じるはずだ
それが本質的なブランド・文化的アイデンティティの体現であったり、価値を生み出している
それを誤っていると思った場合(実際誤りは多いだろう)、やるべきなのは共通化では無く、
思想や法のレベルで「何があるべき姿か」を浸透させることだ
そのメディアとしてライブラリを使うことはできるかもしれないが、多くの場合そうでは無い
なぜならこういう仕様の差は基本的に経営レベルの意志決定や組織文化に根ざす物で、
多少(なんなら数倍でも)の実装工数の差でひっくり返ることは無いからだ
たとえばデータの地域分散という設計パターンを浸透させるのに効果的なのはデータプライバシー概念とGDPRのような法だ