Я с вами где-то глубоко в душе согласен, надо было бы в теории не так. Но увы — теория с практикой в этот раз разошлась, о чем и суть баек.
Я с таким же успехом могу рассказать, как соседний бангалорский тим в это же время (но из соседней лавки) — на лету ловил мои пропозишены, активно внедрял их, и пел мне осанну на всех митингах… Работа получилась весьма продуктивной, заказчик остался и нами и ими очень доволен…
И да — революция была и в этом случае тоже, но в отличие от байки — сугубо управляемой и проводилась силами основного тима, мы им просто помогали.
Не должно быть никакой революции
Извините, не удержусь. А ответ вы мне нащелкали на счетах? ;-)
Видите ли, я уловил вашу нелюбовь к резким движениям. Но это ведь реальность, данная нам в ощущениях.
Другими словами, если бы упоминаемый мной бангалорский дрим-тим был бы способен сам эволюционировать и развивать бы свое решение, то я бы рядом с ним не появился бы никогда. Просто незачем.
Но эти странные люди не смогли даже поддерживать его.
Поэтому я и веселюсь в комментариях — о чем вы? Кому там было рассказывать, очередному Брахмапутре, который на предложение «у вас вот этот метод вызывается 20 раз в течение запроса, и каждый раз ходит в БД за одним и тем же, давайте закэшируем первый результат в рамках реквеста» идет в википедию почитать о чем ему вообще сказали? А потом отвечает «а у нас кэша нет!».
Офигеть. Я знаю что его нет — поэтому я к нему и пришел! Итог — полтора месяца митингов в скайпе. После чего наш Брахмапутра вставил присланные ему кусочки кода в указанные места, бодро отчитался о невиданном прогрессе, и тут же меня облил помоями — мол это он великий и могучий все сделал, он бы сделал быстрее, просто я ему мешал своими звонками.
Все изменения должны происходить с участием команды, которая работает над проектом.
Вот я и интересуюсь — каковы ваши рекомендации, если «команда которая над проектом» не хочет моего участия несмотря на явное требование собственного менеджмента? И что смешно, не хочет ровно потому, что
Если делаете отдельно новую версию другой командой, основная команда должна быть в курсе
и прекрасно понимает что это сигнал паковать вещички ;-)
Тогда и полгода превратятся в пару месяцев
Не превратятся.
Как показали дальнейшие события — в пару лет без результата. Я ведь не зря рассказал что дрим-тим потом создавал своими силами компетитора моего решения, имея к моему доступ вместе с сырцами, и — не смогли.
и технических проблем при переходе будет меньше, и изменения в новую версию будут вноситься быстрее.
Ладно, уговорили, контрольный в голову.
Получив доступ к моим сырцам, дрим тим первое что сделал, так это купил себе книжки «Java for dummies». ;-) Читать про «что такое генерики».
Что именно, как страничка с TinyMCE двадцать минут открывается? ;-)
А так-то я байки у костра рассказываю не о прототипе, а о новом решении взамен старого. И кстати часть задач на новое не переедет никогда, ибо незачем ;-)
«Залить файлы» это вообще никак не бизнес задача. Почему вы просили их это сделать и зачем?
(смеется) Мне надо было продемонстрировать работающую интеграцию между двумя системами. Напомню, речь про CMS — в которую надо было залить админкой (что я и сделал) пару заранее подготовленных примеров. Которые мы на деме потом раз — взяли, два — обработали, и три — результат рядом положили.
Казалось бы — чего проще… Но индусский дрим-тим решил что им обидно — бюджет прошел мимо их плошек с рисом.
Они потребовали
1. Прямо сейчас
— их участие в работе минимум на 2 недели всего тима,
— снять или сдвинуть их текущие задачи, по которым был завал и ахтунг,
— и им плевать что дема завтра. «Переносите!»
2. In strategic vision,
— переделать мое решение так, чтобы их CMS была не «одно из мест с которым работаем», а центральной частью более крупной системы, и чтобы без их CMS ничего не работало,
— и чтобы переделку делали они.
Ну а чтобы мне было легче на все согласиться, на время моего показа индусский сервак «внезапно упал», типа случайность, так совпало.
А укатал я их на том, что я ожидал такую пакость и заранее сделал себе клон их системы. Так что у меня показ прошел на ура. ;-)
Одна из причин… в том, что с этой команды спрашивают за каждую мелочь.
Это бывает. Но далеко не всегда оно вызвано самодурством заказчика.
Например, я видел и такое — в команде настолько упал уровень компетенций и настолько вырос пофигизм, что заказчик был вынужден профилировать своими силами запросы к БД, вызванивать «команду» и постоянно их спрашивать — а почему запрос «верните первых 20 отчетов за вчера» выполняется пять минут и в нем восемь джойнов и все full row scan'ом?
А в ответ слышалось «мы это напряжемся и посмотрим».
Добавлю вишенку на тортик — БД была всего пару гигов размером и полностью помещалась в ОЗУ мега-сервера, на котором крутилась.
Я бы на месте заказчика к индусам пришел бы не с вопросами, а с огнеметом ;-)
… после того как другие продемонстрировали результат.
А так — все было прекрасно, клиенту продавались часы по суппорту древнего легаси, все супер. Все замечательно. Не надо раскачивать лодку, у нас все по науке. У нас аджайл, спринты и бэклог на полгода вперед. Подумаешь, редактор отчета открывается в браузере двадцать минут. И печатается этот отчет полтора часа.
Дошло до того, что у клиента его клиенты отказывались продлевать контракты, не говоря уж о подписании новых. Главное условие — добиться хоть чего-нибудь работоспособного.
Команде дают карт-бланш, помощь и неограниченный бюджет. Итог — в работу вовлечено 400 мидл/сеньор на жаве, а проблемы все те же.
Но после нас, варягов, того как мы за полгода выкатили рабочий пруф, а за год сдали систему в эксплуатацию вдесятером — да, «мы тоже могли переписать» ;-)
Ну и как это бывает, я крепко кое-каким топ-топам наступил на мозоль. Так что старую команду (ее костяк) подобрал соседний департамент, и мечта сбылась! переписывание старой командой было инициировано. Выделено было все запрошенное… когда я последний раз интересовался пару лет назад, индусский тим все еще «переписывал».
Вам говорят, что правильный вариант — это вносить изменения всей командой, чтобы все были в курсе, а вы упорно его игнорируете
Ага, /me себе представил как это должно было выглядеть ;-)
В качестве аналогии, допустим у вас есть древний легаси написанный на коболе. И вот «команда» получает палкой по жопе и вынуждена переехать на жаву со спринг бутом. Медленными изменениями. И только в те части, которые касаются непосредственных задач!!!
;-)
Добавьте еще что у самой «команды» нет желания и компетенции для подобного рывка (это у бизнеса проблемы, а у команды все прекрасно). Ну как, варианты просматриваются? ;-)
Вот именно, самым правильным будет старую команду выставить на мороз (но плавно, чтобы не потерять накопленных знаний!), на их место взять новую (это и есть варяги), которые и совершат нужный рывок.
У новых — возникает переходный период, когда еще тянем старое (на которое тратится 90% усилий ибо бизнес отключиться не может и параллельно лепим новое. В новой команде, все в новом участвуют, все в курсе, и ждут переход как манны небесной.
Но тем не менее — у революции есть имя и фамилия. Или если хотите — Тот Кто Сделал Переход Целесообразным…
А вы мне про что? Что я 10 лет назад все сделал неправильно? ;-)
и продукт уходит клиенту. Который его съедает, или понадкусывает и все.
Так а что тут не так? Я когда барбекю делаю — это с целью потом алчно сожрать вместе с гостями и домочадцами. А вовсе не для фоток в инстаграмчик. Почему это вдруг трагедия? ;-)
Да, много типовых проектов — это интермордие к базе и отчеты. Но чем они плохи? Пожарил картофана, вточил с огурчиком… что-то я по ходу проголодался. ;-)
всей команде все равно придется обновлять знание кода в проекте.
Я сразу сказал нехорошее про зайцев Agile (С) :-)
Оно-то да, бывает, что «команде некогда», ей проще и выгоднее продолжать лепить код как им лично удобнее, и продолжать не выполнять задачи бизнеса. А когда их из болота специально нанятые варяги вытаскивают — кривят нос, и стараются «убедить (всех окружающих) вносить изменения постепенно и только в те части, которые касаются непосредственных задач» (С). ;-)
Я неоднократно наблюдал такие вот «команды», которые (сидя годами — и кивая с умным видом про сложности) фактически занимались пустой работой.
Самый сюр был — когда от одной такой команды потребовалось залить два моих файла в их CMS. Два часа (!) меня и бизнес убеждали (всей командой, 15 рыл!) как это трудно и почему это занимает «всего» две недели. Целый спринт под это дело нарисовали, распланировали, утрясли сроки, поставки…
В конце этого цирка-шапито я им так и сказал — ребята, вы были невероятно убедительны. Я даже вам поверил. Но есть один малюсенький нюанс. Пока вы рисовали свои картинки по скраму, я сам попробовал. Спасибо за позитив, но уже все готово.
И когда через полгода вся команда была уволена в полном составе, вместе со своими скрам-мастерами и аджайл-паладинами, я почему-то не удивился.
А потом меня еще спрашивают — за что я не люблю индусских аутсорсеров ;-)
Главное — это команда!!! Команда — которая дает результат с ожидаемой скоростью и ожидаемым качеством. А не сама по себе в вакууме ;-)
Извините, что влезаю, но это адЪ и свинья бизнесу.
И еще какая! Знали бы вы в чем именно она состоит ;-)
взять уже готового мидла/сеньора на условной жабе
Почему бы и не взять условного мидла/сеньера? О, это была давняя история.
В далеком уже 2010 году зовет меня сеньер-випи одной большой лавки, и говорит — слушай, что-то надо делать! Мы «еще мидла» берем-берем, а результаты все хуже.
У нас уже
— в NY 50
— в Гонконге 100
— в Бангалоре 400
— и еще мы подключаем китайский офис с 800.
И вся толпа ну просто офигеть какие «суньеры с мидлами на условной жабе», а вот этот список (пол-странички текста) требований клиента мы закончим месяца через три всей толпой. Если очень повезет. А надо — к пятнице.
Надо что-то делать — модель «добавить еще» себя полностью исчерпала. Да, ты пятый менагер которому я ставлю задачу, предыдущих четыре — ну вот их успехи, список выше. И с прищуром так — а тебе сколько суньеров с мидлами надо?!
Ни-ни-ни, говорю, задача сложная, комплексная, мы пойдем другим путем! Начнем с бузинес-анализа, возьмем часть текучки себе — ну, чтобы понять что вообще происходит, и только после этого выйдем с решением. Есть пара идей…
Дальше пообщались с теми кто пилил «вотпрямщас», подключились, разобрались, выяснили где «жмет» и почему, и только после этого был геройский заход.
По итогу, китайский офис так и не подключили, бангалорский — расформировали, перевели клиента с стека 20летней давности на более современный, и много чего еще хорошего удалось сделать.
У клиента клиента — вместо 200 человек осталось пять. То что делалось три месяца — стало занимать неделю, многие задачи стали делаться мгновенно, нам остались только задачи которые ранее не решались вообще, никак, и никакими силами.
Я несколько лет работал в условиях подобного «своего DSL», и когда его заменили нормальной джавой, все очень сильно с облегчением вздохнули.
Это чаще бывает, да. Когда его рисуют потому что «я так вижу» и «модно». Но бывают случаи когда надо ;-)
Вы так говорите, как будто ваш герой что то хорошее сделал.
Ха, и еще какое хорошее ;-)
Долго, планомерно, с тестированием, документацией, и все этого события ждали как воздух — и сам дрим тим, и лид, и менагеры, и клиенты.
Особенно писал кипятком радовался клиент — вместо "верните бабло, рукожопы!!!" мы услышали "как вы умеете работать!!!".
сильно больше времени, чем 1 ночь кодинга.
Какая «ночь кодинга»? Это была планомерная работа длинной в полгода! В этом и суть.
и только в те части, которые касаются его непосредственных задач
Это и была задача героя. Выкинуть весь угар и содомию, и заменить на. С минимальным простоем дрим тима. Блестяще справился, к слову.
Вы скажете — да ладно, что за сказки? Что наш герой такого лобзиком выпилил?!
Было: толпа народу в кровавом ентерпрайзе постоянно пилила бизнес кейсы, по аджайлу со скрамом. Вжик, вжик! Долго, муторно, с овертаймом, с периодическими «херак в продакшен». Не один год кстати вжикали.
Стало: свой рантайм со своим DSL, со всеми биндингами к модели данных, в чисто функциональном стиле, с lazy вычислениями и прочими плюшками. В итоге, то что занимало неделю у троих — стало занимать час у одного. Основная часть «вжиков» переехала из огромных простыней в мелкие скрипты.
Экстенсивный характер («нам надо больше веспен газа народу на юнит-тесты») был сменен интенсивным.
Внезапно, описанный мной случай перестал быть выходкой джуна, да? ;-)
В том-то и сила нашего героя, что он в процессе доделки своего Scripting Engine постоянно следил за коммитами команды, и параллельно их фиксы переносил на свою версию.
Кстати это наглядно демонстрирует мощь решения, ведь под конец герой не только по 8 часов в день тестил, фиксил, документировал, но и еще и успевал перетаскивать в новый вид свежую бизнес логику.
Вот и получается, что часто разменивается молодость и запал на проекты, в которых не особо ценят человека. Несколько лет с обесцениванием серьезных усилий талантливого человека — и да, вот оно, выгорание и непонятки со смыслом «а зачем это всё?»
Я как-то видел чудесное — вот сидит тим, пилит нетленку, 10 рыл. Лид, крутейший ДБА, офигенский «архитект», пара сеньоров с большим опытом… и пятеро джунов. Молодые, активные, талантливые.
И вот ДБА с лидом и сеньорами приходят с утра на работу… ДБА рисует очередной create table, лид распечатывает (не шучу! на бумагу!) новую ER-диаграмму, раздает сеньорам… и те с бумажки (!!!) набирают очередной набор доменная модель — репозиторий — сервис…
Зато в 13:00 стартует сервак «квейка», и вся эта многоопытная шатия-братия с удовольствием валяет дурака строго до 14:00. Потому что в 14:01 робот игрища выключает ;-) Ну и работа строго с 9 до 6.
А в это время джуны стройными рядами атакуют амбразуру, с раннего утра до поздней ночи клепают Очень Важный Портал клиенту, на работе проводя все выходные.
Вы скажете — что за херь? Почему так?
Да элементарно — молодежи навешали на уши лапши про «прорывные технологии», «особую важность» и «перспективы роста». Вот те и стараются.
А опытные — ржут и не парятся. Уже каждый сделал по 10 таких особо Важных Проектов тому же клиенту, и хорошо знают — что и кому надо на самом деле.
А молодежь… откуда им это узнать? Им некогда, они горят на работе. Сначала им надо пройти все стадии (работа на износ, осознание никчемности усилий, прозрение, переход).
Я кстати был одним из тех джунов и тоже горел на работе, как все ;-)
При этом он умудрился в одиночку (!) не просто рефакторнуть весь проект, но и при этом на время рефакторинга — поддерживать его актуальным, не просто перенося коммиты себе в бранч, а их переписывая на новые рельсы. И при этом «работал мало и плохо». ;-)
Вот так однажды пришло с утра 10 рыл, сказало «git pull», и офигело — проект был фактически в одно лицо переписан, но при этом у всей команды еще вчерашние коммиты — были на месте.
Любитель делает то что ему нравится. Профессионалу нравится то что он делает (С) :-)
Ни боже ты мой, я никоим образом не педалирую разницу в наших подходах. Но ведь наше отношение к работе — это только наше отношение. Мотивационная часть, так сказать.
Я когда-то тоже относился к работе по-другому, мне было интересно делать только то что мне нравилось. Но потом как-то мое отношение поменялось… то ли потому что я рос над собой, и от заклепок интегралов переходил к более крупным частям, там и до архитектуры дело дошло… и как-то незаметно мне стало нравиться понимать клиента и решать его проблемы.
При этом шаблоны с интегралами мне по-прежнему интересны. С удовольствием покрутить-поковырять — восхитительно.
(смотрит с недоумением) а откуда тут взялась разница?
Делаю я нечто на заказ или свой проект — разницы нет. Это просто восхитительно — создавать то что потом работает. В этом есть челендж, драйв, позитив! Что может быть приятнее, чем решать (и решить!) задачи клиента? ;-)
А уж создавать свои продукты, так это вообще райское наслаждение. Круче — только в опенсорц коммитить.
А может, они действительно выгорают — нынешние 20летние.
Как известно, в запой уходят в трех случаях. Когда плохо, когда больно, и от нечего делать. В первых двух случаях сидят дома, их мы не видим. А вот «в дрова» на улице — они из третьей категории ;-)
Реально выгоревшим не до эпатажа (а что добился ты? я уже в 22 лежу под пальмой, ничего не делаю!).
20летние уходят из приличных вузов
Я у такого квартирку снимал как раз лет 15 назад ;-) Вот ровно так — отличник и олимпиадник, дом полная чаша, и прочее. Но я окончил ВУЗ с аспирантурой, вджобывая с первого курса, а герой рассказа — снова был «в академе», вечно кайфовал с пивасиком, и думал о смысле учебы — надо оно ему или не надо.
Ни в коем случае, все точно. Решил поддержать — нас уже двое, кому работа в IT нравится ;-)
А писать то же самое в ветку «переписи всепропальщиков» — смысла не вижу. Я таких живьем вижу регулярно.
Случаи они конечно разные бывают. Но на одного «взял столько что не потянул и надорвался» — десяток промахнувшихся.
Сначала типичный герой идет в погромисты, потому что «зряплата большая», а программировать не нравится ну совсем. «Бери от жизни все!» (С) и вообще больше некуда, ага.
Не шучу — так и говорят, что мол в (подставить город-миллионник) врачу никак совсем нельзя заработать на личную жилплощадь, вот помучаюсь, наберу финансовую подушку, построю квартиру, и пойду в мед учиться! Не пошел, кстати.
Или даже так рассказывают — вот помучаюсь в вашем этом погромировании, потерплю, соберу кэш, и открою ларек на рынке. Открыл ларек, теперь вспоминает кранчи как лучшее время в жизни.
Реальные случаи, я таких не один знаю и не два.
Как хорошо что в IT есть люди, которым нравится то что они делают! А то было бы много ларьков на рынке и ни одного программного продукта ;-)
Я с таким же успехом могу рассказать, как соседний бангалорский тим в это же время (но из соседней лавки) — на лету ловил мои пропозишены, активно внедрял их, и пел мне осанну на всех митингах… Работа получилась весьма продуктивной, заказчик остался и нами и ими очень доволен…
И да — революция была и в этом случае тоже, но в отличие от байки — сугубо управляемой и проводилась силами основного тима, мы им просто помогали.
Извините, не удержусь. А ответ вы мне нащелкали на счетах? ;-)
Видите ли, я уловил вашу нелюбовь к резким движениям. Но это ведь реальность, данная нам в ощущениях.
Другими словами, если бы упоминаемый мной бангалорский дрим-тим был бы способен сам эволюционировать и развивать бы свое решение, то я бы рядом с ним не появился бы никогда. Просто незачем.
Но эти странные люди не смогли даже поддерживать его.
Поэтому я и веселюсь в комментариях — о чем вы? Кому там было рассказывать, очередному Брахмапутре, который на предложение «у вас вот этот метод вызывается 20 раз в течение запроса, и каждый раз ходит в БД за одним и тем же, давайте закэшируем первый результат в рамках реквеста» идет в википедию почитать о чем ему вообще сказали? А потом отвечает «а у нас кэша нет!».
Офигеть. Я знаю что его нет — поэтому я к нему и пришел! Итог — полтора месяца митингов в скайпе. После чего наш Брахмапутра вставил присланные ему кусочки кода в указанные места, бодро отчитался о невиданном прогрессе, и тут же меня облил помоями — мол это он великий и могучий все сделал, он бы сделал быстрее, просто я ему мешал своими звонками.
Вот я и интересуюсь — каковы ваши рекомендации, если «команда которая над проектом» не хочет моего участия несмотря на явное требование собственного менеджмента? И что смешно, не хочет ровно потому, что
и прекрасно понимает что это сигнал паковать вещички ;-)
Не превратятся.
Как показали дальнейшие события — в пару лет без результата. Я ведь не зря рассказал что дрим-тим потом создавал своими силами компетитора моего решения, имея к моему доступ вместе с сырцами, и — не смогли.
Ладно, уговорили, контрольный в голову.
Получив доступ к моим сырцам, дрим тим первое что сделал, так это купил себе книжки «Java for dummies». ;-) Читать про «что такое генерики».
рукожопым индусамдругим прихожу ;-)Ну, то есть приходил — байкам примерно 10 лет и больше.
Что именно, как страничка с TinyMCE двадцать минут открывается? ;-)
А так-то я байки у костра рассказываю не о прототипе, а о новом решении взамен старого. И кстати часть задач на новое не переедет никогда, ибо незачем ;-)
(смеется) Мне надо было продемонстрировать работающую интеграцию между двумя системами. Напомню, речь про CMS — в которую надо было залить админкой (что я и сделал) пару заранее подготовленных примеров. Которые мы на деме потом раз — взяли, два — обработали, и три — результат рядом положили.
Казалось бы — чего проще… Но индусский дрим-тим решил что им обидно — бюджет прошел мимо их плошек с рисом.
Они потребовали
1. Прямо сейчас
— их участие в работе минимум на 2 недели всего тима,
— снять или сдвинуть их текущие задачи, по которым был завал и ахтунг,
— и им плевать что дема завтра. «Переносите!»
2. In strategic vision,
— переделать мое решение так, чтобы их CMS была не «одно из мест с которым работаем», а центральной частью более крупной системы, и чтобы без их CMS ничего не работало,
— и чтобы переделку делали они.
Ну а чтобы мне было легче на все согласиться, на время моего показа индусский сервак «внезапно упал», типа случайность, так совпало.
А укатал я их на том, что я ожидал такую пакость и заранее сделал себе клон их системы. Так что у меня показ прошел на ура. ;-)
Это бывает. Но далеко не всегда оно вызвано самодурством заказчика.
Например, я видел и такое — в команде настолько упал уровень компетенций и настолько вырос пофигизм, что заказчик был вынужден профилировать своими силами запросы к БД, вызванивать «команду» и постоянно их спрашивать — а почему запрос «верните первых 20 отчетов за вчера» выполняется пять минут и в нем восемь джойнов и все full row scan'ом?
А в ответ слышалось «мы это напряжемся и посмотрим».
Добавлю вишенку на тортик — БД была всего пару гигов размером и полностью помещалась в ОЗУ мега-сервера, на котором крутилась.
Я бы на месте заказчика к индусам пришел бы не с вопросами, а с огнеметом ;-)
… после того как другие продемонстрировали результат.
А так — все было прекрасно, клиенту продавались часы по суппорту древнего легаси, все супер. Все замечательно. Не надо раскачивать лодку, у нас все по науке. У нас аджайл, спринты и бэклог на полгода вперед. Подумаешь, редактор отчета открывается в браузере двадцать минут. И печатается этот отчет полтора часа.
Дошло до того, что у клиента его клиенты отказывались продлевать контракты, не говоря уж о подписании новых. Главное условие — добиться хоть чего-нибудь работоспособного.
Команде дают карт-бланш, помощь и неограниченный бюджет. Итог — в работу вовлечено 400 мидл/сеньор на жаве, а проблемы все те же.
Но после нас, варягов, того как мы за полгода выкатили рабочий пруф, а за год сдали систему в эксплуатацию вдесятером — да, «мы тоже могли переписать» ;-)
Ну и как это бывает, я крепко кое-каким топ-топам наступил на мозоль. Так что старую команду (ее костяк) подобрал соседний департамент, и мечта сбылась! переписывание старой командой было инициировано. Выделено было все запрошенное… когда я последний раз интересовался пару лет назад, индусский тим все еще «переписывал».
Ага, /me себе представил как это должно было выглядеть ;-)
В качестве аналогии, допустим у вас есть древний легаси написанный на коболе. И вот «команда»
получает палкой по жопе ивынуждена переехать на жаву со спринг бутом. Медленными изменениями. И только в те части, которые касаются непосредственных задач!!!;-)
Добавьте еще что у самой «команды» нет желания и компетенции для подобного рывка (это у бизнеса проблемы, а у команды все прекрасно). Ну как, варианты просматриваются? ;-)
Вот именно, самым правильным будет старую команду выставить на мороз (но плавно, чтобы не потерять накопленных знаний!), на их место взять новую (это и есть варяги), которые и совершат нужный рывок.
У новых — возникает переходный период, когда еще тянем старое (на которое тратится 90% усилий ибо бизнес отключиться не может и параллельно лепим новое. В новой команде, все в новом участвуют, все в курсе, и ждут переход как манны небесной.
Но тем не менее — у революции есть имя и фамилия. Или если хотите — Тот Кто Сделал Переход Целесообразным…
А вы мне про что? Что я 10 лет назад все сделал неправильно? ;-)
Конечно есть. Как же им не есть?
Но есть реальные нюансы, а есть — попытка откусить кусок бюджета при интеграции с вендором другого решения. ;-)
Так а что тут не так? Я когда барбекю делаю — это с целью потом алчно сожрать вместе с гостями и домочадцами. А вовсе не для фоток в инстаграмчик. Почему это вдруг трагедия? ;-)
Да, много типовых проектов — это интермордие к базе и отчеты. Но чем они плохи? Пожарил картофана, вточил с огурчиком… что-то я по ходу проголодался. ;-)
Я сразу сказал нехорошее про
зайцевAgile (С) :-)Оно-то да, бывает, что «команде некогда», ей проще и выгоднее продолжать лепить код как им лично удобнее, и продолжать не выполнять задачи бизнеса. А когда их из болота специально нанятые варяги вытаскивают — кривят нос, и стараются «убедить (всех окружающих) вносить изменения постепенно и только в те части, которые касаются непосредственных задач» (С). ;-)
Я неоднократно наблюдал такие вот «команды», которые (сидя годами — и кивая с умным видом про сложности) фактически занимались пустой работой.
Самый сюр был — когда от одной такой команды потребовалось залить два моих файла в их CMS. Два часа (!) меня и бизнес убеждали (всей командой, 15 рыл!) как это трудно и почему это занимает «всего» две недели. Целый спринт под это дело нарисовали, распланировали, утрясли сроки, поставки…
В конце этого цирка-шапито я им так и сказал — ребята, вы были невероятно убедительны. Я даже вам поверил. Но есть один малюсенький нюанс. Пока вы рисовали свои картинки по скраму, я сам попробовал. Спасибо за позитив, но уже все готово.
И когда через полгода вся команда была уволена в полном составе, вместе со своими скрам-мастерами и аджайл-паладинами, я почему-то не удивился.
А потом меня еще спрашивают — за что я не люблю индусских аутсорсеров ;-)
Главное — это команда!!! Команда — которая дает результат с ожидаемой скоростью и ожидаемым качеством. А не сама по себе в вакууме ;-)
И еще какая! Знали бы вы в чем именно она состоит ;-)
Почему бы и не взять условного мидла/сеньера? О, это была давняя история.
В далеком уже 2010 году зовет меня сеньер-випи одной большой лавки, и говорит — слушай, что-то надо делать! Мы «еще мидла» берем-берем, а результаты все хуже.
У нас уже
— в NY 50
— в Гонконге 100
— в Бангалоре 400
— и еще мы подключаем китайский офис с 800.
И вся толпа ну просто офигеть какие «суньеры с мидлами на условной жабе», а вот этот список (пол-странички текста) требований клиента мы закончим месяца через три всей толпой. Если очень повезет. А надо — к пятнице.
Надо что-то делать — модель «добавить еще» себя полностью исчерпала. Да, ты пятый менагер которому я ставлю задачу, предыдущих четыре — ну вот их успехи, список выше. И с прищуром так — а тебе сколько суньеров с мидлами надо?!
Ни-ни-ни, говорю, задача сложная, комплексная, мы пойдем другим путем! Начнем с бузинес-анализа, возьмем часть текучки себе — ну, чтобы понять что вообще происходит, и только после этого выйдем с решением. Есть пара идей…
Дальше пообщались с теми кто пилил «вотпрямщас», подключились, разобрались, выяснили где «жмет» и почему, и только после этого был геройский заход.
По итогу, китайский офис так и не подключили, бангалорский — расформировали, перевели клиента с стека 20летней давности на более современный, и много чего еще хорошего удалось сделать.
У клиента клиента — вместо 200 человек осталось пять. То что делалось три месяца — стало занимать неделю, многие задачи стали делаться мгновенно, нам остались только задачи которые ранее не решались вообще, никак, и никакими силами.
Это чаще бывает, да. Когда его рисуют потому что «я так вижу» и «модно». Но бывают случаи когда надо ;-)
Ха, и еще какое хорошее ;-)
Долго, планомерно, с тестированием, документацией, и все этого события ждали как воздух — и сам дрим тим, и лид, и менагеры, и клиенты.
Особенно
писал кипяткомрадовался клиент— вместо "верните бабло, рукожопы!!!" мы услышали "как вы умеете работать!!!".Какая «ночь кодинга»? Это была планомерная работа длинной в полгода! В этом и суть.
Это и была задача героя. Выкинуть весь угар и содомию, и заменить на. С минимальным простоем дрим тима. Блестяще справился, к слову.
Вы скажете — да ладно, что за сказки? Что наш герой такого лобзиком выпилил?!
Было: толпа народу в кровавом ентерпрайзе постоянно пилила бизнес кейсы, по аджайлу со скрамом. Вжик, вжик! Долго, муторно, с овертаймом, с периодическими «херак в продакшен». Не один год кстати вжикали.
Стало: свой рантайм со своим DSL, со всеми биндингами к модели данных, в чисто функциональном стиле, с lazy вычислениями и прочими плюшками. В итоге, то что занимало неделю у троих — стало занимать час у одного. Основная часть «вжиков» переехала из огромных простыней в мелкие скрипты.
Экстенсивный характер («нам надо больше
веспен газанародуна юнит-тесты») был сменен интенсивным.Внезапно, описанный мной случай перестал быть выходкой джуна, да? ;-)
В том-то и сила нашего героя, что он в процессе доделки своего Scripting Engine постоянно следил за коммитами команды, и параллельно их фиксы переносил на свою версию.
Кстати это наглядно демонстрирует мощь решения, ведь под конец герой не только по 8 часов в день тестил, фиксил, документировал, но и еще и успевал перетаскивать в новый вид свежую бизнес логику.
И так бывает, да.
Сойдемся на том что это движение ;-)
Я как-то видел чудесное — вот сидит тим, пилит нетленку, 10 рыл. Лид, крутейший ДБА, офигенский «архитект», пара сеньоров с большим опытом… и пятеро джунов. Молодые, активные, талантливые.
И вот ДБА с лидом и сеньорами приходят с утра на работу… ДБА рисует очередной create table, лид распечатывает (не шучу! на бумагу!) новую ER-диаграмму, раздает сеньорам… и те с бумажки (!!!) набирают очередной набор доменная модель — репозиторий — сервис…
Зато в 13:00 стартует сервак «квейка», и вся эта многоопытная шатия-братия с удовольствием валяет дурака строго до 14:00. Потому что в 14:01 робот игрища выключает ;-) Ну и работа строго с 9 до 6.
А в это время джуны стройными рядами атакуют амбразуру, с раннего утра до поздней ночи клепают Очень Важный Портал клиенту, на работе проводя все выходные.
Вы скажете — что за херь? Почему так?
Да элементарно — молодежи навешали на уши лапши про «прорывные технологии», «особую важность» и «перспективы роста». Вот те и стараются.
А опытные — ржут и не парятся. Уже каждый сделал по 10 таких особо Важных Проектов тому же клиенту, и хорошо знают — что и кому надо на самом деле.
А молодежь… откуда им это узнать? Им некогда, они горят на работе. Сначала им надо пройти все стадии (работа на износ, осознание никчемности усилий, прозрение, переход).
Я кстати был одним из тех джунов и тоже горел на работе, как все ;-)
И нет, митинги (спортзал, бассейн, корпоративные танцы вокруг кофеварки и т д) в это время не входят.
Секретов тут нет — надо работать не по Agile :-)
Когда такой «супер» все же был вовлечен в скрам, то — цитирую — «так мало, так медленно и так плохо — я не работал уже лет пятнадцать» ©.
При этом он умудрился в одиночку (!) не просто рефакторнуть весь проект, но и при этом на время рефакторинга — поддерживать его актуальным, не просто перенося коммиты себе в бранч, а их переписывая на новые рельсы. И при этом «работал мало и плохо». ;-)
Вот так однажды пришло с утра 10 рыл, сказало «git pull», и офигело — проект был фактически в одно лицо переписан, но при этом у всей команды еще вчерашние коммиты — были на месте.
А вы говорите — код писать 8 часов в день нельзя…
Ни боже ты мой, я никоим образом не педалирую разницу в наших подходах. Но ведь наше отношение к работе — это только наше отношение. Мотивационная часть, так сказать.
Я когда-то тоже относился к работе по-другому, мне было интересно делать только то что мне нравилось. Но потом как-то мое отношение поменялось… то ли потому что я рос над собой, и от
заклепокинтегралов переходил к более крупным частям, там и до архитектуры дело дошло… и как-то незаметно мне стало нравиться понимать клиента и решать его проблемы.При этом шаблоны с интегралами мне по-прежнему интересны. С удовольствием покрутить-поковырять — восхитительно.
Делаю я нечто на заказ или свой проект — разницы нет. Это просто восхитительно — создавать то что потом работает. В этом есть челендж, драйв, позитив! Что может быть приятнее, чем решать (и решить!) задачи клиента? ;-)
А уж создавать свои продукты, так это вообще райское наслаждение. Круче — только в опенсорц коммитить.
Как известно, в запой уходят в трех случаях. Когда плохо, когда больно, и от нечего делать. В первых двух случаях сидят дома, их мы не видим. А вот «в дрова» на улице — они из третьей категории ;-)
Реально выгоревшим не до эпатажа (а что добился ты? я уже в 22 лежу под пальмой, ничего не делаю!).
Я у такого квартирку снимал как раз лет 15 назад ;-) Вот ровно так — отличник и олимпиадник, дом полная чаша, и прочее. Но я окончил ВУЗ с аспирантурой, вджобывая с первого курса, а герой рассказа — снова был «в академе», вечно кайфовал с пивасиком, и думал о смысле учебы — надо оно ему или не надо.
Видимо не были его родители в курсе передовых китайских методов воспитания ;-)
А писать то же самое в ветку «переписи всепропальщиков» — смысла не вижу. Я таких живьем вижу регулярно.
Случаи они конечно разные бывают. Но на одного «взял столько что не потянул и надорвался» — десяток промахнувшихся.
Сначала типичный герой идет в погромисты, потому что «зряплата большая», а программировать не нравится ну совсем. «Бери от жизни все!» (С) и вообще больше некуда, ага.
Не шучу — так и говорят, что мол в (подставить город-миллионник) врачу никак совсем нельзя заработать на личную жилплощадь, вот помучаюсь, наберу финансовую подушку, построю квартиру, и пойду в мед учиться! Не пошел, кстати.
Или даже так рассказывают — вот помучаюсь в вашем этом погромировании, потерплю, соберу кэш, и открою ларек на рынке. Открыл ларек, теперь вспоминает кранчи как лучшее время в жизни.
Реальные случаи, я таких не один знаю и не два.
Как хорошо что в IT есть люди, которым нравится то что они делают! А то было бы много ларьков на рынке и ни одного программного продукта ;-)