Здравствуйте, профессионалы на аутсорсе!
Прежде чем вы в следующий раз будете кидаться какашками в лоха-программиста, который наворотил непонятно что, давайте-ка я попробую вам что-то объяснить, на примере?
Итак, вы — профессионалы. Вы всё знаете и о проектировании БД, и о жизненном цикле процесса разработки ПО, и хорошо знакомы со всякими умными словами типа ITIL, CM, CASE, и так далее.
И вот у вас очередной проект «Хочу Луну с неба и чтобы вот так вокруг сверкало, сверкало!»
Вы всё грамотно проектируете, рассчитываете, исполняете, внедряете, и всё прекрасно работает. Клиент доволен. Первые пару месяцев. Потом заказчик понимает, что надо бы чуть доработать. И ещё чуть добавить. А вон то переделать. А это заменить. И даже ради такого дела готов вас, лично вас, нанять, чтобы вы дорабатывали, исправляли, поправляли и доделывали. Потому что задачи меняются, бизнес развивается, и надо успевать меняться.
И вот вы уже — штатный программист, постоянно дорабатывающий свою систему. Она расползлась на несколько серверов, обросла кучей модулей и блоков, временными заплатками, которые стали постоянными, и срочными доработками, которые пригодились аж один раз. Несколько смен серверного «железа» — и, задолбавшись каждый раз всё настраивать с нуля, вы переходите к виртуальным серверам, которые можно просто копировать туда-сюда.
Интеграция со сторонними системами — и поэтому у вас одно и то же поле хранится в нескольких форматах для того, того и того случая — потому что проще и быстрее заполнить три варианта один раз, чем преобразовывать форматы «на лету», тормозя систему и рискуя внесением неожиданных ошибок. Да, есть стандартные процессы внесения изменений, но вот это надо сделать сейчас за полчаса срочно, потому что люди уже ждут результат. Да, есть методики разработки баз данных — но с учётом изменений старая схема стала неэффективна, а полный пересмотр грозит потерей важных статистических данных, поэтому тут будет костыль.
Да, оказывается, если чесать правой пяткой за левым ухом то почему-то болит ребро — ну так никто и предполагать не мог, что кому-то когда-то понадобится именно так, а сейчас именно так модно и стильно. Значит, тут будет заплатка. И главное, всё это работает, и работает именно так как хочет заказчик, и завтра будет работать так как он будет хотеть завтра.
Но если посмотрит профессионал со стороны, то он увидит кучу странных нелогичных решений, непонятные взаимосвязи, и вообще, «WTF?!» Да я сейчас быстро вот тут исправлю, тут выровняю, тут переделаю с нуля!
А вы видели когда-нибудь схему строения обычной клетки? Какие-то непонятные структуры, непонятно зачем нужные в таком количестве, ДНК в одном месте, ДНК в другом месте, двойные спирали, митохондрии эти, похожие на влезшую со стороны бактерию, не кодирующие гены… Зачем это всё?! Почему бы не спроектировать сразу нормально, зачем столько костылей и подпорок?!
Это и называется «эволюция», «унаследованные решения».
Ну попробуйте переделайте с нуля. Только быстро — ведь люди уже ждут, а завтра надо будет доработать еще вот такой блок и изменить вон то…