設計と道路

未熟ながらお仕事でモバイルアプリケーションの設計を考えさせてもらって、チームと議論してるときに「ガードレール」という言葉を好んで使っている。 交通量が少ない道ならあまりガードレールが無いだろうし、アスファルト舗装してるだけかもしれないし、センターラインも無いところもある 。 逆に交通量が多い道はガードレールがしっかり設置されているだろうし、道も大きくなっているだろうし、センターラインもしっかり引いて、交通標識もたくさんある。

交通量はモバイルアプリケーションだと開発するエンジニアの数で、エンジニアの数に比例して、設計によるガードレールや交通標識を増やしていかないとエンジニアの人たちが迷ってしまったり、衝突してしっまったりするかもしれない。 エンジニアの数以外にもサービスのフェーズにもよるだろうな。PMFするかどうかわからない検証しながらのサービスに対して、ガチガチのガードレールを敷いて設計でProductを作っていてはスピーディーな仮説と検証ができないかもしれない。 あとは、サービスの性質も関連するかもしれない。人の命やお金に関わるサービスの場合、できるだけ堅牢な設計にして不具合ができるだけ混入しない、混入しても迅速に対処できるようにしておかないといけないと思う。 道路で例えるなら普段の生活で使う道と迅速に遠くの目的地に着くための高速道路では構造も違うし、法定速度も違う。

私はDDDが好きだけど、DDDを完全にプロジェクトに適用させるのが正義とも思わない。 肝心なのはプロダクトが以下にユーザに早く届けて、ユーザが持っているイシューを解決するか。 現状の環境(エンジニアの数とかレベル感とか)でどういう設計が適切か?が大事なんだと思う。

そんなわけで、毎日チームメンバーと「どんな道で走りたい?」と話し合いをする日々です。