user10993758

Привет. Я тимлид в заказной разработке, бэкенд. Пилю сложные штуки, но чаще пытаюсь их починить, чем написать. Недавно наткнулся на канал, где чувак вскрывает замки. Красиво, технично, с комментариями. И подумал — а ведь у нас в ИТ всё то же самое. Только мы вскрываем баги, чужой код, архитектуру, и при этом стараемся никого не обидеть (и желательно не сгореть сами). Так что решил попробовать вести канал. Писать буду про реальную работу тимлидом: без воды, без «успешного успеха», с фейлами, разбором кейсов
На Пикабу
110 рейтинг 0 подписчиков 0 подписок 5 постов 0 в горячем

Что такое MVP и с чем его едят

MVP - это как временный домик для строителей. Вроде всё есть: крыша над головой, дверь закрывается, чайник кипятит. Но вы же не хотите жить в вагончике всю жизнь? MVP нужен, чтобы проверить: вообще кому-то нужно то, что вы задумали? Пользуются? Платят или нет? Если нет, то нафиг вообще тратить деньги на дворец.

Но когда MVP работает - начинается магия

Клиент приходит и говорит:

- А давайте добавим второй этаж. И подвал. И чтобы стены двигались. И чтобы балкон был, но только для премиум-пользователей

А вагончик, он не рассчитан на это. Он трещит, падает, скрипит, и в какой-то момент ты смотришь на код и говоришь:

- Ребята, проще снести и построить нормально. И это не "мы плохо написали", это "мы изначально делали, чтобы проверить идею, а не жить в этом десять лет"

Реальный кейс: клиника будущего

Пришёл к нам как-то заказчик из медтеха: говорит хочу супер-приложение для записи к врачам, со встроенным ИИ, который будет сам диагнозы ставить (2025 на дворе, ну незаконно пока такое вытворять, скажу я вам) и вообще, чтобы бабушка с кнопочного телефона разобралась.

Окей, делаем MVP с оговорками по ИИ: простой интерфейс, запись к врачу, базовая статистика, всё, что нужно, чтобы проверить идею. Пользователи начали приходить, отзывы пошли, вроде круто.

А потом:

- А добавьте видео-консультации. И интеграцию с лабораториями. И чтобы ещё врачи могли между собой чаты вести. А можно ещё в приложении ренген делать?.., шучу...хотя...

В итоге через 8 месяцев мы просто переделали всё заново. Уже с учётом нормальной архитектуры, нагрузки, и с пониманием, что оно реально будет жить

Вывод простой

Хочешь приложение - думай как будто о стройке. Сначала фундамент. Потом коробка. Потом отделка. Не наоборот. Не из соломы. И не "а можно дешевле?". Можно. Но потом не обижайся, что крыша течёт, и соседи по стенке слышат, как ты нажимаешь кнопки.

А ещё найми архитектора, а не дядю Ваню с форума (дядь Вань, прости)

Показать полностью

Народы Вестероса как языки программирования

Ланнистеры как C# - богаты, холёны, под крылом Майкрософта. Идеальны в крупняке, платят за всё (лицензии, ажур и т.д.), везде роскошь. Но за каждым новым фреймворком прячется боль

php был списан со счетов раз за разом - и каждый раз воскрешается: то ларавель, то симфони, то WordPress. Как и железнорождённые, он устаревший и суровый, но живучий в своих водах. Его не любят, но его боятся и уважают - потому что он повсюду

Хотя если проводить такую параллель - то и Белые ходоки - это php. Когда-то давно мёртвый, но каждый раз восстаёт. Бесформенный, хаотичный, но работает. Ты думаешь, что он исчез, но потом кто-то делает сайт на WordPress, и вот он снова у порога. И все время тянется к северянам....

Дотракийцы как C: быстрые, мощные, дикие и не признают сборщик мусора. Память уважают, но обращаться с ней умеют не все. Код на C выглядит как боевой крик. Один неверный шаг и segmentation fault. Но если нужно сделать что-то жёсткое - других не зовут.

Python это Таргариены. Красиво, модно, динамично. Иногда чувствуешь, будто это магия, а не код. Можно оживить драконов (машинное обучение, нейросети, всякое модное). Но если перегреется - может сжечь всё к чертям. Одной строчкой можно сделать как шедевр, так и кошмар.

