Если программисты, администраторы, инженеры и проектировщики достаточно быстро определяются с выбором технологии, на которой предстоит работать, то бизнес-людям приходится прибегать к дополнительным консультациям которые, как правило, сопровождаются хоть и важными комментариями, но на «птичьем» для них языке. Эти наши мысли направлены людям, которым так или иначе приходится принимать решения в области веб-разработок.
Мир программирования очень большой, и концепция open source связана со всеми его направлениями, начиная от написания операционных систем и заканчивая конечными продуктами для обычных пользователей, к числу которых мы отнесём и CMS. Известно, что продукты с открытым кодом это уже далеко не наколеночные решения одиночек-программистов, сейчас – это зачастую красивые и грамотные разработки, производимые внутри исследовательских лабораторий крупных компаний, которым выгодно вкладывать деньги в продукты, которые позволяют увеличить их продажи и укрепить влияние на рынке. Что касается CMS – сюда еще не пришли гиганты рынка и многим небольшим группам приходится вести разработки самостоятельно. О таких разработках мы и попытаемся рассказать, без привязки к конкретным продуктам, потому что, на наш взгляд, единичный продукт не решит всех проблем компании, и акцент надо делать немного на другие вещи.
Интернет-проекты по расширяемости и перестраиваемости можно разделить на две категории: статичные и динамичные. Статичному проекту хватает нормальной CMS для его жизни: наполнение статьями, добавление новостей, администрирование форумов и публикация продукции на сайте. Динамичному проекту всего этого постоянно мало, необходимо добавлять новые разделы, разрабатывать и устанавливать на них новые сервисы, перестраивать разделы в связи с постоянным изменением SEO-требований, менять дизайн и логику существующих компонентов, именно в таких условиях создаются новые современные CMS, которые по сути являются библиотеками готовых и гибких решений для определенной платформы, и очень важно, чтобы эти решения были качественны.
Есть несколько интересных вопросов, которые заказчику серьезного проекта приходится задавать самому себе.
Качество людей – любят писать софт
Open source разработчики - это, как правило, люди, которым нравится программировать, разрабатывать новые вещи и общаться в своей open source и не только среде, они стремятся обучаться самостоятельно и постоянно развиваются, что дает им заметное преимущество по сравнению с людьми, ориентированными на курсы и сертификацию. По способу обучения есть несколько категорий людей: одни считают, что фирма или государство или еще кто-то должен платить за то, что им будут вдалбливать информацию, заставлять зубрить и сдавать экзамены, другие – просто берут и начинают самостоятельно делать какие-то вещи, которые позволяют им расширить свои знания и опыт. Особенной связи между желанием/способностью обучаться и работой с открытым или закрытым кодом нет. Тут все зависит от самого разработчика и единственное, в чем может помочь ему open source – это выступить в качестве бесплатной, легкодоступной библиотеки готовых решений.
Маркетинговые штуки
Хочется тут пофантазировать: дело в том, что продукт с закрытым кодом очень удобно продавать, его легче защитить от копирования, и легче пресечь желание клиента вклиниться в код (хотя в нашей практике это желание ни у кого не возникало).
Разработчикам платных CMS удобно спрятаться за бренд своего продукта, и даже не столько из-за того, что это очень правильно работает с точки зрения маркетинга, а скорее из-за того, что можно быть не очень компетентным в этой области и все стрелки переводить на возможности продукта. А вот участникам разработки бесплатных CMS приходится опираться на свои знания, пробираться самостоятельно сквозь дебри программного кода, это труднее, но и интереснее.
В попытке брать деньги за сам продукт мы видим страх и неуверенность перед рынком, желание разработать что-то один раз и продавать всю оставшуюся жизнь. Но в мире веба – это невозможно, это мир сильной конкуренции, где большую роль играет время появления новой версии проекта, поэтому, чем больше разработчиков заинтересовано в движке, тем более он развит и соответствует современным требованиям.
Цена проекта - порог доступа
Серьезные компании-разработчики с большим штатом, где четко распределены роли, требуют и гораздо большей оплаты за свои услуги. Небольшой проект занимает большое количество ресурсов и выгоден для крупного-разработчика только в случае, если после его завершения компания «подсаживается на иглу». Однако, высокая цена на разработку индивидуального решения лишает малый и средний бизнес возможности ими пользоваться. Порой это заставляет их искать бесплатные open source решения, и они иногда дают им преимущество перед негибкими и громоздкими решениями от крупных разработчиков. Получается, что бесплатные передовые технологии могут стать клином, пробивающим дорогу менее крупным игрокам среди больших акул.
Подсаживание на иглу
Покупая проприетарную систему, заказчик обрекает себя на использование следующей за продуктом линейки исправлений, дополнений, изменений. Некоторым заказчикам важно идти в ногу со временем, поэтому приходится зависеть от конкретных разработчиков, ждать, когда они реализуют очередную новую фишку. В случае же с системой с открытым кодом можно найти группу разработчиков, которые реализуют вам новую фишку для вашей системы, если в этом вообще возникнет необходимость, так как развитие open source систем, как правило, и так успевает за новыми требованиями.
Брать или не брать персонал в штат: профессионалы как консультанты
Это очень важный аспект. Многие компании хотят иметь в штате профессионала, эксперта в вопросах веб-разработок, человека, который сможет опровергнуть неразумные технические доводы контрагентов на их же птичьем языке, и при этом сделать это в интересах компании. Но такие люди недешево стоят, и профессионалам приходится изучать новые технологии, так как в Интернете прогресс ни на секунду не останавливается. Кто же выигрывает по возможности грамотного консалтинга - опенсорсеры или проприетарщики? Проприетарный разработчик держится за свое решение, ищет его плюсы и пытается их продавливать заказчику, ему ведь не очень выгодно постоянно дорабатывать свою систему, потому что содержание такой системы для нескольких программистов не очень дешевое удовольствие. У системы же с открытым кодом постоянно идет развитие в свете постоянно появляющихся новшеств и доработок, использующие ее разработчики знают, что появилось, и что должно появиться в этой системе. Что самое главное, для таких систем существует множество дополнений от других независимых разработчиков, таким образом, вам не придется платить за разработку нового форума или корпоративного движка блогов.
Еще один важный момент, в какой среде работает специалист - уровень абстрагируемости от клиента. Сейчас объясним, в двух словах. Это значит, что программист, работающий непосредственно в штате, отвечающий именно за разработку, а не за консультирование и ведение проектов, не имеет стимула разрабатывать качественный и законченный продукт. В своей практике мы иногда встречаем такие случаи: продукт, разработанный такими специалистами, имеет несколько недоработок, не смертельных с точки зрения работоспособности, но требующих периодического вмешательства этих самых разработчиков. И дело даже не в том, что люди специально оставляют такие погрешности, чтобы руководство постоянно физически ощущало необходимость в таком специалисте, а дело скорее в том, что программист просто не видит реальной практической необходимости в этой доработке, т.к. задача, поставленная перед ним, вроде как выполнена. С другой стороны, специалисту, живущему на проектах, а не на фиксированной зарплате, будет очень трудно тратить свое время на постоянную поддержку недоделок такого рода, ведь за одним проектом, как правило, следует следующий, требующий максимальной отдачи. Такому человеку проще закрыть все свои недоработки, чем обеспечивать заказчика необходимостью постоянно к нему обращаться по неоплачиваемым мелочам, и заказчик получает законченный продукт.
Узкая специализация, отлаженные процессы
Узкоквалифицированным специалистам есть место в open source, есть люди специализирующиеся на отдельных частях системы и разрабатывающих только их, но этим они себя не прокормят, так что они либо используют эти части в коммерческих проектах либо используют систему в целом, поддерживая необходимые для коммерческой эксплуатации части. В open source фирмах есть специалисты, отвечающие за отдельные части продукта. Четко отлаженные процессы, вовлекающие больше неквалифицированных людей, чем квалифицированных, как правило, подходят для внедрения коробочных продуктов, не предусматривающих осмысленную интеграцию и других процессов требующих участия в них неких электрохимических реакций называемых мышлением. Как написано в начале статьи, заказчику очень важно определится, на каком он рынке, от этого и зависит выбор исполнителя, нужна ли ему гарантия выполнения проекта, или ему важны также актуальность, гибкость и необходимость проекта, потому что иногда этими составляющими приходится жертвовать для стопроцентной гарантии выполнения. А выполнение проекта и его успех это немного разные, на наш взгляд, вещи.
Качество кода
Проприетарная система разрабатывается одним-двумя или в лучшем случае командой разработчиков, они сами перед собой отвечают за свой код, за его понятность, переносимость и гибкость. Такая система, как правило, развивается спонтанно, разные модули и компоненты дорабатываются в зависимости от требований очередного проекта. Опять же, иногда спонтанность и опыт единиц разработчиков решает вопрос выбора платформы, языка реализации CMS.
PHP, хоть и популярен, но не обязателен - существуют ведь и Ruby, и Python, прекрасно подходящий для сложных, модульных CMS. Более серьезный подход к платформе позволяет навязывать стиль работы, рекомендуется язык, не позволяющий спонтанно создать полноценный продукт. Наша позиция такова: чтобы разработать серьезное решение, необходимо понимание, как самого продукта, так и среды в которой он работает. Одновременно с этим, современные серьезные подходы к программированию позволяют создавать многомодульные системы, где создатель одного модуля не обязан знать, что находится внутри других модулей.
Итак
Использование Open Source – не панацея, вы не решите всех своих проблем, просто перейдя на бесплатную CMS. Но реализация проекта на грамотной и гибкой системе, используемой и поддерживаемой большим количеством людей во всем мире, возможно, позволит сконцентрировать ваше внимание на других вещах, чем решение технических вопросов с разработчиками. Бойтесь встроенных самопальных скриптовых языков и разрабатывайте корпоративную техническую стратегию, это позволит вам меньше задумываться перед принятием сложных решений. Но это тема уже следующей статьи.
Проведите конкурс среди участников CMS Magazine
Узнайте цены и сроки уже завтра. Это бесплатно и займет ≈5 минут.