Для кого пишется программа? Ошибки при выборе технологий

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

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

Очень часто эти нюансы тесно переплетены с соответствием выбора технологий решаемым задачам.

Несмотря на всё многообразие подобных ошибок их можно условно сгруппировать по нескольким основным категориям, которые и будут рассмотрены ниже.

  • Завышенная сложность и ресурсоёмкость используемых технологий;
  • Заниженные сложность и возможности используемых технологий;
  • Игнорирование совместимости с уже имеющейся IT инфраструктурой.
Завышенная сложность и ресурсоёмкость используемых технологий

Стремление дать пользователю только самое лучшее само по себе похвально. Только «лучшее» — понятие относительное.

Полную стоимость программного обеспечения можно разделить на три составные части:

  • Стоимость разработки;
  • Стоимость внедрения в эксплуатацию;
  • Стоимость сопровождения.

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

Однако после развёртывания и внедрения работа над проектом не заканчивается. В процессе использования кто-то должен будет обязательно её сопровождать.

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

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

В этом нет ничего предосудительного. Администрирование баз данных, сайтов, и тем более поддержка «специфического» программного обеспечения не имеет прямого отношения к их профессии и не входит в программу их подготовки.

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

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

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

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

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

Например, есть небольшая и при этом единственная база данных, работа с которой строится на основе простых SQL запросов (select, insert, update, delete) и нет никакой программной логики на стороне сервера. То есть база данных используется просто как хранилище информации, но она работает под управлением Microsoft SQL Server Standard или ещё лучше Enterprise.

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

Если необходим сетевой доступ к базе данных, в такой ситуации лучше использовать хотя бы бесплатный Microsoft SQL Server Express, его возможностей вполне хватит, но никак не Standard или Enterprise.

Заниженные сложность и возможности используемых технологий

Ситуация диаметрально противоположная предыдущей.

Она также может являться следствием некорректного анализа, а может быть результатом «экономии» на создании программы.

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

Технология не соответствует решаемой задаче? Соответствует на 100%. При должном желании и мастерстве можно реализовать в Access достаточно сложные бизнес-процессы. Однако специфике «пользователя», организации, которая будет использовать эту базу данных Access в своей работе, она не соответствует совершенно.

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

Отдельно хочется сказать о набирающих всё большую популярность, в силу свое бесплатности, Open Source решениях.

Среди них, есть прекрасные программы и технологии (например, VLC и его SDK), но отыскать в этой сфере полноценную замену тем же Microsoft SQL Server или Oracle для тех задач, где нужны соответствующие возможности, пока никому не удалось.

Игнорирование совместимости с уже имеющейся IT инфраструктурой

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

Причина – крайний непрофессионализм, в первую очередь, аналитиков и руководителей проекта.

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

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

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

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

Только, как показывает практика, какие бы усилия не предпринимались, работа с такой программой не станет по-настоящему удобной и эффективной.

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

Резюме

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

На самом деле, предпроектный анализ это очень ответственная стадия любого проекта. Именно на основании данных предпроектного анализа формируется техническое задание, которое будет передано программисту. Поэтому, относиться к нему следует со всей серьёзностью.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *