+7 495 544-88-61

Почему кто-то может...

Почему кто-то может, а кто-то нет

21.08.2019 / Владимир Шляпин / CEO Сайт Мэйкерс


Представитель крупного российского ритейлера пожаловался вчера в разговоре с нашим CSPO, что их команда программистов никак не может разместить на сайте интернет магазина давно подготовленные 3D-модели товаров. Это было подано мне, как очередная хохма о криворуких и бестолковых программистах... Возможно, в данном случае, все было именно так, но в этой статье я попробую объяснить, почему умные и способные разработчики часто не могут сделать то, что с легкостью дается другим.


Лет двадцать пять назад, я сам часто подтрунивал над теми, кто не мог сделать то, что делал я. Позже юношеский максимализм сменился зрелым пониманием жизненных реалий.

Разработчики часто бывают втянуты в дебри условий, которые им навязывают технически безграмотные руководящие лица или, что бывает чаще и хуже, те, кто платят. И возражать им решится не каждый. Судьба мне подарила счастье делать то, что мне нравится и быть хозяином своих решений, поэтому было не сложно выбирать правильные пути в разработке. Но так везет в этой жизни немногим. Десятки тысяч первоклассных программистов вынуждены вести разработку, изначально обреченную на прискорбный финал, т.к. лица, без должного уровня знаний в программировании, считают себя достаточно квалифицированными, чтобы навязывать профессионалам путь их действий.


Но хватит лирики. Возьмем для примера ситуацию с проблемой о встраивании 3D-моделей в сайт интернет-магазина. Почему же команда разработчиков не смогла это сделать?! Давайте, рассмотрим причины, принимая на веру их профессионализм.

Большинство ныне существующих интернет магазинов работают на основе готовых решений. Но разработчики этих решений практически никогда не пишут исходный код "с нуля", а пользуются опять-таки готовыми фреймворками и СУБД. Их разработчики также не пишут исходный код сами, а опираются на готовые библиотеки и среды разработки... и т.д.

Любое готовое решение, чтобы стать известным и активно эксплуатируемым многими разработчиками, вынуждено ставить на первое место универсальность и известность чужих технологий, жертвуя эффективностью. Такие решения не имеют высоких характеристик быстродействия, безопасности и надежности, но, что гораздо хуже, они еще и жадны до ресурсов. Если бы код интернет-магазина был написан разработчиками "с нуля", то они могли бы оптимально распорядиться ресурсами, но применяя готовое решение, они вынуждены мириться с его неоптимальностью.

А теперь порассуждаем. Разработчики библиотек допустили некую неоптимальность в расходе ресурсов для универсальности своего решения. Разработчики СУБД уже используют неоптимальные библиотеки и в свою очередь допускают неоптимальность в угоду собственной универсальности. Разработчики платформы интернет магазина используют неоптимальное решение СУБД и неоптимальное решение фреймворка... И что тогда остается делать тем разработчикам, которые получили доступ к готовому интернет магазину?!

Доступные им ресурсные возможности, как поле решения их задачи, уже истощены, а им ставят задачу разместит код демонстрации 3D-модели, который сам по себе требователен к ресурсам. Какими бы гениями они не были, получить кусок памяти, который уже занят можно лишь используя недокументируемые особенности браузеров, которые известны лишь единицам и пользование такими возможности чревато юридическими последствиями. Вот и выходит, что они мучаются, пытаясь решить нерешаемую задачу. Почему?! Да, потому что подписан договор о разработке и, скорее всего, уже получены деньги. В общем, у них просто нет выхода. Остается пробовать, пытаться, биться... головой о стену. Конечно, на них сыпятся обвинения со стороны заказчиков и они становятся причиной шуток со стороны других разработчиков. В общем жалкое зрелище.

Казалось бы, зачем их оправдывать?! Ведь это они сами виновны в этой ситуации. Им стоило потратить больше времени при получении задачи, чтобы трезво оценить проблемы будущей разработки.

Увы, в жизни все совсем не так. Решение о разработке обычно принимают руководители, которым лишь мнится, что они что-то понимают в разработке. Именно они заставляют профессионалов бессмысленно биться головой о стенку. А последние просто получают свою зарплату и принимают на себя гнев и заказчиков, и своих же руководителей.


Что посоветовать разработчикам в такой ситуации? Увольняйтесь, ребята. Бегите от таких руководителей. Не стоит быть в компании, в которой лидеры думают лишь о деньгах и принимают решения за разработчиков.


Что делать владельцам интернет магазина? Им стоит заказать экспертизу своего ресурса и узнать, есть ли у него возможности по встраиванию 3D-моделей. В противном случае - начать думать о смене самого ресурса, как бы он ни был им дорог. И для этого нужно обратиться к тому разработчику, кто не пользуется готовыми решениями, а пишет код "с нуля" и делает это уже лет десять-пятнадцать, т.к. лишь такие профессионалы действительно отвечают за результат и создают оптимальные решения, функционал которых может многократно расширяться с течением времени.


Спасибо за внимание.


Ознакомиться с другими статьями