Я работаю в большой компании (более 8000 человек) уже почти 2 года, и меня приняли на работу сразу после окончания учебного курса.
Все здесь ежедневно сталкиваются с устаревшим кодом, который часто очень плохо спроектирован и полон хаков. Сначала я вел себя сдержанно, стараясь не слишком критиковать вещи. Но в нынешней ситуации стало очень трудно жить, и, похоже, никто не хочет улучшать / заменять инструменты, которые мы используем.
Чтобы быть более точным, мы имеем:
- Устаревший инструмент управления исходным кодом (Visual SourceSafe)
- Простые старые make-файлы, которые поддерживают только полную перестройку
.def
файлы, которые должны поддерживаться вручную и отдельно для всех существующих архитектур- монолитные заголовочные файлы и проекты с очень небольшим количеством разных файлов (но каждый содержит около 3000 строк кода, которые иногда решают очень разные задачи)
- не использовать "новые" языковые средства (ну,
std::string
это не так уж ново, но никто, кроме меня, не использует его)
Несколько месяцев назад я решил что-то с этим сделать, разработав новую среду компиляции. Я мог бы заставить инкрементные сборки работать надежно, быстрее компилировать, лучше структурировать проекты, автоматически .def
генерировать файлы. Я даже создал мост из / в Git в / из Visual SourceSafe.
Я показал свои достижения нескольким коллегам и нашему начальнику, но это было похоже на то, что никто не заботился. Все они были похожи на «Ну ... люди привыкли делать это таким образом. Зачем нам что-то менять?»
Предложенные мной изменения были разработаны таким образом, чтобы мы могли плавно перейти от старой системы к новой. Каждое улучшение может быть применено отдельно и безопасно.
Я даже пытался вовлечь некоторых из моих коллег в изменения. Но пока безуспешно.
Вы уже сталкивались с подобной ситуацией? Что можно сделать, если «привести пример» не работает?
Ответы:
Цель для руководителя : «Подавать пример» должно иметь в виду улучшение, но оно должно быть ориентировано на людей, а не на технологии. Возможно, вы потратили слишком много времени на совершенствование технологий, но недостаточно времени на то, что происходит в их головах. Подумайте о движущих факторах, почему существует оппозиция для новых вещей. Во многих случаях они просто боятся некоторого риска. Определите эти риски и найдите для них контраргументы.
Хватайте свежее мясо : легче завоевать сотрудников, которые хотят что-то изменить. Вы замечаете их сразу же, когда видите их.
Избегайте гнилого мяса : некоторые никогда не будут сочувствовать вашим идеям. Оставь их в стороне.
Вырасти до критической массы : найди людей, которые сочувствуют твоим идеям. Выиграйте по одному. В какой-то момент, если будет достигнута критическая масса, все больше и больше людей будут добровольно следовать вашему примеру.
Лексика управления : Менеджеры не заинтересованы в улучшении дизайна. Их язык - деньги и время. Уточните, сколько человеко-часов потрачено на ошибки. Дайте понять, что неудовлетворенные клиенты, которые сталкиваются с ошибками, не приносят прибыли. Продемонстрируйте, насколько быстрее вы сможете реализовать новую функцию. Вам нужно выбрать другой словарь для менеджеров.
Все дело в процессах : лучшие технологии не делают лучших программистов и программ. Если у вас хорошо запущенные процессы, даже устаревшие технологии приводят к хорошим результатам. Подумайте, были ли усилия и время потрачено впустую. Может быть, это не технология, но что-то в процессах идет ужасно неправильно. В большинстве случаев это отсутствие общения.
Найдите новую компанию : вы уже многое сделали. Вы все еще можете попытаться что-то улучшить, но также вам решать, сколько времени вы хотите попробовать и сколько энергии вы хотите инвестировать. Имейте в виду: даже если вы не можете добиться значительных улучшений, вы многому научитесь благодаря своим усилиям. В какой-то момент вам нужно двигаться дальше.
источник
Вы когда-нибудь задумывались о том, что можете ошибаться?
Таким образом, вы читаете некоторые книги по образцам и образцам в школе, и вы лишены права голоса с тем, что кажется вам сравнительно устаревшей практикой, когда вы работаете. Без сомнения, это, вероятно, лучшие идеи, и новые проекты должны начинаться с их учетом, но кажется, что вы находитесь на совершенно другом уровне.
Стадные разработчики - это все равно что пытаться загонять кошек, они по своей природе имеют собственный разум и предпочитают делать что-то, правильное или нет. У меня достаточно трудное время для применения лучших практик и управления командой из 2 разработчиков, но вы работаете в компании с 8000.
Это потрясающе огромное количество. Даже простое изменение процесса, которое гласит, что все разработчики должны планировать встречи, а рабочее время в открытом календаре становится чрезвычайно сложной и трудной для реализации политикой. Это также потребует значительных усилий со стороны руководства, чтобы убедиться, что политика принята и принята по всем направлениям.
Вы можете не думать об этом, но что-то такое простое, как переход от монолитных к нескольким заголовочным файлам или перемещение контроля версий из SourceSafe в Git, требует огромных усилий и инвестиций со стороны всех, кто в этом участвует. Это потребует:
Значительная поддержка управления
Широкое признание компании
Инвестирование часов для всех разработчиков в информирование их о новых инициативах (встречи стоят человеко-часов, человеко-деньги стоят денег)
Обучение должно быть запланировано и организовано, чтобы даже самые глупые разработчики знали, что они делают
Даже при условии обучения в течение часа, у 8000 разработчиков х 50 евро / час = 400000 евро стоимости обучения. Это больше денег, чем моя команда разработчиков программного обеспечения получает за весь год на зарплату, программное обеспечение и оборудование. Это исключительная инвестиция, которую вы предлагаете.
Но вы говорите: «Подумайте обо всем, что можно сэкономить за счет повышения производительности». Это правильно, но значительные инвестиции - это значительный риск, поэтому я должен быть чертовски уверен, что вы правы в этом, прежде чем я подпишусь на этом. Если никто из старших парней не поддерживает вас, я не могу оправдать расходы. В конечном счете, мы можем быть неэффективными, но мы последовательны, и с 8000 разработчиков по всей компании, последовательность важнее всего.
Для этого вам нужно подписать контракт с несколькими руководителями высшего звена, и вам нужно точно и объективно найти способ измерить потерянное время разработчика на неэффективность. Это время приравнивается к долларам, и только доллары и политика помогут вам выиграть эту битву.
источник
То, что вы описали, для меня не звучит как «привести пример», похоже, что вы сделали предложение и были отклонены. Чтобы подавать пример, нужно показать людям, что ваш путь лучше. Из перечисленных вами проблем я вижу три, которые вы можете начать использовать самостоятельно.
Создайте свои собственные make-файлы локально и покажите, насколько эффективнее вы сможете с ними работать.
Либо разбивайте существующие, когда вы касаетесь их (не нарушая сборки), либо вводите меньшие заголовочные файлы, когда вы пишете новый код. Когда люди начнут с ними работать, они поймут, что им не нужно дублирование.
Продолжайте вводить новые языковые средства каждый раз, когда вы касаетесь старого кода или вводите новый код. Убедитесь, что вы упрощаете вещи. Не отчаивайтесь от этого. Большинство из нас ленивы. Если мы увидим, что новая языковая функция делает вещи проще, мы примем ее.
Через несколько месяцев, если другие разработчики начнут внедрять ваши улучшения, вы сможете снова обратиться к своему боссу о более радикальных изменениях, таких как обновление системы управления версиями. Вы должны убедиться, что другие разработчики видят это преимущество, иначе оно никогда не получится. Один из способов подойти к этому - предложить Git на небольшом проекте, над которым работают только несколько разработчиков. Таким образом, вы можете продвигать его как оценку, а не как полномасштабный переход к незнакомой системе.
Наконец, если после нескольких месяцев попыток никто не заинтересован в улучшении того, как дела в вашей компании, вам нужно подумать, подходит ли вам это.
источник
В дополнение к Лайонелу Баррету (с которым я в основном согласен), рассмотрим также возможную мотивацию сопротивления.
Но и:
У меня есть подозрение: сколько в вашей компании таких людей, как вы, с точки зрения возраста и культуры (я - «школа» и «тип школы»)? Сколько таких людей, как вы, должны быть приняты на работу в ближайшие 2/3 года, и сколько из них выйдут на пенсию или изменят свою роль в организации?
Я подозреваю, что у вас недостаточно сил, чтобы сменить компанию. В этой ситуации либо компания изменит вас, либо «исключит» вас (в том смысле, что это станет вашим собственным желанием уйти), если вы не сможете ждать больше времени.
Но, возможно, компания оценивает, что дополнительные расходы, о которых я вам говорил, могут быть сэкономлены, позволяя процессу изменений происходить спонтанно, ожидая естественной замены людей. Вы находитесь в начале процесса, который вы не можете видеть, потому что за вами ничего (пока) нет.
источник
На данный момент я могу добавить только ссылку на статью Джоэла « Как все сделать, когда ты только хрюкаешь» . Разделы включают в себя:
Я бы резюмировал статью как «Изменения должны начинаться с вас».
источник
К сожалению, люди застревают в колее и развивают менталитет, что «это работает, все используют это хорошо, зачем менять это» И это приводит в бешенство.
Вы пошли по этому пути правильно, не просто жалуясь, а разработав работоспособное решение в качестве замены, теперь вам просто нужен бай-ин.
Покажите своему непосредственному руководителю (или техническому руководителю). Если они не заинтересованы, кто-нибудь отвечает за контроль над изменениями или за инновации?
Тем не менее, потенциально, ваши идеи и работа могут быть проигнорированы, и ситуация останется такой, как есть.
источник
Вы должны изложить свое дело таким образом, чтобы ваш босс был на вашей стороне. Кстати, такого рода изменения предложены техническим директором или руководителем проекта, поэтому вам нужно будет посвятить себя проекту. (В качестве альтернативного маршрута вы можете предложить технический аудит, посторонний, вероятно, скажет то же, что и вы, но будет иметь больший вес.)
До сих пор он не видит необходимости менять, похоже, косметика меняется на него: дорого без очевидных преимуществ, кроме как для удовлетворения фантазии разработчика. Для него важны только две вещи: поток денег и стабильная команда. Технология - это черный ящик, если он работает, этого достаточно.
Первые деньги, вы должны доказать, что текущая установка стоит ему денег. Какая стоимость / час разработки и на сколько часов ускорит его компиляция? Делать математику. Кроме того, скомпилируйте статьи или свидетельства о рисках текущего конвейера кода и покажите ему страшные цифры: «из-за SourceSafe / Bad Coding Practices наша компания потеряла $ XXXK».
Во-вторых, ваш босс может быть застрял со старыми сварливыми программистами, которые не хотят менять свои пути. Если первая точка установлена, вам также необходимо предложить решение этой проблемы. Сколько вас ? Было бы интересно подчеркнуть, что заменить кого-то будет сложно, потому что текущий конвейер кодирования является византийским. Вам нужно предложить план по обновлению команды. Изучите их лучшие отраслевые практики и убедитесь, что они следуют новым правилам.
Наконец, вам нужно предложить план по изменению кодовой базы, разделенной на небольшие проекты, с этапами и распределением ресурсов. На самом деле, вы продаете себя в качестве менеджера проекта, а изменения как обязательные, чтобы иметь надежный конвейер кода.
источник
Работаете ли вы в организации, которая считает, что успешная работа, эффективность и инновации ведут к успеху и прибыльности; или что стремление к доходам и концентрация на поддержании продаж являются залогом успеха?
Компании, которые ведут себя так, как вы описываете, технологически укоренились. На конкурентном рынке они не смогут конкурировать с компанией, ориентированной на частных лиц и инновации.
Если вы тот человек, которым вы себя называете, тогда работайте где-нибудь, что чтит и вознаграждает ваш дух. В конце концов, после нескольких лет урегулирования, вы начнете идти на компромисс для той же философии, что и ваши начальство. Отправляйтесь на работу в другое место (возможно, в небольшую организацию), где ценят тяжелую работу, вдохновение, креативность и прогресс.
Если вы не рискуете и делаете это в ближайшее время, вы в конечном итоге успокоитесь, и вы не сможете продолжать питать свое любопытство и креативность, потому что это философски противостоит вашей текущей группе сверстников.
Совершенство - это отношение и мировоззрение.
Просто знайте, что этот опыт дал вам понимание того, чего следует избегать, внимательно следите за самоуспокоенностью и протекционизмом, чтобы вы могли обнаружить это рано.
В следующем интервью задайте вопросы типа «Какие инновации исходят от ваших сотрудников», «Какие изменения произошли от индивидуального творчества?», «Какие индивидуальные таланты я могу привнести в эту команду?», «Что способствует успеху вашей организации? ? "," Как ваша организация постоянно использует технологические инновации? "... Ответы на подобные вопросы чрезвычайно красноречивы. Многие организации не имеют видения, или те, которые создали видение, ушли, и организация управляется бухгалтерами. Если вы проводите собеседование с директором по технологиям - спросите его, считает ли он организацию технологической компанией.
источник
Если вам не нравится среда, в которой вы работаете, то вы оказываете плохую услугу себе. Вы должны быть окружены людьми, которые имеют схожие интересы и цели, как вы делаете профессионально. Иногда я знаю, что легче сказать, чем сделать, но чувство оглядки назад на несколько лет и ощущение, будто вы потратили впустую свое время, хуже, чем страх пойти на риск.
В качестве альтернативы, если вы хотите развиваться в системе или среде, в которой используются конкретные технологии и / или методологии, я предлагаю вам найти проект вне работы, в который вы можете внести свой вклад. По крайней мере, разнообразие работы в обеих системах удовлетворит потребность в чем-то другом, пока вы находите свое место.
Мне кажется, ты рыба из воды. Найди свое тело в океане и купайся!
источник