変わらないことの大切さ

ひがやすをblogの「アジャイルなフレームワーク開発」を読んだ。

ひがさんの言うことは大筋同意できる。それに加えて僕が大切に思っていること。それは後方互換性。

ある時点で、未来を予想し方針を立てたとします。もちろんその方針を立てた根拠はあるはずです。それから時間が過ぎたある時点で、根拠が間違っていると思ったら、素直に間違いを認めて、方針を変えたほうがいい。

根拠も無しに方針を変えるのは、失敗する典型だと思いますが、状況の変化に対応して、方針を変えるのは間違ったことではないと思っています。

方針を変える柔軟性や、間違いを認める勇気は大事。ただ、既にユーザがいるフレームワークであれば、今まで動いていたものが動かなくなったり、挙動が変わってしまったりするのは大問題。なので、方針が変わっても、今まで動いていたものは基本的に同じように動くように細心の注意を払いたい。

たとえ今までの挙動がバグによる「仕様に沿っていない」挙動であったとしても、今までそういう挙動をしていたのであればそれは(よほどひどい挙動でない限り)残すべき。少なくとも、今までどおりの挙動をするモードも設けるべき。

変わることも大切。でも、変わらないことも同じくらい大切。

それがフレームワーク開発者としての義務なのじゃないかなぁ、と最近は強く感じます。