25.08.2014 |  support@ida-web.ru

Универсальное или уникальное решение. Что лучше?

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

 

Разница решаемых задач

Прежде всего, необходимо понимать разницу решаемых задач.

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

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

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

 

На что стоит обращать внимание, при выборе решения

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

  • Существующие решения и подходы. Большинство задач уже когда-либо решалось. Возможно, несколько иным образом, но решалось. Это означает, что существуют реальные примеры решений и подходов, а так же примеры того, какие результаты достигались. Даже если вы не будете использовать эти решения и подходы, всегда будет вероятность найти полезную информацию.
  • Как решается вопрос расширения функциональности. Если для универсальных решений все достаточно очевидно - поддержка готовыми решениями такой возможности и до какого уровня; то для уникальных решений все обстоит немного сложнее - вопросы должны касаться не только самой возможности расширения, но и того, кто сможет внедрить расширение. Если при создании готовых решений компаниями разработчиками, обычно, предусматривается средний уровень навыков, то в случае уникальных решений это далеко не всегда так. Другими словами, обычно, разработать дополнительный модуль для коробочного решения может много людей, а для уникального решения мало.
  • Запас прочности. Со временем, объем данных будет увеличиваться и, с определенной долей вероятности, будет требоваться больше функциональности. Ограничения, которые вы определили сегодня, завтра могут оказаться слишком малыми и сильно ограничивающими. На практике, отсутствие запаса прочности может привести для готовых продуктов вплоть до вопроса об их смене, а для уникальных решений вплоть до реализации "с нуля". Иначе говоря, отсутствие запаса прочности будет означать потенциальный риск необходимости решать проблемы с самого начала.
  • Экспорт и импорт данных. Вопрос стоит даже не столько в том, что есть ли данные функций у решений, сколько в том, что потенциально такая возможность должна быть (даже если это выборка из базы данных). К примеру, существуют решения, которые хранят свои данные в специальных форматах данных, не позволяющих даже ручным или сторонним методом экспортировать их. Если заранее не предусмотреть наличие экспорта и импорта данных, то в будущем это может обернуться серьезными проблемами, когда объем данных будет уже настолько велик, что ручной перенос станет практически невозможным.

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

 

Подытоживая сказанное

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

 

Компания "IDA-Web" надеется, что данный материал позволит вам лучше понять специфику мира ИТ.



Так же советуем

Обратная связь

Я согласен с вашими правилами и условиями

Опыт Знания Умения