15

Ответ на пост «А какая самая большая внезапная боль была у вас на проекте»

Работаю на одном и том же проекте уже лет 8. Проект хоть и был внутренний, но начинался в режиме "бери больше - кидай дальше".

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

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

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

Прошло года два-три. Я сменил на несколько ролей - сениор, техлид, тимлдид, и уже готовился уйти и из лидов...

Пришла новая менеджерка, и решила с понятного начать - навести порядок в JIRA. Она прислала мне таблицу с несколькими сотнями тикетов, которые были созданы мной более полугода назад, но так и не были взяты в работу или закрыты. Говорит - давай закроем, зачем они висят, работу все равно никто не ведет и не будет, а статистика портится.

В таблице было примерно 5% багов с низким приоритетом, остальное - техдолг. Я смотрел в каждый тикет, вспоминая обстоятельства создания его создания, размышляя о проблемах, которые случались на проекте из за описанного в тикете техдолга.

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

А через пол-года примерно началась таки выплата техдолга. )))

Такие дела.

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

Ответ на пост «А какая самая большая внезапная боль была у вас на проекте»

Так вот. Может быть ещё хуже. Когда ты хочешь забрать API... Но его - нет. И даже элементарной CRM - нет... И вообще - у нас тут 200 ГА территории, и 11 юридических лиц. А то, чем все они занимаются - Вас, не должно волновать. Вы сейчас руководитель только одного направления. И что, что законодательство в Вашей сфере требует других форм деятельности? Мы же на территоррии Усть-Ебать-Колымска! Мы как-нибудь договоримся. Что значит, что Вам нужна лицензия на продажу алкоголя??? Это тут не приветствуется! Мы ждём других туристов! Тех, кто по тендеру. Они - трезвенники.

А ты приехал к ним за 1500км..
Как-то так

691

Ответ на пост «А какая самая большая внезапная боль была у вас на проекте»

Самая большая боль у меня была когда я пытался разобраться что делает код, чтобы починить проблемы с производительностью. Нашел метод, на котором было завязано много процессов. И в нем был непонятен GET запрос к бэкэнду(именование там было отдельная боль: tmp, h1, z, pp)
Я решил просто выполнить этот запрос и посмотреть, а что же он возвращает(каюсь, поленился исследовать код в другом проекте). Ну это же GET запрос, получение данных, что может пойти не так -  думал я.
Запустил его. Выполнялся он подозрительно долго, ну бывает, у нас же много процессов на 1C завязанно, тормозит взаимодействие.
И тут слышу возглас начальника "Блядь, кто все заявки удалил".
Потому что этот блядский запрос, сделанный блядским программистом, не был по канонам REST на получение данных. Это был запрос на удаление заявок по GET параметрам, а без параметров он удалял их все. И кстати, он был даже не закрыт авторизацией или доступностью только из внутренней сети.

259

Ответ на пост «А какая самая большая внезапная боль была у вас на проекте»

Ох, самая большая боль, пусть и не внезапная, у меня была по глупости (и неопытности).

Пришёл новый проект, приложение на Flutter, ничего сложного. Но! То, какие элементы отобразить, приходит с сервера. То есть, приходит список описания элементов (палитра цветов, тип, данные), и их надо отобразить на экране. Проект интересный, задумка прикольная.

Мне сказали: вот тебе джун, он будет делать, а ты делай ревью его кода. Ну и на созвоны ходи, чтобы быть в курсе дела.

У меня на тот момент был джун2 на другом проекте, тоже чтобы проверять то, что он написал. И ещё проект, над которым работал уже я сам.