Старки - Java. Благородны, правильны, живут по правилам, у них всё строго по ООП. Все знают, что «зима близко», но почему-то продолжают использовать. Поддерживают огромные корпоративные проекты и носят дженерики как семейный герб. Вроде бы всё чинно, но когда нужно что-то изменить....

Показать полностью 6
9

Клиент говорит "хочу приложение", а ты слышишь "построй мне дом за еду"

Есть у меня одна любимая метафора: представьте, что вы пришли к строителям и говорите:

— Здрасте, мне нужно здание. Ну такое, универсальное, чтобы и жить и работать и чтобы ещё кафе было. И сауна. И чтоб можно было достроить этажей эдак пять. Пока один этаж, но на будущее.

Строители, конечно, не падают в обморок, привыкшие уже, уточняют:

— А где будет стоять здание? Из чего строить будем? Какая почва? Какой бюджет?

А вы (фантазии же много) такие:

— Да вы сначала нарисуйте! Я вообще думал сам делать, но времени нет. Сделайте красиво. Бюджет — ну как получится. Главное, чтобы быстро!

Вот примерно так начинаются 70% заказных IT-проектов. Клиент говорит: "мне нужно приложение", и ожидает, что это как построить палатку — воткнул палку, накинул брезент, и поехали.

А по факту — это стройка. И очень даже капитальная.

Знакомая картина, да?

0

Когда берешь проект, где последний нормальный коммит был в 2020

Есть такой особенный запах — смесь деревенского туалета, сырости и ностальгии по PHP 5.4. Так пахнет легаси. Настоящее, боевое, годами не тронутое легаси, которое тебе вручают со словами: "Надо чтобы работало". И сразу - "денег на апгрейд нет, но вы там держитесь"

Вообще всё начиналось как обычно. Клиент — серьёзный, наш постоянный, очень хочет порядок. Говорит: "Нам бы просто немного дописать и поправить баги. Код норм, просто старый." Ага. Просто старый. Я бы тоже себя так называл, если бы мне было 103 года и я жил в подвале с мышами.

Что имеем

- микрофреймворк на пыхе

- маршрутизации — как в маршрутке: кто крикнул, того и вызываем

- DI нет, каждый класс через new и с молитвой

- комментариев — 0

- аффтор кода — испарился, возможно из страны

Видели апи контроллер на 5000 строк кода и все завернуто в глобальный трай-кетч, чтобы не дай бог не упало, зато когда подключили сентри - ни одной ошибки, вот люди работают так работают, не то что некоторые.

Первая мысль у здорового человека, все выкинуть и переписать по нормальному. Вторая мысль: а кто это будет оплачивать банкет? Третья мысль: может я всё-таки зря не ушёл в музыку?

Ну и хеппи энд (за пяток лет то изловчились):

- внедрили ооп и более менее нормальный фреймворк (если ларавель так можно назвать)

- модульный монолит жив и терпит хорошие нагрузки, если что модули можно изолировать и уносить (если не терпит)

- обложили тестами, метриками и разными системами логирования (награду в студию - в заказной разработке и такое провернуть, уфф)

- и в конце еще версию пыхи апнули до 8.4 - но это уже другой вайб

Показать полностью

Как я стал тимлидом

Один раз мне просто сказали:
— Попробуй, что ты, не справишься, что ли?
Вот и пробую. Уже почти 5 лет.

Начиналось всё довольно безобидно:
делал себе бекенд на пыхе, потом на го и питоне, ни на что не жаловался, писал себе тихо под музыку.
Потом пришли новые проекты, потом джуны, потом “а кто у вас тут главный?”, потом “ну ты же в теме, давай ты и будешь”.

И в какой-то момент ты замечаешь, что:

  • сам толком не понял ТЗ, а уже объясняешь его команде,

  • начинаешь говорить "мы" про чужие баги,

  • тратишь вечер не на код, а на гугл-док с «дорожной картой» (которую никто не прочитает) и диаграмки из uml,

  • и если кто-то ушёл в отпуск — это, конечно, случилось в день релиза да и у клиента резко появились задачки (эдак на пару недель фуллтайма)

И да, ты по-прежнему не менеджер. Потому что ты всё ещё:

  • дебажишь продакшен в 16:55 - потому что через 5 минут надо уже закругляться

  • деплоишь руками, потому что "ну это быстро"

  • отмазываешь команду от заказчика, который "просто спросил"

Отличная работа, все прочитано!