Методы разработки новых продуктов

Методы разработки программных продуктов

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

  • Каскадная (Waterfall Model) или "водопад" – принцип которой в том, что каждая следующая стадия начинается после завершения предыдущей. Откат на шаг назад или внесение изменений внутри процесса невозможно. Все корректировки – только после итогового тестирования системы. В этом главный минус подхода – если в коде будут замечены ошибки, их исправление займет много времени и потребует приличных расходов. Плюсы – фиксированная цена и прогнозируемые сроки.

V-Model – основная идея сводится к validation and verification с тестированием корректности работы программы на каждой стадии, что уменьшает риск ошибок в архитектуре. Но минус в том, что если ошибка все-таки найдется, исправление ее будет стоить компании дорого.

  • Incremental Model – инкрементная, по частям (параллельная разными командами). Цель – получить жизнеспособное приложение при сильно ограниченных сроках и бюджете. Это преимущество, равно как и возможность оперативной оценки рисков – в зависимости от реакции пользователей (оценки эффективности) можно вкладывать деньги в доработку или прекратить финансирование.

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

  • Agile – общее название подхода, в котором нет четких формулировок и планирования. Его можно рассмотреть на примере Extreme Programming (XP). Основные тезисы – взаимодействие между участниками команды важнее инструментов, рабочее ПО важнее спецификаций. А договоренности с заказчиком превыше условий контракта.
  • Iterative Model – итеративная, не требующая составления полной спецификации.  Сначала реализуется ограниченный набор функций, который будет многократно дополняться, улучшаться.

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

  • Spiral Model – спиральная модель, с элементами итеративности, позволяющая оценивать риски, влияющие на жизненный цикл ПО. 

Из преимуществ – проработка рисков. Из минусов – растянутые сроки с риском застрять на совершенствовании первого цикла и высокие расходы.

Выбор метода разработки продукта программирования зависит от проекта. Например для ПО, требующего высокой надежности (для отслеживания показателей пациентов в клиниках, например) чаще применяют V-Model. "Водопад" – для относительно небольших приложений, с детально прописанными формулировками технического задания.

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

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

Если от программистов требуется написать код, который обеспечит стабильную работу ПО. То задача дизайнеров – упаковать этот код в красивую, продающую упаковку.

Дизайн-процесс

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

Что до этапов самого процесса, то выглядят они примерно так:

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

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

Уровни новизны ПО

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

  • в мире – аналогов в конкретной отрасли ни в какой другой стране нет;
  • в стране – без привязки к аналогичному софту других компаний, в других странах;
  • на конкретном предприятии.

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

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

17.07.2023НавыкиБизнес
Смотрите также
Навыки
Как генерировать больше идей
Генерация идей — процесс создания новых и полезных концепций с коммерческим, научным или творческим потенциалом. Это важный инструментом развития инноваций, стимулирования творчества и обеспечения конкурентоспособности. В современном мире, где информация и знания быстро устаревают, способность быстро генерировать идеи становится ключевым фактором успеха.
БудущееТехнологииНавыки
Каким мягким навыкам чат-бот может научить подростка
Подростковый возраст — период становления личности и одновременно наиболее уязвимый этап развития в плане психологического здоровья. Такие навыки, как эмоциональный интеллект, целеполагание и планирование, помогают справляться с текущими трудностями и кризисами взросления. Однако ни в школе, ни в семье обучение этим навыкам, за редким исключением, не стало обычной практикой. Зато на помощь родителям приходят новые технологии.
НавыкиКарьера
Отличие разработчика от программиста
Значительная часть жизни современного человека проходит в интернете, при этом мы часто не задумываемся, что каждая статья, которую мы читаем, каждая программа в компьютере или на телефоне создана и размещена программистами, людьми, работающими в сфере IT. При этом слово «программист» имеет настолько широкое значение, что при выборе специальности для изучения человек может впасть в ступор, так как ему будет непонятно отличие разработчика от программиста, разница между бэкэндом и фронтендом, веб-дизайном и веб-разработкой.
НавыкиКарьера
Как начать работать в айти
IT-сфера в данный момент насчитывает около 500 профессий и специализаций в более чем 30 направлениях. Многие специальности предусматривают офисный или полностью удалённый формат, при этом оплата за труд специалиста намного выше средней по стране.