1. Написание тестов. ✅Задача: написать модульные тесты (программируемые тесты небольших кусков кода, проверяющие их правильное функционирование). Эти тесты помогают выявить баги на ранних стадиях разработки, а в будущем упрощают регрессионное тестирование. В некоторых методологиях разработки модульные тесты пишутся до разработки самого кода.
Проблема: Сам процесс выбора тестов для написания и собственно их написание — очень кропотливый, прибавляющий значительную долю работы к основным задачам.
2. Работа над деталями, которые вам не нравятся. ✅Задача: реализовывать опции, которые вам по каким-то причинам не по душе или попросту не имеют смысла, но на них настаивает заказчик.
Проблема: отложить в сторону свои личные предпочтения и приступить к работе.
3. Работа с чужим кодом. ✅Задача: содержать, отлаживать или улучшать существующее приложение или кусок кода, написанные другим разработчиком.
Проблема: попытаться понять, как работает устаревший код и определить намерения предыдущего разработчика. Задача усложняется, когда разработчик уже далеко, а код плохо написан, почти не имеет комментариев и документации.
4. Нехватка времени. ✅Задача: успеть к дедлайну сделать всё и главное качественно.
Проблема: непридвиденные баги и ошибки в поисках решения которого, можно потерять день эффективной работы.
5. Погоня за технологиями: ✅Задача: делать проекты заказчика следуя их требованиям использовать "последние технологии".
Проблема: Мир IT развивается чуть ли не ежеминутно и разработчики сталкиваются с дилеммой - гоняться за новыми технологиями не возвращаясь к старым, или , наоборот, постоянно севршенствоваться в проверенных но уже постаревших технологиях.