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