Описание ситуации в ОП, скорее всего, одностороннее. Ничего страшного.
Я стареющий разработчик (~54 yo), которого привели в компанию не для того, чтобы править, а для того, чтобы обеспечить некоторый опыт. (IT-босс на самом деле сказал “седые волосы”, Лол.) Персонал разработчиков был far более опытным, в целом, чем любая команда, с которой я работал ранее. Они научили меня многому, особенно смирению! Но мы нашли места, где их технологическое мастерство не решало проблемы, а в некоторых случаях скрывало эти проблемы, в конечном счете делая их еще хуже. Именно здесь я смог внести реальный вклад.
Ваш ведущий голос звучит очень автократично. Звучит так, как будто он получил мандат от владельца. Владелец недоволен штатом разработчиков и привёл этого “жёсткого безрассудца”, чтобы увеличить скорость доставки.
Сначала посмотрите на своих сотрудников. Есть ли у вас слабаки - разработчики, которые не “видят Матрицу”? Если да, найдите им новые позиции в компании или дайте им хорошую рекомендацию для работодателя, которому нужны их уникальные навыки.
Он ненавидит IDE
Я знаю несколько, которые делают. Он заставляет меня закатывать глаза, но в конце концов мне все равно. Если люди производят с использованием vi
, то хорошо. Мне нравятся мои IDE.
Он не рефакторирует код и не заботится о стиле (который несовместим с его собственным кодом)
Красный флаг в первой части. Он копировальщик? Я также виноват в том, что не забочусь о стиле, но это потому, что я использую свою IDE, чтобы мгновенно сделать свой Python код PEP8 совместимым. Но он не использует IDE…
В качестве примечания, стиль ранее проверялся ночной сборкой, которая начала давать сбой с момента появления нового свинца.
Он отвергает идею ночной сборки, так же как и автоматизированных тестов. По его словам, “любой профессиональный разработчик все равно проверяет свой код вручную, так что нет причин тратить время на написание автоматизированных тестов”. По его словам, ночная сборка также является пустой тратой времени.
Это также поднимает красный флаг, но по другим причинам, чем вы могли бы ожидать. До того, как этого парня наняли, сколько раз владельцу говорили, что он не может сделать X (дать демо-версию, использовать систему и т.д.), потому что ночная сборка провалилась? Что, если владелец считает, что ночная сборка - это проблема? Как вы думаете, что бы он сказал Свинцу делать?
Но у меня есть опасения по поводу отношения Свинца; автоматизированные тесты удивительны. Как и прежде, босс, возможно, не понимает значения тестов, но он, безусловно, знает, что Y% зарплаты сотрудников девайсов платят за них. Когда я приехал в мою нынешнюю компанию, “100% мафия покрытия теста” взял на себя сотрудников дева и запустил расходы waaaay вверх. Одно плохое яблоко позже, и девчонки снова мурлыкали.
Он думает, что контроль версий в основном бесполезен…
Это красный флаг высшего порядка. Он настолько ошибается, насколько это возможно. Он безответственно относится к деньгам владельца.
Он преувеличивает важность оптимизации кода.
В прошлом, оптимизация кода может иметь значение. Теперь машины настолько быстры, что это менее важно. Вместо этого, теперь мы должны беспокоиться о производительности базы данных и пропускной способности сети. Но его “оптимизация кода” привычку трудно сломать, поверьте мне. Приходится заставлять себя не заниматься предварительной оптимизацией. По крайней мере, его поведение в этом случае не является разрушительным, за исключением времени, затраченного на это. (У вас есть цифры за его “половину времени” или это гипербола? Если вы критикуете своего начальника, гипербола недопустима. Вы должны быть патологически объективны.)
Он пишет все SQL от руки, и отвергает идею ORM.
Виновен! Я не понимаю страха людей перед SQL. Я не понимаю, как можно похоронить SQL, который является каплеутопным простым, под слоями ORM, которые обманывают. Ничего не могу с этим поделать :-D Но, пожалуйста, дампируйте весь ваш SQL в одно место - не распространяйте его по всему коду.
и двое из пяти разработчиков никогда раньше не использовали SQL.
Это неприемлимо. Это 2016 год.
Он отвергает фреймворки и сторонние библиотеки, считая, что писать вещи намного проще с нуля.
Он не может быть более неправильным. Сомневаюсь, что ваша компания so special, что ваши утилиты должны быть написаны собственными силами. У нас было несколько разработчиков, которые бы приняли сторонние утилиты - до тех пор, пока они не сделают что-нибудь, что не понравится разработчику. Это был предлог, чтобы выбросить инструмент и написать свой собственный. Это только увеличивало нагрузку на персонал разработчиков, еще больше замедляло их работу. Этот бесполезный код стоит дорого писать, тестировать, отлаживать и поддерживать. Мы потратили столько денег на - нулевую выгоду. Этих разработчиков уже нет.
Он решил отказаться от всех библиотек и фреймворков на JavaScript, кроме jQuery, утверждая, что когда он начал программировать на JavaScript пятнадцать лет назад, там не было фреймворков, и жизнь была намного проще.
Это не такой уж и ясный срез. Причина в том, что 15 лет назад жизнь была намного проще. деловая просьба была намного проще. Вот откуда взялась проблема. Сеть была изобретена как пакетная система (заполните форму, отправьте ее, получите ответ, повторите), и теперь мы пытаемся писать веб-приложения, которые ведут себя как настольные приложения. Его наблюдение верно, сейчас все сложно. Но он не понимает почему. Сложность инструмента - это ответ на более сложный бизнес-запрос. Таким образом, он делает неправильный выбор.
Мы используем AngularJS и это кажется приличным. Как и все мощные инструменты, его можно использовать во благо или во зло.
Он считает, что мобильные устройства (в том числе и планшеты) - это просто шумиха, поэтому нет причин тратить драгоценное время на обеспечение совместимости сайта с этими устройствами и на создание отзывчивого дизайна. Продукт является публичным веб-приложением, которое, как ожидается, не будет много использоваться с мобильных устройств.
Он опять ошибается. Это не шумиха. Они здесь, чтобы остаться, потому что они полезны. Но бизнесу это не нужно. Не разрабатывайте вещи, которые вам не нужны. Это дорого.
Ответственный дизайн, однако, может быть очень интересно иметь для этого приложения, …
Это так интересно, что вы бы заплатили за разработку лично? Если это хорошая идея, вы должны быть в состоянии продать идею владельцу. Иначе не тратьте на это ни цента.
Он просит команду перестать пользоваться интернетом (особенно StackOverflow) и положиться на их мозги, оффлайн документацию (я даже не знал, что Microsoft до сих пор продает MSDN CD!) и книги.
Он ошибается. Интернет для этого отлично подходит. Если персонал разработчиков занимается копированием-пастингом из Stackoverflow, не понимая, как работает код, то они тоже ошибаются. Есть ли время на обучение и личное улучшение в графике разработки? Трудно не заниматься роботизированной копировальной пастой, когда ты всегда под прицелом.
Хотя у меня есть ограниченная информация, здесь есть много проблем. Похоже, что владелец не получил код, за который платит, так быстро, как ожидал. Звучит так, как будто он услышал много отговорок о том, что ему наплевать; он сосредоточен на результате. Если я прав, у вас есть самоубийственная рана, и вы не раз ее открывали. Этот Свинец - решение владельца проблемы, которую поставил дьявол, и, учитывая его ограниченную информацию, это понятно.
Я также поставлю на то, что вы управляете не-магазином и у вас плохое определение требований, которые меняются по мере того, как дует ветер. Нет слоя изоляции между персоналом дева и владельцем. Кроме этого свинца.
Теперь, что вы можете сделать?
1) Обучение свинца, что использование автоматизированного тестирования и управления кодом является способом идти. Может понадобиться время, чтобы завоевать к нему доверие - владелец, наверное, сказал ему, что персонал неисправен. Посмотрим, сможешь ли ты помешать ему сделать подметание мандатов, таких как “удалить всю эту бесполезную хрень с тестированием и перепрофилировать SVN-сервер”. Это даст вам время показать ценность.
2) Продолжайте использовать управление кодами на личном уровне. По крайней мере, тогда вы сможете восстановиться после собственных ошибок. Не говорите ему, что делаете это, хотя и не лгите ему.
3) Продолжайте автоматизированное тестирование (юнит-тесты, если больше ничего) на личном уровне. Как и прежде, не упоминайте об этом, хотя и не скрывайте этого.
4) Работайте со Свинцом, чтобы определить, каковы реальные предполагаемые проблемы. Будьте открыты; держу пари, что есть реальные проблемы с персоналом. Работайте со Свинцом, чтобы решить проблемы, а не симптомы.
5) Обсуждайте со Свинцом различные темы развития, такие как преимущества водопада и подвижность. Ни то, ни другое не идеально. Задайте ему такие вопросы, как: “При каких обстоятельствах автоматизированное тестирование было бы целесообразно”? Если он дает сомнительный ответ, спросите его, как успешные компании, такие как Google, удалось процветать, несмотря на это.
Так что вы можете видеть, что я все о привлечении Свинца и увидеть, где его голова находится в. Построить доверие. Договоритесь о вопросах в сравнении с симптомами. Это не всегда легко, особенно когда вы чувствуете, что он похож на Годзиллу и разрывает вашу работу на части.
Есть шанс, что он не сможет пойти на компромисс. Он раздавит автоматизированное тестирование. Управление кодами для небрежных людей. Мой Путь или Шоссе.
Если до этого дошло, то вам пора уходить. Работа в магазине без инструментов, а я имею в виду программное обеспечение и средства разработки программного обеспечения - не строит ваше резюме. Вы начнете гнить так же, как Свинец сгнил. В таком случае, двигайтесь дальше.