Этот вопрос был вдохновлен этим . Хотя этот другой вопрос считался локализованным, я полагаю, что основная проблема - это проблема, которая чрезвычайно распространена в нашей отрасли. Я знаю, что есть некоторые разработчики, которые прочтут это и подумают, что я все это придумываю, а затем они могут ответить, как все заботятся о своей работе и хотят учиться, но просто смотрят на посты других программистов SE ( наглядный пример ), Я знаю, что это не всегда так.
Допустим, в вашей команде есть кто-то (или, может быть, большинство), чья стандартная рабочая процедура заключается в копировании / вставке и которая считает, что все можно решить, если только вы добавите достаточно вызовов функций и переменных. Этот человек никогда не слышал о TDD, DRY или SOLID, и за пределами 40 часов на работе, когда он занят работой, он ни разу не прочитал ни одной методологии / практики / книги о дизайне.
В прошлом я (и другие) спрашивал, как вы учите OOD . Но сейчас я думаю, что это не правильный вопрос. На самом деле вопрос в том, как вы подходите к такому человеку / команде и хотите узнать, как лучше поступить? Как вы вдохновляете их учиться? Без этого кажется, что все преподавание, встречи, лекции, дискуссии бесполезны, если они совершенно счастливы, возвращаясь к своему столу и делая то, что они всегда делали.
Я работаю с такими людьми. Они на самом деле довольно яркие люди, но я ненавижу, когда слышу: «Я закончил программировать, мне просто нужно провести рефакторинг и разбить его на несколько классов, чтобы сделать ДХМ счастливым». Они не делают рефакторинг для более чистого, читабельного, обслуживаемого кода, но только потому, что иначе их будут ругать. Я знаю, что они способны к обучению, просто кажется, что вообще отсутствует мотивация.
Когда я выполняю работу, в ней обычно гораздо меньше ошибок, и работа, которой я владел, никогда не становилась чудовищем класса из 5000 строк. Другие будут комментировать, например, «ваш код намного чище и удобнее для чтения, чем наши материалы», поэтому они видят разницу. Но в то же время, я чувствую, что они считают, что им платят за 40 часов, независимо от того, что они делают, поэтому они на самом деле не возражают, если они проведут 3 полных дня в QA в поисках ошибки, которая не должна была быть внесена в первое место. Или что они занимают неделю, чтобы изменить один класс, потому что есть так много зависимостей, которые они в конечном итоге касаются. Тем не менее, «возможно, этот класс должен быть написан по-другому», кажется, никогда не всплывает.
Можно ли что-нибудь сделать в этих ситуациях? Кто-нибудь преуспел? Или лучше изолировать такое мышление от некритических частей проекта и минимизировать ущерб?
ПРИМЕЧАНИЕ: когда я говорю «отсутствие мотивации». Я не думаю, что это отсутствие мотивации, чтобы работать или делать хорошую работу, потому что они просто перестали заботиться. Большая часть нашей команды на самом деле совсем наоборот. Они определенно заботятся о продукте. У нас есть ребята, которые будут работать по вечерам и выходным. Часть, которую я пытаюсь пройти, - это улучшение привычек и навыков, им на самом деле не нужно было бы так много работать. Я думаю, что "40 часов" заставили этот пост звучать слишком негативно.