A core principle of Lean Development is that value should be
pulled into existence from demand, rather than pushed from
implementation: “The effect of ‘pull’ is that production is not
based on forecast; commitment is delayed until demand is present
to indicate what the customer really wants.”
Read great article about TDD, Mock Objects and Need-Driven Development in ThoughtWorks document.