Влияние добавление функционала на проекты по разработке программного обеспечения

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

Сложность разработки при увеличении числа функциональных возможностей возрастает нелинейно

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

Большее количество функций порождает большее количество ошибок

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

Динамичное и интенсивное добавление функций приводит к снижению надёжности системы

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

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

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

Cтатьи по теме:

Использование экономических критериев в веб-разработке для оценки целесообразности реализации
В этой статье будут затронуты некоторые особенности разработки и поддержки ПО, которые основываются на экономических критериях оценки целесообразности.
​Создание сайта быстро, дешево, индивидуально и качественно
Альтернативное название статьи: «Ищем в стоге сена отсутствующую там иголку».
Как зависит качество разработанного сайта от количества выделенных ресурсов и менеджмента проекта?
Самый простой ответ на этот вопрос: прямо пропорционально. На разработку действительно хорошего проекта требуется много времени, а плохой — можно «на коленке» за пару часов собрать. При профессиональном менеджменте результат проекта гарантированно лучше, чем в случае, когда менеджмента нет или он неэффективный.
Ошибки при разработке сайтов: старт проекта без целей, задач и проектирования
Часто, когда встает вопрос о создании сайта, цели и задачи не формулируются или формулируются нечётко. В этом случае вы никогда не получите то, что хотели, так как разработчикам просто непонятно что именно вы хотите.
Ошибки при разработке сайтов: субъективный подход к дизайну и стремление к самовыражению
Как часто можно услышать это: «Сайт должен быть стильным», «Сайт должен внушать доверие», «Мой дизайн должен быть эксклюзивным и непохожим на другие» и другие варианты необъективных критериев. «Стильное, лаконичное, внушающее доверие» — это все субъективные оценочные критерии, которые зависят от восприятия каждого конкретного человека.
Ошибки при разработке сайтов: отсутствие аналитики и развития после запуска
То, что сайт разработан и запущен, еще не означает, что можно больше ничего не делать и продажи резко пойдут вверх. Впереди еще много работы.
Сколько стоит разработка сайта?
​Ежедневно мы отвечаем на этот вопрос и не один раз. Очень часто это первый вопрос позвонившего Клиента. Мы понимаем, что Клиенты устали слушать, что всё зависит от сложности разработки этого самого сайта.

Тематические технологии:

Язык программирования Ruby
Фреймворк Ruby on Rails
Язык разметки HTML
CSS — каскадные таблицы стилей
Язык программирования JavaScript
Библиотека React
Библиотека MobX
Библиотека MobX State Tree