Re[5]: Как объяснить программеру, что он пишет говнокод?
От: mike_rs Россия  
Дата: 25.09.09 07:45
Оценка: +1
MM>>* желание и умение учиться
MM>>(проверяется по школьным и вузовским данным — необходимо наличие одного из следующих пунктов — золотая/серебряная медаль, математическая спецшкола, красный диплом)

X>вот и неправда )

X>обычно красные дипломы имеют зубрилы, соображать не обученные (например девки с первых рядов парт пишушие лекции разноцветными ручками)

тебя обидели девки с первых парт ? Забрали твой красный диплом, пока ты пил пиво во дворе универа ?
ps: цвет лекций к цвету диплома не имеет абсолютно никакого отношения в нормальных вузах.
Re[4]: Как объяснить программеру, что он пишет говнокод?
От: Andrey.dm  
Дата: 25.09.09 08:07
Оценка:
Здравствуйте, bkat, Вы писали:

B>Здравствуйте, Andrey.dm, Вы писали:


SE>>>А имеет смысл тратить силы и время и переучивать? Умный человек воспринимает свою работу всегда со здравым критицизмом.


AD>>Да, если при этом прокачиваешь и свои скилы, лидерские, например, и т.п.


B>Т.е. этот программер нужен для самоутверждения?

B>Ну тогда его реакция объяснима.
B>Возможно проблема не только в том, что он неадекватно(?) реагирует на критику,
B>но и в том, что ты прокачиваешь свои лидерские скилы.
B>Ему похоже просто не повезло...

Хмм... А может быть именно самоутвердиться ему и нужно...
Я как раз таки себя адекватно оцениваю, по этому и обучаюсь и не вижу в этом ничего плохого...
Re[5]: Как объяснить программеру, что он пишет говнокод?
От: nvb Россия  
Дата: 25.09.09 09:56
Оценка: 10 (1) +4
Здравствуйте, Andrey.dm, Вы писали:

SE>>>>А имеет смысл тратить силы и время и переучивать? Умный человек воспринимает свою работу всегда со здравым критицизмом.


AD>>>Да, если при этом прокачиваешь и свои скилы, лидерские, например, и т.п.


B>>Т.е. этот программер нужен для самоутверждения?

B>>Ну тогда его реакция объяснима.
B>>Возможно проблема не только в том, что он неадекватно(?) реагирует на критику,
B>>но и в том, что ты прокачиваешь свои лидерские скилы.
B>>Ему похоже просто не повезло...

AD>Хмм... А может быть именно самоутвердиться ему и нужно...

AD>Я как раз таки себя адекватно оцениваю, по этому и обучаюсь и не вижу в этом ничего плохого...

К вам, руководителю, в проект пришел человек, который, по вашему ощущению, долго в компании не задержится и подчиняться принятым в компании стандартам не хочет. Все, этого более чем достаточно, чтобы его из проекта убрать.

Не надо тратить на него время и силы, вы не в Армии спасения работаете. Вот если бы он в проекте хотя бы полгода пробыл, а вы пришли на это проект извне со своим уставом — тогда дело совсем другое. Тогда он обладает ценными для проекта и организации знаниями, тогда стоит потратить время и усилия на притирку друг к другу. Но в вашей ситуации — вы при его увольнении ничего, кроме головной боли, не потеряете. Оговорите только с отделом кадров парашют — скажем, двух-трехнедельный оклад, поскольку вина организации в его приеме есть и организация должна нести за это ответственность.

Если стесняетесь прямо подойти и сказать, что вы хотите с ним расстаться — сделайте непрямо. Скажем, берете код, пишете замечания и возвращаете на доработку. Никакого личного общения, только комменты по коду, можно ссылки на учебники присовокупить. На десятой итерации даже до самого упертого дойдет, что либо ему пора уходить, либо меняться.
Re: Как объяснить программеру, что он пишет говнокод?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 25.09.09 10:53
Оценка: 1 (1) +3 -2
Здравствуйте, Andrey.dm, Вы писали:

