1) Считать "полезный" код довольно сложно.
Моё личное мнение на этот счёт - то, что можно написать не задействуя дополнительные абстракции - лучше писать без них.
Потому что добавлять их в код значительно приятнее, чем потом выпиливать.
И с одной стороны, автотесты можно отлично писать на чистой функциональщине, не используя классы примерно совсем.
С другой стороны, когда добавление простого функционального теста превращается в жонглирование тридатью абстракциями, DTO и интерфесами - ни радости, ни перформанса такой солид не добавляет.
2) Я уже не работаю в аррайвале.
Но вообще, определять критерии успешностей фичей до того, как начинать что-то делать, и потом сверять с результатами - довольно глобальная практика, много где используется. :)
3) Тут всё не так однозначно, на самом деле.
Я писал уже по этому поводу
пост.
Моё мнение по этому поводу - предельно простое.
Давать людям возможность делать что-то "по фану", экспериментировать с инструментами и прочее - хорошая и нужная практика.
С одним большим
но.
Все заинтересованные лица должны понимать, что Вася пилит задачу на новом стэке, потому что фан.
Потому что фан Васи не должен мешать работать другим людям и не должен потом выливаться в геморрой для бизнеса.
Поэтому придти и сказать "Блин, у меня есть пара идей, как напилить кастомную репортилку для наших тестов, вот идея, вот что это даст" - хороший подход.
Предложить это как
один из вариантов решения задачи (с аргументами) - хороший подход.
Если к тебе приходят и говорят "Нам нужны репорты для тестов", а ты просто берешь и садишься писать кастомные репорты, потому что тебе фан - ты не
хороший человек. В первом случае я готов всячески помогать и придумать интересные задачи, что бы человеку было интересно.
Во втором случае я готов всячески помогать, что бы человек реализовывал свои амбиции (игнорируя интересы окружающих) где-нибудь ещё.