В этой статье рассмотрим создание сайта или программы с точки зрения сложности доработок продукта под себя. Любую возможность можно сделать в упрощенном виде, пойдя на какие-то уступки в плане удобства, внешнего вида и т.д. А можно делать в точности под свои требования, что заставляет разработчика иногда идти в обход системы для удовлетворения требованиям заказчика.
Как и в любом вопросе, здесь нужно найти баланс. Кастомизация нужна практически в любом проекте. Но если знать последствия глубокой кастомизации, то вероятно владелец продукта может принимать более эффективные решения.
Кастом - это изменения в продукте, требующие разработки под свои потребности.
Это могут быть:
Ведь если вы делаете продукт, а он не отвечает бизнес-требованиям, такой продукт не будет использоваться полноценно (а скорее всего вообще не будет использоваться).
Более правильный вопрос - какой кастом нам нужен в проекте? Если кратко - тот, что не создает негативных последствий в продукте.
Любой продукт делается на базе каких-то технологий, языков и платформ. Эти технологии накладывают определенные требования и ограничения на работу в разработку. Если ваш кастом постоянно спотыкается об эти требования, то разработчику приходится делать костыли (т.е. обходить нештатными средствами эти ограничения, если это возможно).
Наличие костыля - это шрам на теле продукта. Каждый новый костыль усложняет сопровождение продукта и снижает надежность. При каждом новом изменении разработчик должен помнить об этих нюансах. В общем, костыль - это крайне плохая штука, но иногда на это приходится идти, чтобы реализовать требование заказчика.
Наиболее правильное решение здесь - планировать возможности системы так, чтобы не создавать костылей в продукте.
Технологии для создания продукта должны быть подобраны под проект так, чтобы минимизировать риски создания таких ситуаций.
При этом также важна согласованность требований по продукту. Бывает так, что сначала заказчик хочет одно, потом противоположное. Но второе требование уже должно учитывать текущую ситуацию в продукте (т.е. что в нем уже внедрено).
Кастом дороже стандартных способов по 2 причинам:
В нашей платформе высокая степень гибкости достигается за счет внедрения своих JS и CSS вставок. Через них можно делать практически любой кастом. Но за это есть цена - усложнение решения и больше требуется времени/средств на сопровождение таких решений.
Дополнительная проблема кастома - это необходимость привлекать большее количество специалистов. Стандартная форма Falcon Space имеет стандартный вид. Один человек может создать таблицу базы данных, поместить сниппет формы на страницу и затем реализовать форму на SQL.В случае сложного кастома, потребуется дополнительно дизайнер (нарисует дизайн страницы), верстальщик (создаст верстку на основе дизайна) и JS разработчик (для создания кастом формы).
Кастом может быть разных уровней:
В идеале нужно стараться не выходить за рамки технологий. При выборе платформы важна также принципиальная возможность подключения других технологий (иначе это еще сильнее удорожает проект вплоть до переделки проекта на других технологиях).
К примеру в Falcon Space есть следующие способы выхода за рамки стандартных технологий (т.е. это способы обеспечить гибкость решения даже в случае, когда стандартных средств платформы не хватает):
Как можно значительно уменьшить бюджет за счет правильной работы с кастомом:
Кастом есть в каждом проекте. Это неотъемлемая часть любого проекта. Чтобы кастом не стал космически дорогим, необходимо стараться держать его в русле основных технологий проекта. Очень много в плане кастома зависит от владельца продукта - от согласованности его требований, от умения прислушиваться к возражениям разработчиков.