AD>Взяли программера. Пишет говнокод и медленно. Любые попытки деликатно объяснить ему, что это не совсем верно и можно и нужно писать лучше, воспринимает в штыки, при этом отстаивая свой говнокод и его "правильность". Скилы у него слабенькие (продолбали на собеседовании), но о себе он в разы более высокого мнения, я бы даже сказал в большие разы. Пока на испытательном сроке и по понятным причинам скорее всего его не пройдет, но раз уж такая ситуация сложилась, хотелось бы все же узнать, как наиболее правильно переучить его, как объяснить, что то, что он пишет ну совсем никуда не годится и надо бы по-другому. Деликатно, естественно...


Подойти и сказать: "Братан, твой код — говно".

А вот чтобы исправить ситуцию, то стоит сделать следующее
0)Настроить систему автосборки, bug\issue-трекер интегрированный с сорсконтролом и системой сборки
1)Настроить утилиты статического анализа кода и интегрировать их в билд-систему, чтобы при нарушении coding-style сборка ломалась, заставить индивида исправить все ошибки
2)Заставить писать тесты на код, посмотреть на покрытие кода тестами для этого индивида, показать ему самому
3)Провести пару раз ревью его кода, чтобы группа опытных программистов рассказала про все ошибки
4)Подкинуть ему несколько умных книжек\статей
Re[2]: Как объяснить программеру, что он пишет говнокод?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 25.09.09 10:58
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>А вот чтобы исправить ситуцию, то стоит сделать следующее

G>0)Настроить систему автосборки, bug\issue-трекер интегрированный с сорсконтролом и системой сборки
G>1)Настроить утилиты статического анализа кода и интегрировать их в билд-систему, чтобы при нарушении coding-style сборка ломалась, заставить индивида исправить все ошибки
G>2)Заставить писать тесты на код, посмотреть на покрытие кода тестами для этого индивида, показать ему самому
G>3)Провести пару раз ревью его кода, чтобы группа опытных программистов рассказала про все ошибки
G>4)Подкинуть ему несколько умных книжек\статей

И забыл последнее:
5)собрать статистику по закрытым фичам и внесенным багам в единицу времени, показать ему что они очень медленно работает.
Re[2]: Как объяснить программеру, что он пишет говнокод?
От: Ziaw Россия  
Дата: 25.09.09 11:00
Оценка: +1 -1
Здравствуйте, gandjustas, Вы писали:

Вобщем все верно, но:

G>1)Настроить утилиты статического анализа кода и интегрировать их в билд-систему, чтобы при нарушении coding-style сборка ломалась, заставить индивида исправить все ошибки

Перед этим придется проделать нехилую работу по настройке и причеусыванию текущего кода.
G>2)Заставить писать тесты на код, посмотреть на покрытие кода тестами для этого индивида, показать ему самому
Перед этим придется добиться идеального покрытия.
G>3)Провести пару раз ревью его кода, чтобы группа опытных программистов рассказала про все ошибки
Как раз с этим и проблемы у топикстартера, не могут они нормально объяснить почему этот код является говнокодом.
... << RSDN@Home 1.2.0 alpha 4 rev. 1237>>
Re: Как объяснить программеру, что он пишет говнокод?
От: Lloyd Россия  
Дата: 25.09.09 11:01
Оценка: +4 -1
Здравствуйте, Andrey.dm, Вы писали:

AD>Взяли программера. Пишет говнокод и медленно. Любые попытки деликатно объяснить ему, что это не совсем верно и можно и нужно писать лучше, воспринимает в штыки, при этом отстаивая свой говнокод и его "правильность". Скилы у него слабенькие (продолбали на собеседовании), но о себе он в разы более высокого мнения, я бы даже сказал в большие разы. Пока на испытательном сроке и по понятным причинам скорее всего его не пройдет, но раз уж такая ситуация сложилась, хотелось бы все же узнать, как наиболее правильно переучить его, как объяснить, что то, что он пишет ну совсем никуда не годится и надо бы по-другому. Деликатно, естественно...


