二分探索を過信してはいけない(こともある)(と思う)

  • 投稿日:
  • by



gitのbisectはあくまでも無数のパッチに対する防御策のひとつであって、二分探索マンセーの具体例のように語ってはいけないと思います。


例えば、二分探索は1つの現象に対する1つの原因を絞り込むわけですが、2つ以上の原因が1つの現象を生んでいる場合も多々あるわけです。


たとえば複数人で開発していると依存関係のあるモジュールの担当者間で、



せ~の

と実装を修正することがしょっちゅうあります。一人でちょこっと直して他のモジュールに影響なし、なんて実装の方がめずらしい気すらします


あとでバグが発覚したとして、もし片方だけパッチをまき戻したりしたら別のバグが発生するでしょう。そりゃ大変です。




あるいは無関係の(はずの)2つの修正が複合してバグを生むこともあるでしょう。それらに時差がある場合、後の方の修正だけが取り除かれて、いわゆる隠れたバグが残ることになります。



上に2つ挙げた例は、それぞれ巻き戻し時に慎重にアセスメントすれば問題ないのでしょうが、体制によっては頻度が高いと思うのです。頻度が高いと慎重さが抜け落ちます。



とまぁ大規模開発の経験なんて皆無のくせに偉そうなこと書いてみました。