На моем любимом сабреддите CS Career Questions недавно появился пост с многообещающим названием "
How do I manage a senior dev who writes junior quality code and wont listen to feedback?". Суть поста проста: очередной программист пришел на старый проект, охуел от свалившейся кодовой базы и начал ныть, что кругом дураки. Т.к. я недавно тоже влез в сложный код, мне близка сама ситуация, а вот этот конкретный повод для нытья - не очень.
Человекам свойственно принимать все непривычное в штыки, считать его чуждым. Лирическое отступление: лет восемь назад я был в баре с коллегой из Парижа (да, у меня была крайне сложная работа!). Коллега говорил по-английски с жутким акцентом, периодически вставляя французские словечки в наивной надежде, что это поможет его понимать. Эта почти французская речь несомненно относилась к категории чуждого для бравого парня за соседним столиком, и после какого-то стакана он пришел к нам с предъявами вида "ты че, француз бля? ща мой кореш поблюет, и мы вам ебальники бля бить будем!" (спойлер: ни один ебальник не пострадал).
Конечно, этот пример суть гипербола. Но суть та же: просто человек остро реагирует на непривычное. Вернемся к программированию: новый для человека код без контекста (а исторический контекст быстро не уловить) иногда вызывает фрустрацию и разные отчасти деструктивные желания от "переписать все к черту" до "надо бы сделать так, чтобы этого тупицу уволили".
А ведь на самом деле этот плохой, с точки зрения новичка код, плох только субъективно. Что-то действительно не очень, что-то - вкусовщина, что-то - отличные решения, требующие больше контекста. И без этого самого контекста отличать агнцов от козлищ не получится. Потому мораль такая: если ты пришел в проект, и у тебя горит жопа, не спеши устраивать революцию, работай спокойно, вникни поглубже, подумай дважды. Революция подождет какое-то время.
Все это более или менее актуально не только для программирования, но и для всей нашей индустрии - легко могу представить себе похожую историю, например, про маркетинг.