Why discussions about your code must live with your code
The established process for software development in a team setting is a variation on this:
Get together in the beginning of the week and lay out the sprint.
Get your work done without becoming an annoyance to your team members.
Get together at the end of the week after you commit your code and hope it’s good enough.
The work gets done. Rinse. Repeat.
So we posit a hypothesis: Developers don’t ask enough questions and don’t communicate nearly enough about code. As a result, they don’t consult early enough with their team members and commit sub-optimal code.