There are (at least) two kinds of useful experiments:
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 ...