Для начала было бы неплохо определить, что вы считаете "говнокодом", а там уже посмотрим.
Re[3]: Как объяснить программеру, что он пишет говнокод?
От: SE Украина  
Дата: 25.09.09 11:02
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>5)собрать статистику по закрытым фичам и внесенным багам в единицу времени, показать ему что они очень медленно работает.


Ну по закрытым фичам это понятно. А по внесенным багам как? Если программер медленно работает, то у него и багов может быть меньше чем у остальных на единицу времени. Просто потому, что он медленно работает
Re[3]: Как объяснить программеру, что он пишет говнокод?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 25.09.09 11:13
Оценка: +1
Здравствуйте, Ziaw, Вы писали:

Z>Здравствуйте, gandjustas, Вы писали:


Z>Вобщем все верно, но:


G>>1)Настроить утилиты статического анализа кода и интегрировать их в билд-систему, чтобы при нарушении coding-style сборка ломалась, заставить индивида исправить все ошибки

Z>Перед этим придется проделать нехилую работу по настройке и причеусыванию текущего кода.
Ну тогда нельзя однозначно говорить о том что человек пишет плохой код.
Возможно они пишет код, который непривычно видеть окружающим.

G>>2)Заставить писать тесты на код, посмотреть на покрытие кода тестами для этого индивида, показать ему самому

Z>Перед этим придется добиться идеального покрытия.
Не понял, зачем?

G>>3)Провести пару раз ревью его кода, чтобы группа опытных программистов рассказала про все ошибки

Z>Как раз с этим и проблемы у топикстартера, не могут они нормально объяснить почему этот код является говнокодом.
Не если не могут объяснить, то вообще не факт что код чем-то плох.
Re[4]: Как объяснить программеру, что он пишет говнокод?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 25.09.09 11:15
Оценка: -1
Здравствуйте, SE, Вы писали:

SE>Здравствуйте, gandjustas, Вы писали:


G>>5)собрать статистику по закрытым фичам и внесенным багам в единицу времени, показать ему что они очень медленно работает.


SE>Ну по закрытым фичам это понятно. А по внесенным багам как? Если программер медленно работает, то у него и багов может быть меньше чем у остальных на единицу времени. Просто потому, что он медленно работает


Статистика — это зло. В данном случае любое зло можно повернуть в свою сторону.
Вносит много багов — показывать статистику по бага, реализует мало фич — показывать статистику по фичам. Если много и того и другого, то надо говорить что ему надо писать тесты на код
Re[5]: Как объяснить программеру, что он пишет говнокод?
От: SE Украина  
Дата: 25.09.09 11:29
Оценка: 1 (1)
Здравствуйте, gandjustas, Вы писали:

G>Статистика — это зло. В данном случае любое зло можно повернуть в свою сторону.

G>Вносит много багов — показывать статистику по бага, реализует мало фич — показывать статистику по фичам. Если много и того и другого, то надо говорить что ему надо писать тесты на код

Был у меня такой начальник. Был публично уличен во лжи. Кроме всего прочего и в злоупотреблении статистикой с целью отказа от своих обязательств.
А я, как результат, был уволен. Чему, как ни странно, очень рад до сих пор
Re[6]: Как объяснить программеру, что он пишет говнокод?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 25.09.09 11:32
Оценка:
Здравствуйте, SE, Вы писали:

SE>Здравствуйте, gandjustas, Вы писали:


G>>Статистика — это зло. В данном случае любое зло можно повернуть в свою сторону.

G>>Вносит много багов — показывать статистику по бага, реализует мало фич — показывать статистику по фичам. Если много и того и другого, то надо говорить что ему надо писать тесты на код

SE>Был у меня такой начальник. Был публично уличен во лжи. Кроме всего прочего и в злоупотреблении статистикой с целью отказа от своих обязательств.

