Тут багато чудових відповідей. Я хотів би додати:
Коли вам доводиться пояснювати код комусь іншому, часто в процесі пояснення розробник може раптом зрозуміти, що він має помилку. Я бачив, як це знову і знову трапляється, що диявол зупиняється мертвим у своїх слідах і каже "о, чекай, це неправильно", перш ніж рецензент зрозумів річ досить добре, щоб побачити помилку.
Знання вашого коду інспектує хтось інший, дає вам більше стимулів використовувати стандарти кодування (полегшуючи технічне обслуговування) або використовувати менш "ковбойські" методи, які ніхто, крім вас самих (а іноді навіть і ви самі) ніколи не зрозуміє. Ви не хочете, щоб вас бентежило, коли ви показуєте свій код комусь іншому, тому ви в першу чергу краще справляєтеся з цим. Через фактор збентеження він залишає менше коду, коментованого таким чином: "Я не знаю, чому це працює, але з цим не псуюся". в кодовій базі.
Розробники, які потребують більш широкого нагляду або навчання, легко ідентифікуються. Так є і прямо некомпетентні. Чим раніше ви зможете знайти та вирішити проблеми з продуктивністю, тим краще буде команда в цілому і тим вище буде якість програми. Добре дізнатися цю інформацію, перш ніж взяти нового хлопця, якому потрібна підготовка, і призначити його в найважчій, найважливішій частині вашої заявки.
Іноді це просто питання виправлення помилкового сприйняття, яке врятує помилку в купі інших місць. Наприклад, ми нещодавно переглядали деякі SQL для складних звітів і виявили, що у кількох наших нових розробників було таке ж непорозуміння щодо того, де знайти конкретну інформацію в базі даних (правда, місце, яке вони вибрали, здавалося логічним, що є проблемою дизайну бази даних. також потрібно виправити), що було б критично важливим для правильного написання всіх звітів. Виявивши проблему та виправивши її в перших написаних ними звітах, вона врятувала ту ж помилку, що і в інших звітах. І вийшло щось старше (у той час, коли тут працювали не вікові) диви, настільки звикли, що вони не думали, що потрібно пояснювати.
Юніори можуть вчитися на більш досконалому коді, написаному старшими (які, як правило, краще розуміють відловлювання помилок і випадки крайового випадку), а старші можуть вчитися на нових методах, якими користуються юніори, до яких вони ще не піддавалися.
Іноді люди, які працюють над різними, але спорідненими частинами програми, розуміють, що вони йдуть у двох різних та взаємовиключних напрямках. Ой, зараз простіше виправити.
Не так-то просто прокрастися у важко зафіксовані значення, які з часом змінюватимуться лише для того, щоб справа тепер працювала. Це запобігає безлічі майбутніх помилок, таких як речі, які змінюються на початку кожного фінансового року.
Я іноді зациклювався на тому, як щось зробити, і навчився новій техніці, яка була саме тим, чого я хотів, переглянувши код інших речей.
Якщо ви знайомі з тим, як думають інші члени вашої команди (який огляд коду допоможе вам зрозуміти), то пізніше виправити проблеми буде простіше, тому що ви почнете з розуміння того, як Джо підійшов би до такого типу проблема.