嫌われプログラミングの代弁者

「何で頭ごなしに嫌う人間が居るのか」を色々考える

アジリティの対価 2

CAP定理のまね

CAP定理(Wikipedia 日本語版)では、

  • 分散コンピュータシステムのマシン間の情報複製に関する定理。
  • ノード間のデータ複製において、同時に次の3つの保証を提供することはできない
  • 1. 一貫性・2. 可用性・3. 分断耐性

という定理が有るそうですが、それのまねをして見ようと思います。

 

 

それは、

  • 1. インターフェース固定2. 拡張に対する解放3. 因果ダイアグラム保持

となると思います。CAP定理より、QCDF(Wikipedia 日本語版)の方が近いかも知れません。それは、

  • 1. 品質・2. 価格・3. 納期や入手性・4. 柔軟性

です。

また、CLEAN(ソフトウェア品質 Wikipedia 日本語版)というのも有るそうで、

ですが、コストを度外視していると思います。

 

 

何で「因果ダイアグラム保持」出てくるのか?

因果ダイアグラムを保持しないと、いくらでも下請けから絞れるからです。QCDFの

  • 2. 価格

に相当すると思います。

  • 要求の変更はたとえ開発の後期であっても歓迎します。
    変化を味方につけることによって、お客様の競争力を引き上げます。

という特性は、「因果ダイアグラム保持」の否定により成立し、それにより、

  • 1. インターフェース固定
  • 2. 拡張に対する解放

の両方を満たす事が可能になります。定額で、いくらでも働かせる事が出来るかです。

 

 

インターフェース固定と、拡張に対する解放は対立するのか?

すると思います。インターフェースを固定してこそ、

  • ずっと使える自動テスト

が書けるので有り、拡張にたいする解放は、それを書く事の否定です。

モダンな考え方の中にも、すくみが内在されていた訳です。

逆に、anyの多用を許容する場面では、ずっと使える自動テストは書けないと思います。

 

 

結論

これからも「アジリティの対価」が十分で無い事で、プログラミングが嫌いになる人は存在し続けることでしょう。