The warning flag is the discussion mentions classes outside of the class being worked on, or, in other words 'the big picture' keeps looming up to hide the work.
So here is a behaviour pattern I'm working on:
- State the story in multiple single sentences. These are the use cases that will be used to the automated user acceptance tests (UATs).
- Now break the story in developer tasks, each a simple sentence of the form: "When ..... (set/tell) .... to .....". Smaller the better, do not be shy to have many.
- Implement each task.
- Run the UATs ... gosh it works!
The anti-patterns here are hearing talk of 'how to do it' rather than what is needed. For example 'inject object X into Y'. This stuff is how, but does not add functionality. Make the code tell you to do this.