Лень допустима, если мы осознаём это и говорим об этом открыто («я не пишу документацию, потому что мне лень»). Но если мы начинаем отрицать свою лень и придумывать правдоподобные объяснения («я не пишу документацию, потому что пишу самодокументируемый код»), то это самообман, который позже выйдет нам боком, и скорее всего неоднократно.
Оправдания нам нужны, чтобы привнести в работу демократические ценности, то есть, безответственность. Если я не писал документацию, потому что было лень, то я виноват, зарублю себе на носу и приму меры, чтобы в будущем такого не было. А в случае «самодокументируемого кода», получается, как бы никто и не виноват. Оно само как-то насраобразовалось. Раз никто не виноват, то и меры приняты не будут. И всё это будет повторяться снова и снова. Не писать же документацию к самодокументируемому коду?
Но вдруг код действительно самодокументируемый? Как отличить эту ситуацию от лени?
Всё просто. Лень — это нежелание делать работу. Если код действительно самодокументируемый, но я всё равно пишу документацию (делаю работу), то это не лень. И в случае реально самодокументируемого кода писать документацию должно быть невероятно легко: если всё понятно из кода, то изложить это на русском языке не представляет труда.
Итого: если мы используем отговорки, чтобы не делать работу — это лень. Если же работу мы всё равно делаем, несмотря на отговорки, то это не лень.