ИТ / Статьи
люди технологии
6.6.2023

Идеальное программное решение

Как разрешать технические противоречия с минимальными потерями

У каждого в жизни случались ситуации, которые заводили в тупик. Инженеры в ИТ сталкиваются с ними ежедневно. Как они выбирают лучшие решения с наименьшими потерями и какой методологией руководствуются, читателям RSpectr рассказал руководитель направления разработки и технического развития компании «Эдит ПРО» (группа «Борлас») Никита Зайцев.

САМЫЙ ВАЖНЫЙ ЭТАП

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

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

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

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

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

НА СОВЕТСКОЙ БАЗЕ

Современные методики принятия проектных решений базируются на ТРИЗ (теории решения изобретательских задач), разработанной в 1940-1950-х годах в СССР и получившей второе рождение в 2010-х, в том числе в связи с ростом популярности творческого программирования.

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

Появилось понятие идеального конечного решения (ИКР) – это описание ситуации в будущем, когда задача уже решена. Например, для сервиса управления документами ИКР может быть таким: «клиент подписывает документ в два клика».

Любое противоречие решается в пользу ИКР, причем решение должно быть реализуемо с минимальными затратами времени и ресурсов. То есть если перед разработчиком будет стоять дилемма, реализовать подписание документов кнопкой или гиперссылкой, кнопка будет предпочтительным вариантом с точки зрения удобства для пользователей.

Процесс принятия проектного решения по ТРИЗ

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

Этап 1. Целеполагание.

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

Этап 2. Выявление граничных условий.

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

Этап 3. Выявление внешних факторов.

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

Этап 4. Поиск и описание вариантов.

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

Этап 5 (самый важный). Анализ и оценка вариантов.

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

КАК ОЦЕНИТЬ ПРИНЯТОЕ РЕШЕНИЕ

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

  • критериев должно быть немного (не более семи, а лучше – пяти);
  • каждый критерий должен иметь четкую качественную шкалу.

Что такое качественная шкала? Это порядковая шкала, которая позволяет определить относительную позицию того или иного объекта. У нас обычно это шкала с четырьмя измерениями: «Отлично», «Хорошо», «Удовлетворительно», «Плохо» (критерию можно присвоить весовой коэффициент).

Вот так выглядит мой личный набор критериев:

  • трудоемкость всех стадий жизненного цикла до ввода продукта в эксплуатацию;
  • рентабельность доработок, от диагностики ошибок и проблем до внесения оперативных изменений;
  • энергоемкость: то, что называется «совокупная стоимость владения», + ФОТ, лицензии и т.д.;
  • масштабируемость, или возможность дешево преодолеть падение качества при повышении нагрузки;
  • отказоустойчивость, то есть вероятность возникновения сбоев при ошибках персонала, пиках нагрузки, долгих uptime;
  • отчуждаемость – мера зависимости от чужих неподконтрольных компонентов;
  • гибкость – стоимость и сроки внесения качественных изменений при наращивании требований.

Эти критерии можно использовать, но они не догматичны – это просто компиляция личного профессионального опыта. Для визуализации оценки по каждому из критериев попробуем применить уже знакомую диаграмму коррелируемых величин – если когда-нибудь видели магический квадрант Gartner, уже имеете о ней представление.

Главное – расположить шкалы в правильном порядке и правильно интерпретировать попадание оценки на диаграмме. После того как все критерии сводятся на одной диаграмме, получается готовая визуализация.

Попадание большинства критериев в зеленую зону означает, что решение оптимально. Синяя зона – резерв. Позиция обладает избыточным запасом прочности. Серая зона – позиция рискованная, которая может обрушиться по внешним причинам. А красная – полностью провальная позиция без возможности улучшения.

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

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

Изображение: RSpectr, Adobe Stock

Еще по теме

Почему рынок коммерческих дата-центров нуждается в регулировании

Что ждет начинающего тестировщика в 2024 году

Как найти перспективные зарубежные рынки для российских решений

Какие угрозы несет интернет тел человечеству

Успеют ли банки заменить импортный софт и оборудование до 2025 года

Зачем компании вкладывают деньги в ИТ-состязания?

Импортозамещение и внутренняя разработка ПО в страховании

Почему рынок информационных технологий РФ возвращается к классической дистрибуции

Что сделано и не сделано в цифровизации России за 2023 год

Как заботу о вычислениях переложить на вендоров и почему не все к этому готовы

Когда российский бизнес начнет замещать импортное ИТ-оборудование

Чего добились за два года активного импортозамещения ПО

Как искусственный интеллект меняет банковскую систему РФ

Как проходит цифровая трансформация отечественного госсектора

Процесс замены иностранного софта близится к завершению – и это вызов