SE>А я, как результат, был уволен. Чему, как ни странно, очень рад до сих пор

Он выбрал неправльную цель
Re[2]: Как объяснить программеру, что он пишет говнокод?
От: Тролль-323  
Дата: 27.09.09 17:22
Оценка: +1 -1
Совершенно не могу себе представить авторитетов в области «неговнокода».

По-моему, здесь до такой степени на вкус и цвет товарищей нет…

Я, например, многие (да почти все) известные программы и библиотеки мог бы назвать «говнокодом», но не буду называть, потому что так поверхностно называемый «стиль» на самом деле не настолько влияет на причины, по которым эти программы и библиотеки считаются авторитетными.

Да тот же Буст, например, при поверхностном взгляде иначе как говнокодом не назовешь, однако же при этом я прекрасно понимаю, что стиль, в котором он написан, не является таким уж важным параметром, учитывая все остальные его достоинства, что написан этот код весьма квалифицированным людьми, он очень продуман и выверен, и я сам вряд ли бы лучше написал, чем там написано. И так можно сказать почти про все известные программы и библиотеки.
Re: Как объяснить программеру, что он пишет говнокод?
От: Blondy  
Дата: 28.09.09 09:52
Оценка: 3 (1) +1 :)
Здравствуйте, Andrey.dm, Вы писали:

AD>Взяли программера. Пишет говнокод и медленно. Любые попытки деликатно объяснить ему, что это не совсем верно и можно и нужно писать лучше, воспринимает в штыки, при этом отстаивая свой говнокод и его "правильность". Скилы у него слабенькие (продолбали на собеседовании), но о себе он в разы более высокого мнения, я бы даже сказал в большие разы. Пока на испытательном сроке и по понятным причинам скорее всего его не пройдет, но раз уж такая ситуация сложилась, хотелось бы все же узнать, как наиболее правильно переучить его, как объяснить, что то, что он пишет ну совсем никуда не годится и надо бы по-другому. Деликатно, естественно...

Открывайте скорее вакансию снова. Заморачиваясь какой-то там деликатностью, Вы сдерживаете движение софтверной индустрии в правильном направлении.
Re: Как объяснить программеру, что он пишет говнокод?
От: Lead Lead  
Дата: 09.10.09 13:50
Оценка: -1
Здравствуйте, Andrey.dm, Вы писали:

AD>Взяли программера. Пишет говнокод и медленно. Любые попытки деликатно объяснить ему, что это не совсем верно и можно и нужно писать лучше, воспринимает в штыки, при этом отстаивая свой говнокод и его "правильность". Скилы у него слабенькие (продолбали на собеседовании), но о себе он в разы более высокого мнения, я бы даже сказал в большие разы. Пока на испытательном сроке и по понятным причинам скорее всего его не пройдет, но раз уж такая ситуация сложилась, хотелось бы все же узнать, как наиболее правильно переучить его, как объяснить, что то, что он пишет ну совсем никуда не годится и надо бы по-другому. Деликатно, естественно...


Лучше всего провести с ним code review.
Как я предлагаю это делать, написал здесь: http://rsdn.ru/forum/management/3563432.1.aspx
Автор: Lead Lead
Дата: 09.10.09


Или можете устроить обучающую сессию (если время позволяет) и использовать его код как "bad practices".
Жестоковато может выйти, но это лучше, чем разгребать ошибки в самый неподходящий момент.
--
Записки ленивого тимлида
http://lean-lead.blogspot.com/
Re[4]: Как объяснить программеру, что он пишет говнокод?
От: metaprogrammer  
Дата: 09.10.09 18:17
Оценка: +3 -1
Здравствуйте, MachoMuchacho, Вы писали:

MM>* развитой интеллект — проверяется тестом на IQ


Простите, но интеллект тестом на IQ не проверяется. Вас обманули.
Re[5]: Как объяснить программеру, что он пишет говнокод?
От: MachoMuchacho  
Дата: 10.10.09 00:34
Оценка: +1 -2
Здравствуйте, metaprogrammer, Вы писали:

