Best way to get programmers to ask for help when they get stuck

efficiencypair-programmingproblem solving

What is the best way to ensure that programmers ask for help when they get stuck on a problem, rather than spending too much time trying to figure something out when they've hit a wall?

I'm especially interested in how to optimize this with a distributed team.

Some ideas that come to mind:

  • pair programming
  • co-locating the team
  • timeboxes (after expiration, must ask for help)

Things (goals) to think about:

  • avoid developing dependence on others
  • maximize learning & knowledge transfer
  • cost of developer A's time to help vs. developer B's time to figure it out him/herself

There is also the concern that even if a developer comes up with a solution, it may be of lower quality than if they had asked for help. I believe code reviews are a good way to address this.

This question: When do you not give help to less experienced programmers? is good background reading for this one.

Best Answer

Daily scrum meeting.

Works wonders. And you have to do it anyway. More than a day stuck is a serious obstacle that must be addressed.

[BTW: "avoid developing dependence on others" is a terrible objective. Why bother? Also "cost of developer A's time to help vs. developer B's time" is a false optimization.]