Если у него есть задание и вы застаете его за просмотром сайтов не относящихся к заданию, нужно просто сделать замечание. А лучше всего спросить «Почему ты сидишь на сайте знакомств, а не работаешь над заданием?». Это будет очень неудобным вопросом. Хотя, к каждому человеку нужен свой подход, конечно.
Лично я считаю, что эффетивное время работы программиста даже меньше 6 часов — часов 5 примерно. Больше — начинаются детские ошибки. Обычно когда за собой замечаю, что не могу эффективно решать сложную задачу под конец дня, переключаюсь на более простую — нет смысла насиловать себя концентрацией внимания. Более сложную я смогу начать реализовывать сразу на следующий день. Учитывайте это.
Ну еще лично у меня бывает такое, что работа просто «не идет». Уж не знаю, с чем это связано, но порой работать настолько в тяжесть, что лучше заняться чем то более полезным, чем наляпать ошибок в такой день. Обычно я решаю это чтением тематических материалов — от этого польза весьма ощутимая — повышение знаний (квалификации). Вы ведь не оплачиваете программисту повышение квалификации?
Хотя сидеть на работе на сайтах знакомств… я думал, это только для девушек :)