M>Здравствуйте, MachoMuchacho, Вы писали:


MM>>* развитой интеллект — проверяется тестом на IQ


M> Простите, но интеллект тестом на IQ не проверяется. Вас обманули.


http://en.wikipedia.org/wiki/IQ
Re[6]: Как объяснить программеру, что он пишет говнокод?
От: Undying Россия  
Дата: 12.10.09 05:02
Оценка: -1
Здравствуйте, MachoMuchacho, Вы писали:

M>> Простите, но интеллект тестом на IQ не проверяется. Вас обманули.

MM>http://en.wikipedia.org/wiki/IQ

Тест на IQ проверяет способность человека решать простые/лаконичные задачи за очень ограниченное время (порядка минуты). В инженерной, и в частности в программистской деятельности, таких задач практически нет, там нужно решать сложные/объемные задачи за часы/дни/недели. Соответственно тест на IQ ничего о способностях человека к программированию не говорит.
Re[7]: Как объяснить программеру, что он пишет говнокод?
От: MachoMuchacho  
Дата: 12.10.09 07:06
Оценка: 3 (1)
Здравствуйте, Undying, Вы писали:

U>Здравствуйте, MachoMuchacho, Вы писали:


M>>> Простите, но интеллект тестом на IQ не проверяется. Вас обманули.

MM>>http://en.wikipedia.org/wiki/IQ

U>Тест на IQ проверяет способность человека решать простые/лаконичные задачи за очень ограниченное время (порядка минуты). В инженерной, и в частности в программистской деятельности, таких задач практически нет, там нужно решать сложные/объемные задачи за часы/дни/недели. Соответственно тест на IQ ничего о способностях человека к программированию не говорит.


мммммммм...
пример из жизни
в институтской группе было около 20 человек
на занятии по психологии на втором курсе IQ измеряли у всех, причем результаты оглашали, поскольку это было что-то вроде "игры"
из этих 20 реально программистами работают (или активно работали некоторое время после окончания вуза) около 5
3 — это те, у кого IQ был выше среднего
1 парень со средним IQ и с артистической жилкой
1 парень со средним IQ и с личной и семейной активной технической направленностью
остальные ушли кто-куда
Re[8]: Как объяснить программеру, что он пишет говнокод?
От: SE Украина  
Дата: 12.10.09 08:53
Оценка: +3 -1
Здравствуйте, MachoMuchacho, Вы писали:

U>>Тест на IQ проверяет способность человека решать простые/лаконичные задачи за очень ограниченное время (порядка минуты). В инженерной, и в частности в программистской деятельности, таких задач практически нет, там нужно решать сложные/объемные задачи за часы/дни/недели. Соответственно тест на IQ ничего о способностях человека к программированию не говорит.


MM>мммммммм...

MM>пример из жизни
MM>в институтской группе было около 20 человек
MM>на занятии по психологии на втором курсе IQ измеряли у всех, причем результаты оглашали, поскольку это было что-то вроде "игры"
MM>из этих 20 реально программистами работают (или активно работали некоторое время после окончания вуза) около 5
MM>3 — это те, у кого IQ был выше среднего
MM>1 парень со средним IQ и с артистической жилкой
MM>1 парень со средним IQ и с личной и семейной активной технической направленностью
MM>остальные ушли кто-куда

Вероятно имелось в виду, что уровень интеллекта и результат IQ-теста хотя в некоторой степени и коррелируют, но тесты не являются сколько нибудь точным показателем.
Дело в том, что человек, который не приучен и не готов решать задачки подобные к тем, что в IQ-теста врядли заинтересуется программированием вообще, но почему бы ему не быть выдающимся историком.
И наоборот, у программиста, особенно если он прилагает к тому усилия, мозг "затачивается" для решения таких задачек. При этом во всем остальном и особенно в решении жизненных вопросов, такой программист может оказаться дуб-дубом, а может и не оказаться
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.