В вопросе «Как справиться с моим устаревшим коллегой» различные люди обсуждали стратегии работы с коллегами, которые не хотят интегрировать свой рабочий процесс с работой команды.
Я хотел бы, если возможно, изучить некоторые стратегии «обучения» коллеги, которая просто не знает современных методов и инструментов и, возможно, немного апатична.
Я начал работать с программистом, который до недавнего времени работал в относительной изоляции, в другой части компании. Он обладает обширными знаниями в предметной области и, самое главное, он продемонстрировал хорошие навыки решения проблем , чего, похоже, не хватает многим кандидатам.
Однако фактический (C #) код, который я видел, является возвратом к дням VB6. Процедурная структура, венгерская нотация, глобальные переменные (злоупотребление static
), отсутствие интерфейсов, никаких тестов, неиспользование универсальных элементов, бросание System.Exception
... вы понимаете.
Этот программист немного старше меня и, по первым впечатлениям, не ищет активных изменений. Я не собираюсь говорить о сопротивлении переменам, потому что я думаю, что это в значительной степени вопрос о том, как тема обсуждается , и я хочу быть готовым.
Программисты, как правило, упрямые люди, и, если они пойдут с оружием в руках и начнут проводить обзоры кода «разорвать это в клочья» и строго применять политики, то, скорее всего, я не получу желаемый конечный результат. Если бы это был новый наемник, младший программист, я бы не подумал дважды о том, чтобы занять позицию «наставника», но я крайне настороженно отношусь к опытному сотруднику как к невежественному новичку (а он нет - он просто не идти в ногу с определенными достижениями в этой области).
Как я мог бы повысить этот стандарт качества кода разработчика Дейлом Карнеги путем мягкого убеждения и нематериальных стимулов? Какова была бы лучшая стратегия для осуществления тонких, постепенных изменений, без создания неблагоприятной ситуации?
Были ли другие люди - особенно ведущие разработчики - были в такой ситуации раньше? Какие стратегии были успешными в стимулировании интереса и создании положительной групповой динамики? Какие стратегии не увенчались успехом и их лучше избегать?
Разъяснения:
Я действительно чувствую, что некоторые люди отвечают, основываясь на личных чувствах, фактически не читая все детали вопроса. Пожалуйста, обратите внимание на следующее, что должно было подразумеваться, но сейчас я делаю это явно:
Этот сотрудник только мой "старший" в силу возраста. Я никогда не говорил, что его звание, сфера влияния или годы в организации превышают мои, и фактически ни одна из этих вещей не является правдой. Он программист LOB, который был поглощен главным магазином разработки. Вот и все.
Я не новый наемник, младший программист или другой наивный идиот с грандиозными планами преобразовать компанию за одну ночь. Я в основном отвечаю за процесс разработки программного обеспечения, но, как знают многие из тех, кто работал «руководителями», обязанности не всегда точно соотносятся с организационной структурой.
Я не спрашиваю людей, как получить мой путь, черт возьми или паводок . Я мог бы сделать это, если бы захотел, и в результате я бы обиделся и / или ушел. Пожалуйста, постарайтесь понять, что я ищу социальный , совместный метод изменения вождения.
Упоминание «... глобальные переменные ... никаких тестов ... выбрасывание
System.Exception
» предназначалось для демонстрации того, что проблемы не являются только поверхностными или эстетическими . Практики, которые могут работать для относительно небольших приложений CRUD, не обязательно работают для крупных корпоративных приложений, и фактически ни один из кодов до сих пор фактически не прошел интеграционные тесты.
Пожалуйста, попробуйте принять вопрос за чистую монету, примите, что я действительно знаю, о чем говорю, и либо ответьте на вопрос, который я на самом деле задал, либо продолжайте.
PS Моя искренняя благодарность тем, кто дал конструктивный совет, а не поспорил с предпосылкой. Я собираюсь оставить это открытым на некоторое время дольше, так как я надеюсь услышать больше о реальных событиях.