Establish the outside behaviour.
Begin with what the user-facing boundary is actually doing, not what the internal configuration says it should be doing.
Begin with what the user-facing boundary is actually doing, not what the internal configuration says it should be doing.
Work inward one boundary at a time until the behaviour changes.
Small changes make cause and effect easier to distinguish.
Internal success is not enough until the public behaviour matches the intended result.