T>>Баги нужно срочно фиксить максимум за два часа. K>Если багу можно починить за 2 часа, то код в котором эта бага относительно хорошо написан чтобы его понять, внести правку, оттестировать и проревьювить.
Здравствуйте, SaprXM, Вы писали:
SXM>напади на них SXM>выпотроши весь код втихую сам SXM>а потом покажи как надо, унизь всех
Не поможет. Я в MS так распутал жуткую каку на много тысяч строк, которая реализовывала нечеткую логику линейной проверкой десятков комбинаций условий. Покрыл тестами, отрефакторил data flow, свел в паттерну "проверяем ряд известных предположений, назначаем каждому score, выбираем максимальный", параллельно обнаружил и поправил ряд багов в логике, которые все никак не могли воспроизвести...
Результат — "недостаточное влияние на команду" и ревью ниже плинтуса. А чел, который яростно тыкал палки в колеса и настаивал на переименовании всех переменных, к которым обращался рефакторенный код, и даже не понимал, как оно работает, получил повышение, ибо хороший командный игрок. Да, коммит в итоге не прошел в релизный бранч и был потерян где-то в дебрях внутренних веток, а я стал врагом №1 за то, что раздал партнерам из соседних команд исправленный билд, который работал и не содержал косяков, из-за которых все и затевалось.
Здравствуйте, mgu, Вы писали:
mgu>>>Это менталитет. Ничего личного, я сам такой и каждый раз, приступая к новому проекту, я хватаюсь за пистолет. Ни у кого больше я не видел позывов "разрушим до основанья, а затем", даже у потомков маоистов. A>>Причём тут менталитет? У нас австрал такой был. Нарушил много mgu>Статистическая погрешность.
Где статистика-то?
Со сколькими иностранцами приходилось работать, из каких стран? И никогда никто из этого огромного количества иностранцев не хотел переписать с нуля проект?
mgu>"Обычным людям" непонятна многопоточность и регулярные выражения. Да чего уж там, они не используют тернарные операторы и инкременты, а с приоритетом операций совсем туго, вот и лепят скобки. mgu>Это ещё сильная, я видывал похуже.
Ну то-есть контора не подходит, всё плохо, работу менять тогда только. Я помню топик от вас про работу, если не путаю, поиск был долгий и муторный, получается не вариант. Ну тогда только что-то пытаться сделать, но ваш следующий коммент:
mgu>Я, может, местами и д'Артаньян, но уж точно не дон Кихот.
То есть так, просто поныть, они все плохие и не ценят меня гения?
Здравствуйте, Dair, Вы писали:
D>С 1 числа вот копаюсь в коде, и уже три дня (когда более-менее разобрался в нём) бью себя по рукам от желания переписать ***** вообще всё. D>А тут ещё общаюсь с соседними отделами, которые пишут библиотеки, которые вставляются в разные продукты, в том числе и в один из наших, так там ВООБЩЕ караул.
D>Доктор Форум, это нормально? Это пройдёт? Надо пить Новопассит?.. Или не стоит прогибаться, надо прогибать?.. С одной стороны, я уверен, что, как я придумаю, будет всем лучше (опыты прошлых работ это показывали), но я-то один, а тут десятки умных людей с высшими образованиями.
D>Теряюсь.
Спокойствие, только спокойствие
Если цель карьера-деньги, то не заморачивайся на код, пиши "как тут принято", лучше на митингах светись почаще.
Если все же ты рыцарь в белых доспехах, и хочешь сделать мир чище, а проект — лучше, чем он был до твоего прихода, то:
Главное, никаких революций, иначе сам же можешь пасть их жертвой. А вот постепенное улучшение работает.
Упрощение кода, обкладывание автоматическими тестами, автоматические commit policy
навроде "функция не больше экрана", "код не коммитится без ссылки тикет".
Постараться чтобы всякая "хрень" не разрасталось, ну или по крайней мере, не так быстро.
Нужно поднимать общий уровень команды, почаще проводить код ревью, обсуждения проекта вообще,
посылать людей на курсы, ну и т.п.
А вообще, сложно это.. даже не то чтобы даже просто переписать, а переписать так,
чтобы "апач" твой код понял, почувствовал приемущества твоего подхода для себя, и смог этот код развивать.
И поскольку это "КМК", то еще желательно переписывать так, чтобы твои шефы/коллеги увидели в этом переписывании не наезд,
а возможность роста, конечно же если хочешь задержаться или расти в этой компании. В общем думать о людях.
Здравствуйте, bazis1, Вы писали:
B>Здравствуйте, SaprXM, Вы писали:
B>Результат — "недостаточное влияние на команду" и ревью ниже плинтуса. А чел, который яростно тыкал палки в колеса и настаивал на переименовании всех переменных, к которым обращался рефакторенный код, и даже не понимал, как оно работает, получил повышение, ибо хороший командный игрок. Да, коммит в итоге не прошел в релизный бранч и был потерян где-то в дебрях внутренних веток, а я стал врагом №1 за то, что раздал партнерам из соседних команд исправленный билд, который работал и не содержал косяков, из-за которых все и затевалось.
Дай угадаю, чел был индус или китайец, да? Что значит это "недостаточное влияние на команду"? Надо же наооборот вносить подобные изменения и на их основе обучать команду, т.е. подтягивать уровень команды, а не снижать его занижая планку. Что потом, кстати, говорили прани котрые получили новый билд, но в итоге вернулись на старый?
Здравствуйте, Dair, Вы писали:
D>>>Я тут успешно сменил работу. Теперь работаю в "крупной международной компании" (не шутка). CEM>>У тебя же вроде была своя собственная работа? D>Ты меня с кем-то путаешь. Никогда не было.
Хм, игры делал? Народ набирал?
CEM>>Если, да, то что заставило тебя сменить её да ещё на КМК(крупную международную компанию)? D>Исключительно размер компенсации.
Тоже хорошо. Время человека ограничено, мы не можем на это повлиять, а на зарплату да, можем
CEM>>По теме: если код достаточно модульный, а причины переписать объективные: надо переписать. D>Короче, у меня тут был разговор с руководством. Видимо, всё что есть, будем переписывать вообще с нуля, затачивая под кроссплатформенность. Видимо, на Qt.
D>Так что проехали — легаси будем поддерживать в том же стиле, что есть, пока не будет готова кроссплатформенная версия продукта.
Ааа... какая до боли знакомая ситуация...
Здравствуйте, Kernan, Вы писали:
B>>Результат — "недостаточное влияние на команду" и ревью ниже плинтуса. А чел, который яростно тыкал палки в колеса и настаивал на переименовании всех переменных, к которым обращался рефакторенный код, и даже не понимал, как оно работает, получил повышение, ибо хороший командный игрок. Да, коммит в итоге не прошел в релизный бранч и был потерян где-то в дебрях внутренних веток, а я стал врагом №1 за то, что раздал партнерам из соседних команд исправленный билд, который работал и не содержал косяков, из-за которых все и затевалось. K>Дай угадаю, чел был индус или китайец, да?
Нет, но из одной солнечной страны, о лени и тупости обитателей которой слагаются легенды. K>Что значит это "недостаточное влияние на команду"? Надо же наооборот вносить подобные изменения и на их основе обучать команду, т.е. подтягивать уровень команды, а не снижать его занижая планку.
В больших компаниях это политкорректный вариант для "он мне не нравится" и почти всегда имеет больший приоритет, чем какие-либо результаты. Чел, который подсказывал фигню, был ВНЕЗАПНО земляком лида и водил его по кабакам, оплачивая бухло. K>Что потом, кстати, говорили прани котрые получили новый билд, но в итоге вернулись на старый?
Спросили меня "какого хрена". Так как я к тому времени все понял, то перенаправил к лиду с формулировкой "я человек маленький и такими глыбами не ворочаю", лид ничего внятного не ответил, и через пару итераций тему похоронили. А потом я досидел свой обязательный год до канадского permanent residence и откланявшись сбежал. К огромному удивлению команды, которая была уверена, что я прогнулся по гроб жизни.
Здравствуйте, Antidote, Вы писали:
A>Где статистика-то? A>Со сколькими иностранцами приходилось работать, из каких стран? И никогда никто из этого огромного количества иностранцев не хотел переписать с нуля проект?
Переписать с нуля можно эволюционно и революционно. Можно "хотеть", а можно понимать необходимость. Насчёт количества иностранцев сбился со счёта, работал даже с чернокожим программистом. И только среди наших (к счастью, не большинство) попадаются че гевары.
A>Ну то-есть контора не подходит, всё плохо, работу менять тогда только.
"А других нет".
A>Я помню топик от вас про работу, если не путаю, поиск был долгий и муторный, получается не вариант.
Там причина оказалась в возрасте, который я изменить могу только в резюме.
A>Ну тогда только что-то пытаться сделать, но ваш следующий коммент:
mgu>>Я, может, местами и д'Артаньян, но уж точно не дон Кихот.
A>То есть так, просто поныть, они все плохие и не ценят меня гения?
Не понял связи -- ни д'Артаньян, ни дон Кихот уж явно не гении. И ещё: ни разу не видел, чтобы гениев где-то ценили.
Здравствуйте, CEMb, Вы писали:
CEM>>>У тебя же вроде была своя собственная работа? D>>Ты меня с кем-то путаешь. Никогда не было. CEM>Хм, игры делал? Народ набирал?
Так точно, но в роли наёмного техлида. Теперь я наёмный техлид в другом месте.
B>>>Результат — "недостаточное влияние на команду" и ревью ниже плинтуса. А чел, который яростно тыкал палки в колеса и настаивал на переименовании всех переменных, к которым обращался рефакторенный код, и даже не понимал, как оно работает, получил повышение, ибо хороший командный игрок. Да, коммит в итоге не прошел в релизный бранч и был потерян где-то в дебрях внутренних веток, а я стал врагом №1 за то, что раздал партнерам из соседних команд исправленный билд, который работал и не содержал косяков, из-за которых все и затевалось. K>>Дай угадаю, чел был индус или китайец, да? B>Нет, но из одной солнечной страны, о лени и тупости обитателей которой слагаются легенды. K>>Что значит это "недостаточное влияние на команду"? Надо же наооборот вносить подобные изменения и на их основе обучать команду, т.е. подтягивать уровень команды, а не снижать его занижая планку. B>В больших компаниях это политкорректный вариант для "он мне не нравится" и почти всегда имеет больший приоритет, чем какие-либо результаты. Чел, который подсказывал фигню, был ВНЕЗАПНО земляком лида и водил его по кабакам, оплачивая бухло. K>>Что потом, кстати, говорили прани котрые получили новый билд, но в итоге вернулись на старый? B>Спросили меня "какого хрена". Так как я к тому времени все понял, то перенаправил к лиду с формулировкой "я человек маленький и такими глыбами не ворочаю", лид ничего внятного не ответил, и через пару итераций тему похоронили. А потом я досидел свой обязательный год до канадского permanent residence и откланявшись сбежал. К огромному удивлению команды, которая была уверена, что я прогнулся по гроб жизни.
ну у вас походу был особый вариант, зажратый при том по баблу и бенефициям
российским реалиям хоть это к счастью чуждо (в основном)
Здравствуйте, mgu, Вы писали:
mgu>Переписать с нуля можно эволюционно и революционно. Можно "хотеть", а можно понимать необходимость. Насчёт количества иностранцев сбился со счёта, работал даже с чернокожим программистом. И только среди наших (к счастью, не большинство) попадаются че гевары.
Может просто только с нашими были близкие доверительные отношения, и они говорили, то что думали
A>>Ну то-есть контора не подходит, всё плохо, работу менять тогда только.
mgu>"А других нет". mgu>Не понял связи -- ни д'Артаньян, ни дон Кихот уж явно не гении. И ещё: ни разу не видел, чтобы гениев где-то ценили.
Просто непонятно, к чему было изначальное ваше сообщение? ТС просил совета, ваш совет: "смириться и не рыпаться"?
Здравствуйте, Antidote, Вы писали:
mgu>>Переписать с нуля можно эволюционно и революционно. Можно "хотеть", а можно понимать необходимость. Насчёт количества иностранцев сбился со счёта, работал даже с чернокожим программистом. И только среди наших (к счастью, не большинство) попадаются че гевары.
A>Может просто только с нашими были близкие доверительные отношения, и они говорили, то что думали
Никакой связи. Зато китайцы от одного слова "рефакторинг" выражали оскорблённость религиозных чувств.
A>Просто непонятно, к чему было изначальное ваше сообщение? ТС просил совета, ваш совет: "смириться и не рыпаться"?
Наверно, да: такая ситуация типична, а за попытки улучшить мир отведут на Голгофу.
Кстати, в свете способа разрешения проблемы (переведём всё на %модная технология%), мой совет бессмыслен -- это совсем другая песня, к рефакторингу отношения не имеющая.
Здравствуйте, mgu, Вы писали:
mgu>Никакой связи. Зато китайцы от одного слова "рефакторинг" выражали оскорблённость религиозных чувств.
Мне редко встречаются китайцы-программисты, про них не могу сказать ничего.
A>>Просто непонятно, к чему было изначальное ваше сообщение? ТС просил совета, ваш совет: "смириться и не рыпаться"? mgu>Наверно, да: такая ситуация типична, а за попытки улучшить мир отведут на Голгофу.
Хорошо, что не все так думают.
mgu>Кстати, в свете способа разрешения проблемы (переведём всё на %модная технология%), мой совет бессмыслен -- это совсем другая песня, к рефакторингу отношения не имеющая.
Да ТС не один же такой, тут много заинтересованных лиц читают
И как правильно тут уже говорили — модные технологии тут не помогут, если та же команда. Перепишут всё так-же, но "модно"
Здравствуйте, Antidote, Вы писали:
A>Мне редко встречаются китайцы-программисты, про них не могу сказать ничего.
А мне разве что ближневосточные (не считая израильских) программисты не попадались.
mgu>>Наверно, да: такая ситуация типична, а за попытки улучшить мир отведут на Голгофу.
A>Хорошо, что не все так думают.
Хорошо, но я лично нацеливаюсь на результат, не перед всеми стоит метать бисер.
A>И как правильно тут уже говорили — модные технологии тут не помогут, если та же команда. Перепишут всё так-же, но "модно"
Это смотря какая цель. Бывает, что старые пердуны никак не могут слезть со своего Вижуал Бейсика, а молодые от него воротят нос. И нужен человек, который позволит омолодить коллектив. И тут появляюсь я, весь в коричневом.
Здравствуйте, mgu, Вы писали:
A>>Хорошо, что не все так думают. mgu>Хорошо, но я лично нацеливаюсь на результат, не перед всеми стоит метать бисер.
Да всё правильно, просто на работе мы проводим 8 часов в день, и если всё это время "терпеть и не высовываться" — как-то грустно всё совсем выглядит
A>>И как правильно тут уже говорили — модные технологии тут не помогут, если та же команда. Перепишут всё так-же, но "модно" mgu>Это смотря какая цель. Бывает, что старые пердуны никак не могут слезть со своего Вижуал Бейсика, а молодые от него воротят нос. И нужен человек, который позволит омолодить коллектив. И тут появляюсь я, весь в коричневом.
Здравствуйте, Dair, Вы писали:
D>Здравствуйте, CEMb, Вы писали:
CEM>>>>У тебя же вроде была своя собственная работа? D>>>Ты меня с кем-то путаешь. Никогда не было. CEM>>Хм, игры делал? Народ набирал?
D>Так точно, но в роли наёмного техлида. Теперь я наёмный техлид в другом месте.
Нет вжизни щастья
А работа интересная? Интереснее же вроде делать игры самому? Иначе работа в game development ничем не отличается от других областей IT?
upd: Опять же проблема старого кода почти полностью отпадает
Здравствуйте, bnk, Вы писали:
bnk>Спокойствие, только спокойствие
+100500
bnk>Главное, никаких революций, иначе сам же можешь пасть их жертвой. А вот постепенное улучшение работает.
Это действие верно в любом варианте, но только для "начального этапа" (aka "испытательный срок" порядка трёх месяцев).
Далее, когда прошло полгода или год на новом для тебя месте, это место уже не совсем новое для тебя,
ты уже находишся "в зоне комфорта", вот тогда — нужно принимать решение:
Или двигаемся экстенсивно и далее, или (хотя бы на каком-то из направлений) действуем интенсивно.
Второй вариант (интенсивный) предпочтительнее для твоего творческого роста.
bnk>Упрощение кода, обкладывание автоматическими тестами, автоматические commit policy bnk>навроде "функция не больше экрана", "код не коммитится без ссылки тикет". bnk>Постараться чтобы всякая "хрень" не разрасталось, ну или по крайней мере, не так быстро.
Эти действия правильнее предпринимать когда:
1) Ты достаточно хорошо разобрался как в стеке технологий, принятыз на проекте, так и в проектных решениях;
2) Твой авторитет в коллективе вырастет.
Как подсказывает мой личный опыт, это происходит примерно через 5-6 месяцев работы над проектом (где-то раньше, где-то и позже).
bnk>Нужно поднимать общий уровень команды, почаще проводить код ревью, обсуждения проекта вообще, bnk>посылать людей на курсы, ну и т.п.
+100500
Это верно, но здесь также следует действовать без фанатизма
Сразу же ломать устоявшуюся систему — не нужно.
bnk>А вообще, сложно это.. даже не то чтобы даже просто переписать, а переписать так, bnk>чтобы "апач" твой код понял, почувствовал приемущества твоего подхода для себя, и смог этот код развивать.
Для этого, нужно не просто предоставить этот подход, но и суметь "на пальцах" разъяснить этому "апачу" все его приемущества...
Здесь есть такой момент: пока сам "чуешь нутром" приемущества твоего подхода, но не в состояниии (по каким-либо причинам)
разъяснить это коллегам из твоей команды — подожди, созрей сам, и тогда — действуй!
bnk>И поскольку это "КМК", то еще желательно переписывать так, чтобы твои шефы/коллеги увидели в этом переписывании не наезд, bnk>а возможность роста, конечно же если хочешь задержаться или расти в этой компании. В общем думать о людях.
+100500
Здравствуйте, Skorodum, Вы писали:
L>>- Спрашивать в деталях, что за проект и в каком он состоянии до оффера S>+1 S>Я прошу показать пример текущих задач и как они выполняются, последние коммиты.
И что, показывают?
Или уклоняются под разными предлогами и обходятся словесным описанием? "Ну что вы, у нас самый качественный и самый хороший код, используем все паттерны, юнит-тесты, и вообще всё по новейшим технологиям".
А потом выходишь на работу, смотришь код, и...
Здравствуйте, antonio_banderas, Вы писали:
_>Здравствуйте, Skorodum, Вы писали:
L>>>- Спрашивать в деталях, что за проект и в каком он состоянии до оффера S>>+1 S>>Я прошу показать пример текущих задач и как они выполняются, последние коммиты. _>И что, показывают?
Обычно — да. Почему бы и нет?
Сам по себе старый код куда меньшая проблема, чем желание обмануть или не желание меняться.
_>Или уклоняются под разными предлогами и обходятся словесным описанием? "Ну что вы, у нас самый качественный и самый хороший код, используем все паттерны, юнит-тесты, и вообще всё по новейшим технологиям". _>А потом выходишь на работу, смотришь код, и...
Мне такое не встречалось, обычно по собеседованию более-менее понятно чего ожидать.