Думаю как выполнить требование :
Программный код должен быть читаем и хорошо задокументирован с помощью комментариев, окружение и зависимости подробно описаны
Можно написать кучу комментариев, но код будет плохо задокументирован. :)
Зависимости описываются в машиночитаемом формате, словами о них не нужно писать. В случае Java это скорее всего будет конфигурация maven. (Кстати, а почему мы именно про Java говорим?).