Поделюсь одной из бед-практис из моей работы.
Делаем проект, который включает в себя длинный сценарий вытаскивания, преобразования и сохранения данных.
Где-то на 30% работы аналитика тимлид говорит пускать часть выполненной работы в разработчика, чтобы ускорить процесс.
Предпосылки звездеца:
1. Техрешение не проходило цикла согласования (его в глаза ещё никто не видел ,в т.ч. тимлид).
2. Ещё непонятно как будет работать процесс в целом и не потребуется ли тянуть из запроса на известном шаге 2 данные, необходимые на шаге 9, который не описан.
3. В голове аналитика нет цельной картины работы сервиса.
4. Заказчики продолжают менять точки зрения, некоторые пункты меняются.
5. Нет согласованных фаз проекта.
И вот в этом зоопарке разработчик начинает работу, пытаясь выполнить часть сценария.
К чему это привело:
0. Разраб сразу начинает писать код без прочтения ТЗ.
1. Работа аналитика заафекшено, т.к. ему приходится не работать, а заниматься объяснениями/спорами, уточнениями терминов и прочей обычной работой этапа согласования ТР. И всё это будет повторяться на каждой фазе (хаха, фазе! просто каждый раз, когда у тимлида зачешется), когда разработчик будет приступать к следующему куску сценария.
2. Код будет переделываться под будущие изменения в сценарии.
3. Куча переключений в работе, которые едят 30-40% времени.
4. Все изменения в документации теперь надо делать так, чтобы разработчик это видел. любые изменения в предыдущем сценарии теперь приводят к согласованию с разработчиком.
5. Потом ещё будут тесты)))
6. Разработчику кажется, что в ТЗ кромешный звздец, всё постоянно меняется, что заставляет его прожигать стул.
7. Из-за постоянного звездеца падает мораль, сложнее работать, пропадает желание делать хоть что-то. Из понятного флоу работ процесс превращается в работу с кубиком-рубиком, мозг срочно хочет смотреть котиков. а не вот это вот всё.
8. Все остальные входящие запросы обрабатываются кое-как.
9. Разраб выныривает из контекста в моментах простоя.
При этом следует учесть, что:
1. Никакой business value отдельные куски сценария не несут.
2. В сроки укладывались и без ускорения.
3. Сроки можно было сдвинуть.
4. Заказчикам вообще пофиг на сроки.
А знаете, что надо делать в таких случаях? Вот сейчас расскажу. =)
1. При понимании того, что вам подкинули песца в задачи (сдвигая планы), первоначально надо резко деградировать производительность (привет йога!). Это действие поможет вам не начать без головы бежать с остальными превозмогая планы, не повредить свою мораль и не иссушить мыслительную выносливость.Надо понимать, что когда в ваш нагруженный процесс работы включается ещё 1, 2 или больше процессов, то надо заново производить их приёмку, оценку и планирование. Иначе вам придётся откуда-то взять время и силы. Обычно этими буферами являются ваше личное время и силы на семью, хобби, отдых. Вы начинаете работать в перегрузке.
2. Выдержите первый удар без напряжения. В этот момент все люди, которые побегут в вас с вопросами - первичны. Не пытайтесь серьёзно работать с основной задачей. Ваша тип задач должен переключиться с задумчивой работы на консультирование и планирование. Сложную работу закидывайте за планирование. Кроме того. из-за разнородности первой волны вопросов будет очень сложно параллельно работать и вы попадёте в ловушку из пункта 1, начав забирать силы и время из буфера.
3. Проведите перепланирование. Снова расставьте приоритеты задачам, примерные сроки (НАВСКИДКУ), уведомите окружающих.
4. Если сдали ваш драфт на растерзание разработке, то не стоит ориентироваться на разработчика и его удобство в плане доработки документа. Надо чётко понять, что в этом случае смешали две фазы (написание ТЗ и разработку, а то ещё и тестирование) и пропустили фазу приёмки (согласования). Т.е. меняете документ как вам надо и пофиг что там разработка делает. Пускай у них горит . быстрее поймут, что так делать не надо. В ином случае, появится дополнительная сложность и вы ещё сильнее затормозите и усложните свою работу.
4. Начинайте декомпозировать песца до простых задач, снова выстраивайте последовательность работы с документом.
5. Следите за тем, чтобы не перенапрягаться в такой работе. Как только возникает перегруз - деградируйте производительность до уровня: "ну я могу вам сосисочек сварить, ничего более сложного".
6. Ограничивайте доступ к себе и старайтесь найти спокойное место и угол, чтобы не торопясь развязать клубок сложностей, декомпозировать его, уложить в поток работ и последовательно обработать.