I'm a believer that the stand-up is about saving time and creating a feedback loop. If someone has something to share that most people should hear, then the stand-up is potentially the most efficient time to have this discussion. Telling people to stop talking after answering the 3 questions is going to turn the meeting into a status meeting. In my group, people use this time to also talk about lessons learned in their prior day (I screwed up and here's how you can keep from repeating my mistake...).
I have two possible solutions for this question:
- parking lot: In my last group we went around the group once and answered the 3 questions. Any tangents or questions that lasted more than a few seconds were halted by the scrum master and written down into a "parking lot" list. After everyone had taken their turn in the stand-up, the parking lot was quickly prioritized based on urgency and overlapping resources and quickly knocked out post-stand-up (or scheduled later).
- hand raising: My current group is still learning what it means to be agile and is shifting from a command and control culture towards a self-managed one. Our rule is simple... people say what needs to be said at the stand-up. If anyone in the stand-up feels that they are gaining nothing from the current thread of conversation, they slowly start to raise their hand. When the majority of people have their hand up, the minority of people still interested simply state that they will take the conversation offline and we go back to the 3 questions and working through the stand-up. If I'm the only one with my hand up, then I quickly drop it with the realization that the team finds importance in the topic and that the most efficient time to have this conversation is right now. Maybe we aren't doing a stand-up for that brief moment, but we are being adaptable (agile) in our needs.