は、あなたがメソッドの実装を必要とするユーザーストーリー1持っている想像してみて:アジャイルシナリオ、これは正しいですか?
public static void MyMethod(string paramA);
いくつかのクラスをこのメソッドを使用して、そしてMyMethodは、ユーザーストーリー1が、より多くの何を完了するために必要なすべてを行います。
あなたはまた別の話(ユーザーストーリー2)反復将来的になるための方法が必要になります、それに沿って来ることをかなり確信している:MyMethodはへ
public static void MyMethod(string paramA, int paramB);
以前の呼び出しにリファクタリングする必要がありますし、 MyMethodはにはいくつかの新しいコールは、ユーザストーリー2の要件を満たすために追加する必要があります(それが唯一のparamAでMyMethodはを呼び出すことは理にかなっていたことがない物語2の後に注意してください)。
ユーザーストーリー1について作業するにアジャイルの考え方です:のみ実装
1)します。public void MyMethodは(文字列paramAを)。
2)を実装します。public void MyMethodは(文字列paramA、int型のparamBを)。 - しかし、今は2番目のパラメータで何もしないでください。この時点で、呼び出しは2番目のパラメータに0を渡します。
3)を実装します。public void MyMethodは(文字列paramA、int型のparamBを)。 - しかし、今は2番目のパラメータで何もしないでください。コールは正しい値で渡されます(ユーザストーリー2の期待通り)
4)実装:public void MyMethod(string paramA、int paramB); - そしてすべての呼び出しは完全にユーザーストーリー1と2をカバーするため
私はあなたがたくさん答えるのが好きです。私が言っている唯一のことは、S1はインターテーション1に、S2はイテレーション2にあるということです。私は、各繰り返しの終わりに常に出荷可能な製品を持っているべきだと考えます。今すぐ:1回の反復後に、プロダクトを出荷することはビジネスにとって喜んではありませんが、確かに品質保証に行き、十分にテストすることができます。それで、効率を目指して、今やっていますか?(要件やデザインが変わると間違ってしまう可能性が少しあります)、または反復1に必要なものだけを実行しますか? –
また、繰り返し1では何か「間違っている」ことを信じていません。ストーリー2が登場したときに完全に再設計されなければならないものを実装することには意味がありません。何が起こっているのか分かっていれば、それは狂っているだろう。しかし、S1で余分な距離を行って、S2が来るときに最小限の作業をする必要がありますか?あるいは、「予測は非常に困難であり、特に未来について」ということも知っています。 - Niels Bohr(デンマークの物理学者) –
私は、S1で使用されていないメソッドにパラメータを追加して、unshipableな製品を作成することは考慮しません。不必要に肥大化しているかもしれませんが、確かに機能しています。発送可能とは、完了したことを意味します。テストされ、文書化され、ビルド可能であり、インストール可能である。 – DancesWithBamboo