わざと雑に作る
日本に暮らしていて、海外旅行に行くたびに、交通インフラの雑さに驚く。
ここ4日間行っていたサンフランシスコも結構雑だった。
バスを例に取ると、、
- 基本時間通りにこないことがおおい。数分ずれたりは結構普通。
- チケットは乗るときに見せたりするけど、期限切れていたり、老人用のパスとかを見せても余裕で乗れる。
- 後方の入り口(運転手がチェックしない)からでも普通に乗れる。
日本だと、チケットを買って、しっかり機械でチェックしてOKにならんと乗れない。
こうなると、ちゃんとお金もらわないでやっていけるのか?とおもうけど、
一応まわっているみたい。
なんでかというと、たまに抜き打ちでバスに警察が乗ってきて
抜き打ちチェックする。
チェックでダメだと、罰金のペナルティーがある。
実際、その抜き打ちを受けているところを見たけど、
1〜5%位の人がひっかかってた。
ここで考えるべきは、
1. 99.9%お金を徴収するために、完全なシステム化するコスト(もしくは定刻発車にするコスト)
2. 95%お金を徴収するために、ざっくりシステム化するコスト(もしくはすこし遅れて発車にするコスト)
である。
で、日本だと結構1のパターンで考えて行くことが多い。
2の方がトータルお得な場合でも、1となる場合が多い。
システム化するときも、無条件に1の思考パターンになってしまう人が多い気がする。
複雑な仕様を実現するために、
if,if,if!なプログラムを作っていることがおおい。
結果的に、ifばっかりだと、バグりやすくて結果コスト高になる(循環的複雑度が高い)のに!
コストを考えて雑に作るのは全然ありだとおもう。
つまり、この条件反射的な仕様の考え方は、
自分も結構しみついているので、
トレーニングしていきたいです。