3 ms·
I have a somewhat formal process for this, which I teach to developers I'm mentoring: First, you build a feature for the requirements you know you have, with s
by DougWebb 11y ago
I have a somewhat formal process for this, which I teach to developers I'm mentoring:
First, you build a feature for the requirements you know you have, with support (possibly stubs) for the requirements you know you're going to have in the next version.
When it's time to implement the second version, you refactor as-needed to support the new requirements you have, with support for the requirements you know you're going to have in the third version.
Do the same refactoring and support approach when you implement the third version.
By the time you get to the fourth version, you'll generally find that you've already built all of the extensibility you're going to need, and you'll just be using that rather than refactoring anything.
I like this process because minimal effort is put into implementing any requirements you don't need yet, while taking into account future requirements you know about so that you don't build something that makes the future requirements very difficult to implement.