Если у вас имеется собственный бизнес или вы занимаете руководящую должность в бизнес-подразделении относительно крупной организации, тогда вам наверняка приходилось или еще придется иметь с заказной разработкой программного обеспечения.
В начале, как обычно, составляется план с указанием ресурсов, сроков, денег. И, казалось бы, вроде бы ничего сложного: задача небольшая, нужно просто добавить несколько форм и отчет. Но все меняется, когда разработчики называют сроки, которые они никак не могут сдвинуть. Приходится идти на компромисс с неприятным осадком.
В данной статье попробуем разобраться, почему происходит именно так.
Эффект морковки
Для бизнеса и тех, кто не занимается разработкой программным обеспечением, любая система представляется набором функций, которые можно увидеть и пощупать. При этом сложность её реализации ошибочно оценивается по количеству форм и кнопок.
На деле же здесь практически нет корреляции. Большая форма на четыре десятка атрибутов для создания объекта с механизмом сохранения является куда более простой в разработке, если сравнивать с маленьким поисковым окошком, для которого потребуется внедрение поискового движка в систему.
Свеча или лампочка?
На первый взгляд может показаться, что для стандартных задач проще взять готовый инструмент, что правда, если это полностью готовый и переносимый компонент, а не неотъемлемая часть целой подсистемы. Разработчики в действительности часто прибегают к готовым компонентам, однако это ни что иное как программные компоненты, “сухие смеси”, которые нельзя назвать уже готовыми изделиями. Бизнес заказчики ошибочно полагают, что достаточно загрузить и “прикрутить” целую бизнес функцию, однако на деле все обстоит несколько иначе.
Золотая клетка
И есть особый вид систем, служащих для ускорения и упрощения процесса создания сайтов, таких как WordPress, Joomla, Тильда и так далее. Одни доступны сугубо как онлайн сервисы, другие могут быть установлены на сервер с последующей доработкой, поскольку имеется исходный код. Однако важно не забывать о том, что они предназначены для быстрого и простого создания информационных сайтов. При этом то, что обычно подразумевают под “сайтом, сделанном на таком-то движке” - это все еще сложно устроенная информационная система, позволяющая с помощью специального интерфейса просто и быстро произвести настройку некоторого небольшого набора страниц, которые организованы в логическую группу “Сайт компании N”.
Движки для сайтов удобны в использовании и не вызывают нареканий, если ваши задачи не выходят за пределы их стандартных возможностей, то есть если вам нужен просто информационный ресурс с контентом, формой обратной связи, новостями и т.д. Вам не придется заниматься написанием кода, ведь для таких сайтов достаточно взять готовые механизмы и добавить необходимые функции через интерфейс.
Однако все кардинальным образом меняется, когда на горизонте возникает нестандартная задача. Доработка сложных, но продуманных систем обычно требует больших расходов, может привести к поломке того, что они работает. Но самое главное - рано или поздно обусловленные архитектурой ограничения дадут о себе знать.
Так что, нельзя ничего переиспользовать?
Повторно можно использовать программные компоненты, модули и библиотеки, способные ускорить процесс разработки. Даже небольшая, но хорошая информационная система выстраивается по конкретным правилам, обладает понятной архитектурой, а также проектируется с расчет на последующую доработку и развитие. С позиции бизнеса кажется, что это не так важно в сравнении с функционалом, но представьте себе авто с кузовом, к которому намертво приварен капот, где из-за этого для замены масла нужно использовать болгарку и сверлить отверстие.
Заключение
Надеемся, что данная статья помогла вам разобраться. Важно понимать, что разработчики являются в первую очередь рационализаторами, которые обязательно упростят решение задачи, если возникнет такая возможность. Самый оптимальный вариант - никогда не экономить на разработке и обращаться исключительно к профессионалам.