Почему индивидуальная разработка очень дорогая?

2024-10-21 12:12:15 Время чтения 7 мин 234

Введение 

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

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

Что такое кастом? Приоритеты в разработке программного продукта

Кастом - это изменения в продукте, требующие разработки под свои потребности. 

Это могут быть:

  1. стилистические изменения ("а давайте сделаем эту кнопку красной"), 
  2. изменения по бизнес-логике ("давайте добавим еще один статус"),
  3. по характеристикам продукта ("необходимо ускорить загрузку страницы каталога"). 

Нужен ли кастом в проекте? Конечно нужен

Ведь если вы делаете продукт, а он не отвечает бизнес-требованиям, такой продукт не будет использоваться полноценно (а скорее всего вообще не будет использоваться). 

Более правильный вопрос - какой кастом нам нужен в проекте? Если кратко - тот, что не создает негативных последствий в продукте. 

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

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

Наиболее правильное решение здесь - планировать возможности системы так, чтобы не создавать костылей в продукте. 

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

При этом также важна согласованность требований по продукту. Бывает так, что сначала заказчик хочет одно, потом противоположное. Но второе требование уже должно учитывать текущую ситуацию в продукте (т.е. что в нем уже внедрено). 

Почему кастом - это всегда дорого? Разработка индивидуальных программ

Кастом дороже стандартных способов по 2 причинам: 

  1. его сложнее сделать, т.к. обычно требуются дополнительные навыки;
  2. его сложнее поддерживать. Кастом решение практически всегда менее надежное, нежели использование стандартных возможностей. 

В нашей платформе высокая степень гибкости достигается за счет внедрения своих JS и CSS вставок. Через них можно делать практически любой кастом. Но за это есть цена - усложнение решения и больше требуется времени/средств на сопровождение таких решений.  

Дополнительная проблема кастома - это необходимость привлекать большее количество специалистов. Стандартная форма Falcon Space имеет стандартный вид. Один человек может создать таблицу базы данных, поместить сниппет формы на страницу и затем реализовать форму на SQL.В случае сложного кастома, потребуется дополнительно дизайнер (нарисует дизайн страницы), верстальщик (создаст верстку на основе дизайна) и JS разработчик (для создания кастом формы). 

Как минимизировать расходы при кастом разработке. Снижение стоимости разработки

Кастом может быть разных уровней: 

  1. в рамках стандартных средств технологии,
  2. за рамками (подключение других технологий). 

В идеале нужно стараться не выходить за рамки технологий. При выборе платформы важна также принципиальная возможность подключения других технологий (иначе это еще сильнее удорожает проект вплоть до переделки проекта на других технологиях).

К примеру в Falcon Space есть следующие способы выхода за рамки стандартных технологий (т.е. это способы обеспечить гибкость решения даже в случае, когда стандартных средств платформы не хватает): 

  1. код на JS;
  2. стилизация через CSS;
  3. выполнение CRL процедур (можно написать на C# отдельное приложение и вызывать его через хранимые процедуры);
  4. возможность подмены стандартных обработчиков и типовой разметки;
  5. универсальный блок API (входящие и исходящие запросы);
  6. вызов команд операционной системы (bash, powershell и др.)

Как можно значительно уменьшить бюджет за счет правильной работы с кастомом: 

  1. По возможности не использовать средства за пределами технологий выбранной платформы. Любой такой кастом - это значительная проблема на этапе сопровождения. 
  2. Умерить свой аппетит в хотелках. Есть требования критичные, и их необходимо реализовывать несмотря ни на что. А бывают просто капризы клиента без особой необходимости, реализация которых только ухудшит характеристики продукта. 
  3. Максимально детально знать возможности своей платформы. И задействовать именно эти возможности в продукте в первую очередь.  Штатные средства внедряются всегда гораздо проще и легче, чем кастом. 
  4. Прислушиваться к разработчикам. Особенно в плане предложений, как сделать ту или иную возможность штатными средствами выбранных технологий. Не настаивать на своем видении при возникновении системных ограничений. 

Заключение 

Кастом есть в каждом проекте. Это неотъемлемая часть любого проекта. Чтобы кастом не стал космически дорогим, необходимо стараться держать его в русле основных технологий проекта. Очень много в плане кастома зависит от владельца продукта - от согласованности его требований, от умения прислушиваться к возражениям разработчиков. 

Источник: https://falconspace.ru/blog/realno-li-vam-nuzhen-kastom--pochemu-kastomnaya-razrabotka-ochen-dorogaya