
Дмитрий
23.06.2018
20:32:04

Sergey
23.06.2018
20:32:13
в итоге у тебя за время сильно меньше чем проект разрабатывался и поддерживался до хотят все то же что и было + пофиксить + больше фич
если на перепись меньше полу года - то тогда проект маленький)

Google

Sergey
23.06.2018
20:33:45
опять же помимо размера/сроков реально интересует как бизнес отнесся к тому что новых фич он N времени не увидит

Дмитрий
23.06.2018
20:33:48

Sergey
23.06.2018
20:33:58

Дмитрий
23.06.2018
20:34:03

Sergey
23.06.2018
20:34:10
6 месяцев, 12 месяцев, больше, меньше
Это не обязательно
то есть перепись в том виде что действующую систему закрываем фасадом и переписываем по чуть-чуть?

Дмитрий
23.06.2018
20:35:24
А в системе что-то торчало наружу? А почему?

Sergey
23.06.2018
20:35:32

Дмитрий
23.06.2018
20:35:43
Как будто что-то плохое
Если фасад в приложении появился исключительно перед рерайтом и ни у кого это не вызвало недоумения, то тут не на что отвечать

Sergey
23.06.2018
20:36:31
что такое фасад в твоем понимании? и опять же что ты понимаешь под рерайтом?
Уди в качестве плохого примера приводит именно полностью новую систему + миграция со старой на новую. Пилится паралельно, не релизится пока не закончат
как крайность

Google

Sergey
23.06.2018
20:37:29
сравни то что делал ты с тем что описывает Уди как эталон неэффективности
и нарисуй различия если они есть
"не релизится" = не внедряется, бизнес все это время пользуется старой системой
и дополни циферками (не человекогоды а период времени)

Дмитрий
23.06.2018
20:39:21

Sergey
23.06.2018
20:40:10

Дмитрий
23.06.2018
20:40:34
То есть проект — монолит, так?

Sergey
23.06.2018
20:40:36
разные репозитории, вся команда пилит новый продукт по сути, старый просто не развивается

Дмитрий
23.06.2018
20:41:05
У тебя неявные допущения построенные на твоем видении проблемы, что все разрабатывают софт так же

Sergey
23.06.2018
20:41:09
тип с нормальной декомпозицией? что ты рерайтил тогда?)
еще раз, у тебя под рукой легаси проект которому лет 7+

Дмитрий
23.06.2018
20:41:42
Это не верно, так как про твои проекты речь не шла

Sergey
23.06.2018
20:41:50
как ты думаешь, какова вероятность что там НЕ монолит, или что этот НЕ монолит разделен нормально?

Дмитрий
23.06.2018
20:41:50

Sergey
23.06.2018
20:42:17
Постарел на два года?
короч ингорирую тебя пока не ответишь на простой вопрос - сколько ты (команда) переписывал проект.
а ну и на всякий - фронтэнд или бэк или все?

Дмитрий
23.06.2018
20:43:28
Вечность. Я отказываюсь сводить диалог к рассмотрению моей трудовой истории, ты можешь начать со своих примеров, а не с меня
Потому что я подразумеваю что свои примеры ты понимаешь лучше чем мои не так ли

Google

Дмитрий
23.06.2018
20:45:40
И ещё, продуктивнее учиться на чужих ошибках
Это я к "предъявите ваш легаси"


Sergey
23.06.2018
20:48:22
мой пример - продукт начал пилиться в 2009-ом году, php, code igniter, запросы в html все как вы любите. В 2012-ом основная команда разбежалась, на поддержке остались 1-2 человека и так все было до 16-ого года когда продукт этот не достался нам.
На тот момент "переписать с нуля" это был бы где-то год-полтора. Продукт на тот момент столько бы просто не протянул (если на момент 2009-ого года у него небыло конкурентов, то в 16-ом году были уже десятки). Все же здоровые продукты так легко не продаются и не меняют команду.
Решение было - переписывать по чуть чуть. "микросервисы" и прочий рак. Опыта декомпозиции систем на сервисы у людей небыло. На тот момент я так же не имел права голоса в вопросах выбора стратегии "как мы будем это фиксить", да и меня с проекта быстро выкинули что бы не мешал.
Итог - 2 года переписывания с плохого php на плохой php, хорошие идеи разбивались о скалы дедлайнов (едиственное что панель управления кастомеров на реакт перевели - и то хорошо), но в целом из-за херовой декомпозиции + херового планирования продукт по итогу умер
больше херовое планирование на самом деле)
еще один проект лично я заруинил в 13-ом году
по причине "не ну проще ж переписать"...
маленький был и глупый
так же не раз собеседовал людей с веселыми историями "решили переписать продукт а через 3 месяца почти всю команду утащили срочно фиксить старый продукт" в итоге балтались 2 версии обе херовые
это почти так же грустно как истории о том как люди 3 года пилили продукт который так и небыл зарелижен