Взялись с джуном1 за проект. Пишу шефу (который за бэк отвечал), говорю, как там бэк будет работать? Чего нам ожидать? Ответ - пока времени на это нет, придумайте сами.
Окей, думаю, ладно. Когда фронт бэку говорит, какие данные нам нужны - нам это даже на руку, нам же нужно всё правильно отобразить, поэтому какие-то цвета (помним про палитру), данные, заголовки, типы, вот-это-вот-всё мы опишем.
Просидели несколько часов вместе с джуном. Рассказываю, вот у нас есть типы - значит нужно получить тип элемента. Разные типы - разное наполнение JSONa, генерики-шменерики, фактори (почти, просто нужный метод возвращает нужный объект в зависимости от типа элемента), расписали, как бы мы хотели это всё видеть. Взяли список элементов из ТЗ. Расписали все JSONы, чтобы упростить работу бэку (и удостовериться, что они будут сверяться и разницы почти не будет).

- Шеф, вот такое сделали, тебе норм бэк сделать?
- Да, окей. Делайте, потом бэк будет.

- Джун1, ты всё понял, что надо сделать?
- Да, спасибо, очень понятно, что и как делать.
- Ну хорошо, вот тебе 50 тикетов, на каждый PR, на каждый я делаю ревью и мерджим. Чем дольше держим код чистым - тем меньше потом будет проблем.

---

Проходит месяц и много замердженных тикетов. И начинается:
1. Джун1 говорит, что практически всё доделал, остальное только с реальными данными за пару дней надо будеть подшлифовать
2. Джун1 говорит, что послезавтра уходит в отпуск на две недели.
3. Шеф говорит, что начинает работать над бэком, но там не совсем так, как мы ожидали.
4. Бэк будет на какой-то CRM, у которой свой формат всего.
5. Сдать надо через неделю.

Приходится самому садиться за проект, разбираться в CRM, разбираться в том, что она присылает (через "прокси" нашего бэка, что тоже усложняет). При подключении библиотеки и парсинге данных приходится делать мапперы между CRM и нашей реализацией, чтобы не с нуля всё переписывать.

Потом начинается продолжается:
1. Вот эти элементы уже не используем

2. Вот эти элементы новые

3. А ещё у нас RichText, но свой, не какой у всех

4. Вот эти элементы бывают разные

5. Цвета не те


В общем, пришлось за джуном, который в отпуске, переписывать часть рендера элементов, фиксить кучу ошибок и недочётов по дизайну.

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


Вот тогда у меня сильно горело. До сих пор горит. Но выводы я сделал.
1. Джуны почти всегда медленнее, чем ты ожидаешь. И ещё более медленные, чем ожидает шеф.
2. Сроки надо умножать на 2-3, не забывать оценивать тесты, и закладывать какой-то процент на переделки, потому что идеально всё никогда с первого раза не получится.

3. Если на тебя вешают то, что ты делать не должен был - то не надо об этом забывать. И если ты приложил все силы, чтобы сдать не свой проект, а начальство недовольно, что всё равно прошли сроки - то это их проблема. Им надо было лучше планировать проект (не зря же проектяк получает деньги).

4. У каждого своя работа. И делать работу за других - прямая дорога к тому, что сядут на шею.


---


В итоге мне этот проект припоминали ещё несколько месяцев в негативном свете, пока я оттуда не ушёл. "Давай, чтобы не как в тот раз", "отчитывайся постоянно, чтобы не получилось как тогда" - если это говорить не джуну, то это вообще не помогает, только давит.


Ну и спутя почти год работы на запрос о повышении зп "потому что жена и ипотека" мне сказали, что "тебе нигде столько не дадут", поэтому через месяц я уже получал в другом месте больше, чем просил там.


Всем крепких нервов! На факапах учатся.

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

А какая самая большая внезапная боль была у вас на проекте

Как-то работал на одном проекте, вроде ничего сложного.

Но вот в коде попался такой комментарий:


"А ключ от АПИ возьмите у Михея"

Фигня вопрос, подумал я.


...вот только как потом оказалось, был один нюанс — ни в проекте, ни в компании Михей не работал. Да и никто из ныне работающих о нём даже не слышал...

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