Experiment In And Out Of Context

There are (at least) two kinds of useful experiments:

Out Of Context
Using trivial objects like arrays and dictionaries, implement what you are thinking about, just to get the feel of how it might work. This will lead to how it should work.
In Context
Now try an experiment inside your real system. Don't work for beauty, precision, efficiency. You're still trying to learn how it might be done.

Don't be afraid to do it multiple times. Plan to throw it all away. Relish the joy of doing good work and throwing it away, knowing that the next time you type it in it will be even better.


And then there is the merged strategy.. using trivial objects in your system to implement what you are thinking about to the point that you've achieved the functionality that you want. Then ReFactor until the elegant solution exists in parallel with the kludge. Then dismantle the kludge. (Ward calls this process ArchitecturalSubstitution.) The only downside here is that you have to do CruftBudgeting. -- MichaelFeathers

Of course in the real system you always DoTheSimplestThingThatCouldPossiblyWork, and that includes using the simplest objects ...


EditText of this page (last edited September 18, 2014) or FindPage with title or text search