Они называют это Real World ™ по причине.
99% того, с чем вы столкнетесь в реальном корпоративном мире, будут считаться дерьмом, и на то есть веские причины, которые я объясню. 1%, который не считается дерьмом, со временем станет дерьмом.
# 1 Напиши код, # 2 ????, # 3 Прибыль!
Прежде всего, существуют предприятия, чтобы получать прибыль, они не существуют, чтобы генерировать горы идеально теоретически чистого и чистого академического кода, размещенного в золотых хранилищах совершенства. Даже близко, даже те, кто занимается продажей исходного кода, который они производят.
В деловом мире код - это средство для достижения цели . Если какой-то код решает бизнес-проблему и зарабатывает больше денег, чем стоит на его создание и обслуживание, то это желательно для бизнеса. Использование вас для написания кода является лишь одним из способов получения кода для бизнеса.
Теория 0 - Практика ∞
В идеале техническое обслуживание должно вызывать больше беспокойства, но обычно это не так, потому что в краткосрочной перспективе оно не выигрывает в финансовом отношении. В долгосрочной перспективе программное обеспечение обычно имеет относительно короткий жизненный цикл, особенно веб-приложения, они быстро устаревают и переписываются чаще.
В линейке бизнес-приложений используются те, которые воспринимаются как бесконечные зомби-проекты по многим причинам, основанным на импульсах. Эти проекты на самом деле являются успехом, они продолжаются, потому что они продолжают приносить бизнесу прибыль.
В теории нет разницы между теорией и практикой. На практике есть. - Йоги Берра
Теоретически, идеально спроектированные абсолютно чистые исходные кодовые базы со 100% покрытиями кода должны экономить деньги компаний, на практике это даже близко не приближается к обеспечению чего-либо, близкого к реальной окупаемости инвестиций.
Физика жизненного цикла программного обеспечения
В мире программного обеспечения действует сверхмощная энтропийная сила. Это черная дыра неизбежности, которая обрекает все программное обеспечение на деградацию в Большой Грязь .
Чем дальше вы начнете с BBM, тем лучше, но каждая программная система в конечном итоге получит достаточно времени. То, как быстро вы подходите к 100% энтропии, определяется тем, с чего вы начинаете, и насколько быстро вы накапливаете технический долг и насколько высоки проценты по нему.
Программные системы вырождаются и гниют из- за обслуживания, а не из-за его отсутствия. Система, которая существует годами без каких-либо изменений кода по определению, отвечает всем ее требованиям и целям и является успешной.
Это системы, которые требуют постоянных изменений, потому что они начали ближе к максимальной энтропии, это те, которые постоянно тыкают и подталкивают, и именно обслуживание ускоряет негативные изменения.
Хорошо, достаточно Хорошо, достаточно
Системы с коротким жизненным циклом, такие как веб-сайты, которые постоянно меняются, не выигрывают от дорогостоящего огромного первоначального дизайна, покрывающего 100% кода в модульных тестах, потому что время амортизации слишком мало, чтобы окупить затраты.
Системы с длительным жизненным циклом, такие как упомянутая выше внутренняя линейка бизнес-приложений, также не получают больших инвестиций в модульные тесты с 100% -ным охватом кода, потому что скорость изменения в течение срока службы проекта приближается к константе, близкой к нулю в нелинейная мода.
Вот почему планы окончания срока службы более важны, а системы замены следует планировать так же, как что-то выпускается, а не когда оно прошло через несколько лет и перестало быть таким надежным, чтобы новая система была внедрена.
Насколько я знаю, они не учат BBM, я никогда не встречал недавнего выпускника CS, который знал, что это было, тем более, почему это происходит.
Вот почему Good Enough - это Good Enough , все, что более или менее - нет.
Программное обеспечение трущоб
Есть некие хозяева трущоб по какой-то причине, они получают прибыль от бегущих трущоб, которыми они владеют. Они получают больше прибыли, чем тратят на дополнительное обслуживание разрушенного имущества. Если бы они этого не сделали, они бы разрушили здание и заменили его. Но они этого не делают, потому что дополнительные затраты намного меньше, чем капитальный ремонт или замена всего здания. Есть также клиенты (арендаторы), которые готовы платить за изношенное имущество.
Ни один владелец здания, хозяин трущоб или нет, не собирается тратить деньги на недвижимость только из-за некоторого академического представления о совершенстве, которое не приводит к существенной прибыли над сопутствующими затратами.
Никто из клиентов не будет платить за обновления системы программного обеспечения, которая работает для них приемлемо. Ни один бизнес не собирается тратить деньги только на написание и переписывание кода без ощутимой существенной прибыли.
Microsoft является наиболее доминирующим и успешным программным обеспечением. Windows не начала получать основные переписывания до недавнего времени. И они до сих пор не удалили весь старый код из ядра. Для них это не имеет смысла для бизнеса, люди более чем готовы принять низкий план ожиданий, которые они установили за последнее десятилетие.
Прогноз
Это был образец более 20 лет, в которых я занимался разработкой программного обеспечения. Это не изменится в ближайшее время. Люди не хотят, чтобы это было вне какой-то системы убеждений, это реальность внешних сил в бизнесе. Бизнес влияет на принятие решений, прибыль - не зло, они платят вашу зарплату, краткосрочное или долгосрочное видение не имеет значения, это краткосрочная отрасль постоянных изменений по определению. Любой, кто выступает против достаточно хорошего, чтобы получить прибыль , не понимает бизнес.
Я потратил 15 лет на консультации и очень быстро понял, что достаточно хорошо , все остальное стоило мне денег. Да, я хотел, чтобы все было идеально, но если вы не продаете кодовую базу, что в 99,9999% времени вы продаете решение , весь этот идеально чистый, организованный элегантный код теряется, и вы просто напрасно тратите свое время, вы никогда не получите компенсацию за ,
Прогресс и Надежда
Гибкие методологии - хороший шаг в правильном направлении, по крайней мере, с философской точки зрения. Они обращаются к хаосу и постоянным переменам как первоклассный гражданин и принимают его. Они отвергают догматические практики, признавая, что методологии и практики должны измениться, а также требования и технологии.
Они принимают энтропию, которая возникает из-за нехватки времени или изменения требований, смены персонала и жизнеспособности системы программного обеспечения с концепцией технической задолженности.
Но Agile не панацея, он не изменит фундаментальных законов физики, и кодовые базы сгниют в любом случае. Руководство должно планировать борьбу с гнилью, прежде чем она полностью выйдет из-под контроля и станет неуправляемой.
Agile, когда все сделано правильно, помогает управлять энтропией, замедлять ее, отслеживать, измерять и решать с ней в плановом порядке. Это не остановит!
Карьера Решение
Если это реальная философская проблема для вас, вам, вероятно, следует рассмотреть другие варианты выбора профессии, потому что то, как все устроено, имеет свои деловые достоинства. Проекты с открытым исходным кодом не имеют лучшего послужного списка, и во многих случаях код даже хуже, чем большинство корпоративного кода, который я видел.