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