Andrey
23.06.2018
20:55:07
Да, поэтому переписывание продукта с нуля - это утопия( На своём примере убедился.

Sergey
23.06.2018
20:56:28
А я в корне не согласен
Так с чем конкретно ты в корне не согласен? Есть ли у тебя позитивный опыт переписывания легаси проекта который:
- старый
- большой
- тебя позвали просто потому что уже жопа

Дмитрий
23.06.2018
20:56:37
Именно

Sergey
23.06.2018
20:57:10
и до тебя 2 года единственные люди кто пытался что-то сделать, полтора-два джуна

Дмитрий
23.06.2018
20:57:24
Я тебе дописать дал, если что

Andrey
23.06.2018
21:07:31
Я просто не уверен, что есть люди, которые помнят причины каждого костыля в долгих проектах.

Sergey
23.06.2018
21:08:46
но да, хреново что далеко не всегда)


Дмитрий
23.06.2018
21:09:03
Пришёл на проект с многолетним комплексом застарелых проблем, работающий настолько медленно, что был заморожен. Меня позвали потому что я один из немногих кто разбирается в предметной области
Получил карт-бланш на любые изменения под мою ответственность
Первым же делом провёл массовую чистку, запрепроцессил под единый адекватный кодстайл, кодмодами трансформировал всё что трансформировалось и убрал всё что убиралось
Слил разбитые репы в единый монорепозиторий, они по факту всё равно не были изолированными. Объединил с сохранением всех гит-историй, это реально
Менеджмент не давил нереальными сроками
Вся кодовая база подверглась пересмотру, всё, что расценивалось как мусор без сожаления отправлялось в утиль
Первый mvp через месяц, прямо на костях старого проекта
Каждая итерация оканчивалась коммитом с глобальным удалением старого буллщита
Заменил бойлерплейт — бессмысленный но неизбежный код на кодмоды и препроцессинг при компиляции
Реализовал полноценную непрерывную интеграцию, релизный коммит — каждый, проект не должен валяться в разобранном состоянии. Если есть подпроекты — они собираются и разворачиваются аналогично основному в том же ci. Упал билд — фиксим конкретную проблему, а не пилим остальное.
Микросервисы — только со строгим апи, а не как обычно
Да, апи теперь собирается программно, избавив людей от тонны головняка с его поддержкой
Будущие фичи — под флагами, фичи для конкретного окружения — под флагами. Разработка — это не повод публиковать недодел.
Как итог, резкая стадия релиза сменилась постепенной работой над каждой проблемой непосредственно и весь проект был обновлён в минимальные сроки


Andrey
23.06.2018
21:10:06
Пришёл на проект с многолетним комплексом застарелых проблем, работающий настолько медленно, что был заморожен. Меня позвали потому что я один из немногих кто разбирается в предметной области
Получил карт-бланш на любые изменения под мою ответственность
Первым же делом провёл массовую чистку, запрепроцессил под единый адекватный кодстайл, кодмодами трансформировал всё что трансформировалось и убрал всё что убиралось
Слил разбитые репы в единый монорепозиторий, они по факту всё равно не были изолированными. Объединил с сохранением всех гит-историй, это реально
Менеджмент не давил нереальными сроками
Вся кодовая база подверглась пересмотру, всё, что расценивалось как мусор без сожаления отправлялось в утиль
Первый mvp через месяц, прямо на костях старого проекта
Каждая итерация оканчивалась коммитом с глобальным удалением старого буллщита
Заменил бойлерплейт — бессмысленный но неизбежный код на кодмоды и препроцессинг при компиляции
Реализовал полноценную непрерывную интеграцию, релизный коммит — каждый, проект не должен валяться в разобранном состоянии. Если есть подпроекты — они собираются и разворачиваются аналогично основному в том же ci. Упал билд — фиксим конкретную проблему, а не пилим остальное.
Микросервисы — только со строгим апи, а не как обычно
Да, апи теперь собирается программно, избавив людей от тонны головняка с его поддержкой
Будущие фичи — под флагами, фичи для конкретного окружения — под флагами. Разработка — это не повод публиковать недодел.
Как итог, резкая стадия релиза сменилась постепенной работой над каждой проблемой непосредственно и весь проект был обновлён в минимальные сроки
"проект был заморожен". Ключевая фраза твоего рассказа.

Google

Дмитрий
23.06.2018
21:10:28
Ты естественно в курсе, на какой срок?


Sergey
23.06.2018
21:11:08
Пришёл на проект с многолетним комплексом застарелых проблем, работающий настолько медленно, что был заморожен. Меня позвали потому что я один из немногих кто разбирается в предметной области
Получил карт-бланш на любые изменения под мою ответственность
Первым же делом провёл массовую чистку, запрепроцессил под единый адекватный кодстайл, кодмодами трансформировал всё что трансформировалось и убрал всё что убиралось
Слил разбитые репы в единый монорепозиторий, они по факту всё равно не были изолированными. Объединил с сохранением всех гит-историй, это реально
Менеджмент не давил нереальными сроками
Вся кодовая база подверглась пересмотру, всё, что расценивалось как мусор без сожаления отправлялось в утиль
Первый mvp через месяц, прямо на костях старого проекта
Каждая итерация оканчивалась коммитом с глобальным удалением старого буллщита
Заменил бойлерплейт — бессмысленный но неизбежный код на кодмоды и препроцессинг при компиляции
Реализовал полноценную непрерывную интеграцию, релизный коммит — каждый, проект не должен валяться в разобранном состоянии. Если есть подпроекты — они собираются и разворачиваются аналогично основному в том же ci. Упал билд — фиксим конкретную проблему, а не пилим остальное.
Микросервисы — только со строгим апи, а не как обычно
Да, апи теперь собирается программно, избавив людей от тонны головняка с его поддержкой
Будущие фичи — под флагами, фичи для конкретного окружения — под флагами. Разработка — это не повод публиковать недодел.
Как итог, резкая стадия релиза сменилась постепенной работой над каждой проблемой непосредственно и весь проект был обновлён в минимальные сроки
1. то есть ты не "переписывал с нуля" а "чистил существующее".
2. заморозка проекта как бы намекает что в целом "бизнес" не умер без приложения.
3. в целом по результатам твоего "MVP через месяц" у тебя как бы просто почищенное старое приложение.
ТО есть ты говоришь о глубоком рефакторинге нежели "переписать все с нуля"


Дмитрий
23.06.2018
21:11:17
Я переписал всё подчистую
Концепцию, подход, код

Sergey
23.06.2018
21:11:28

Andrey
23.06.2018
21:11:34
Даже не большие - огромные!

Sergey
23.06.2018
21:11:49
ну то есть если приложение было заморожено 2-3 месяца а потом в целом его допиливали уже на живую - это одно. А вот заморозка на год - либо никому продукт не нужен либо и так норм

Admin
ERROR: S client not available

Andrey
23.06.2018
21:12:24
Ну, я не встречался с проектами, которые были разморожены и не требовали доделок по бизнес части больше недели.

Дмитрий
23.06.2018
21:12:35
Этим приложением пользовались уже после первого месяца

Sergey
23.06.2018
21:12:37
потому хотелось бы услышать у @ZeroBias сроки заморозки

Дмитрий
23.06.2018
21:12:46
Я не в инкубаторе жил, ес че, не натягивай

Sergey
23.06.2018
21:12:53

Дмитрий
23.06.2018
21:12:54

Sergey
23.06.2018
21:12:59
это то что он предлагает делать вместо

Дмитрий
23.06.2018
21:13:00
Много выводов сделали?)

Sergey
23.06.2018
21:13:20
я сделал много выводов
в частности что я не буду больше писать tldw

Google

Дмитрий
23.06.2018
21:13:45
Похлопаю
Я не вынуждал тебя вести такую дискуссию, отсутствие тлтр не поможет
Но допускаю что морально тебе конечно станет легче

Andrey
23.06.2018
21:14:45
Я не в инкубаторе жил, ес че, не натягивай
Ну, смотри. Реальная ситуация, которая возникла на прошлой неделе. Есть часть системы, которую начал рефакторить. А тут бизнес сказал, что нужны фичи и ниибёт. И тут и рефакторинг не закончен, и фичи нужны.

Sergey
23.06.2018
21:14:48
Похлопаю
еще раз - то что ты привел - это рефакторинг. Да по итогу все было переписано - но планомерно. Это охеренно важный момент. Бизнес получил улучшения уже через 3 месяца (два месяца на поиски тебя + месяц твоей работы).

Andrey
23.06.2018
21:14:57
И моя ситуация гораздо чаще встречается, чем твоя.

Дмитрий
23.06.2018
21:14:58
Пацаны, холиварить о смысле парадокса корабля тесея — это дно, завязывайте

Sergey
23.06.2018
21:15:20

Andrey
23.06.2018
21:15:22
Да, я конечно послал бизнес в жопу на неделю, чтобы закончить рефакторинг, но это не суть.

Sergey
23.06.2018
21:15:33
или 20%

Дмитрий
23.06.2018
21:15:46
Попробуй представить себе промежуточные ситуации не противорчащие

Sergey
23.06.2018
21:15:58

Дмитрий
23.06.2018
21:16:03
То, чем пользовались люди было новым

Sergey
23.06.2018
21:16:05
я все, ты даже не пытаешься понимать разницу
это не про то что код новый или не новый
а про то что это не разработка продукта ПАРАЛЕЛЬНО
а эволюционное развитие
или ревалюционное если хочешь

Andrey
23.06.2018
21:16:43
В итоге сейчас у нас на фронте франкенштейн из вью и нокаута, но это не на долго.

Дмитрий
23.06.2018
21:16:44
Ага, естественно
А старый код наверное сам собой пропадал, и новые технологии создавались последовательно, в линеечке