You Have To Call `configure()` First

Decide what you would do from the brief alone, including whether you would change anything at all. Everything below it is available, but the exercise stops working if you open it first.

The brief you were given

A new engineer's integration test fails with a null dereference inside a client library that "works fine in production". The object requires configure(), then connect(), then start(), in that order. Nothing says so.

The trap — the fix that looks like good design and is not

Adding if (!this.started) throw new Error('call start() first') to each public method. The failure now has an excellent message, the new engineer is unblocked in ten minutes, and error messages that name the fix are a genuine good. The object still has a state in which most of its methods are illegal; the guard has to be remembered on every method added later; and the check runs in the caller's environment, which for the rare path that survives review means production. Turning a null dereference into a clear exception improves the diagnosis of a design that still permits the mistake, and it removes the pressure that would have led to fixing it.

Read this even if you are confident. It is here rather than behind a button because it is the answer most teams actually ship, it passes review, and the cost of it does not arrive until the change after this one.