Я бы рассматривал термин «суперпрограммист» только для тех, кто может выполнять работу, для которой обычно требуется команда хороших программистов, и делает это последовательно в течение длительного времени.
Это касается как написания качественного кода (документация, тесты и т.д.), так и решения очень сложных задач, требующих больших знаний и таланта.
Но требует высокой производительности на всех аккаунтах в течение длительного времени. Для тех, кто пишет тонны кода, который никто не может понять и поддерживать, этот термин неприменим.
Как бороться с? Если у вас действительно есть такой человек, то сделайте все возможное, чтобы обеспечить основу, необходимую для того, чтобы человек преуспел. Это означает убрать ненужные вещи с дороги и предоставить ресурсы, в которых нуждается человек. Пожалуйста, обратите внимание: я обнаружил, что очень высокие исполнители, как правило, скромны.
К сожалению, гораздо более вероятно, что у вас есть человек, который думает, что он супер программист, а на самом деле таковым не является. Способ справиться с ними, по моему опыту, заключается в том, чтобы сделать их производительность измеримой. «FindBugs может не найти проблем», «Весь код должен иметь тесты, соответствующие вариантам использования», «Экспертная проверка».
Если код действительно сложен для понимания, подумайте о еженедельных встречах, на которых не очень супер-программист объясняет любой код, код, который он написал после последней встречи, которую любой может анонимно попросить объяснить, и любой может анонимно отклонить принятие в кодовая база для того, чтобы ее нельзя было поддерживать. Тогда, по крайней мере, вы поделились своим мышлением и позволили будущим сопровождающим наложить вето на часть кода. Это также четко укажет программисту, какой тип кода заставит его выполнять дополнительную работу.
(Обновлено: причина анонимного бита состоит в том, чтобы не дать не очень супер программисту отомстить тем, кто выступает против него).
Рекомендую посмотреть эти видео для лучшего погружения в вопрос: