Методы разработки новых продуктов
Методы разработки программных продуктов
Могут изменяться, дополняться, пересекаться, в зависимости от решаемых задач, бюджета, но основных видов, устоявшихся best practices, несколько:
- Каскадная (Waterfall Model) или "водопад" – принцип которой в том, что каждая следующая стадия начинается после завершения предыдущей. Откат на шаг назад или внесение изменений внутри процесса невозможно. Все корректировки – только после итогового тестирования системы. В этом главный минус подхода – если в коде будут замечены ошибки, их исправление займет много времени и потребует приличных расходов. Плюсы – фиксированная цена и прогнозируемые сроки.
V-Model – основная идея сводится к validation and verification с тестированием корректности работы программы на каждой стадии, что уменьшает риск ошибок в архитектуре. Но минус в том, что если ошибка все-таки найдется, исправление ее будет стоить компании дорого.
- Incremental Model – инкрементная, по частям (параллельная разными командами). Цель – получить жизнеспособное приложение при сильно ограниченных сроках и бюджете. Это преимущество, равно как и возможность оперативной оценки рисков – в зависимости от реакции пользователей (оценки эффективности) можно вкладывать деньги в доработку или прекратить финансирование.
Но такой подход требует постоянного участия менеджера, который будет координировать команды программистов, дизайнеров, тестировщиков.
- Agile – общее название подхода, в котором нет четких формулировок и планирования. Его можно рассмотреть на примере Extreme Programming (XP). Основные тезисы – взаимодействие между участниками команды важнее инструментов, рабочее ПО важнее спецификаций. А договоренности с заказчиком превыше условий контракта.
- Iterative Model – итеративная, не требующая составления полной спецификации. Сначала реализуется ограниченный набор функций, который будет многократно дополняться, улучшаться.
Из достоинств – быстрый вывод ПО на рынок, оперативное исправление багов, о которых будут сообщать сами пользователи. Из недостатков - неизвестно, в какую сумму обойдется софт, и когда будет готова конечная версия.
- Spiral Model – спиральная модель, с элементами итеративности, позволяющая оценивать риски, влияющие на жизненный цикл ПО.
Из преимуществ – проработка рисков. Из минусов – растянутые сроки с риском застрять на совершенствовании первого цикла и высокие расходы.
Выбор метода разработки продукта программирования зависит от проекта. Например для ПО, требующего высокой надежности (для отслеживания показателей пациентов в клиниках, например) чаще применяют V-Model. "Водопад" – для относительно небольших приложений, с детально прописанными формулировками технического задания.
Спиральная – для крупных проектов со значительными бюджетами (например, СЭД для крупной компании), поскольку часто требует глубоких исследований на подготовительном этапе.
А итеративная – для постоянно совершенствующегося ПО. Здесь можно привести в пример системы по распознаванию голоса, когда каждая следующая итерация делала это быстрее, лучше предыдущей.
Если от программистов требуется написать код, который обеспечит стабильную работу ПО. То задача дизайнеров – упаковать этот код в красивую, продающую упаковку.
Дизайн-процесс
Методы и средства разработки программных продуктов зависят от компании, ее зрелости, ПО, над которыми она работает и даже распределения ролей в проекте.
Что до этапов самого процесса, то выглядят они примерно так:
- изучение требований клиента для понимания принципов и вероятных сценариев использования;
- проведение исследований – за основу можно взять пирамиду пользовательских ценностей, в которой безопасность, стабильность и скорость являются самыми важными;
- анализ решений конкурентов – чтобы понять, что привлекает пользователей и сделать софт удобнее, дружелюбнее, быстрее;
- определение информационной архитектуры и визуализация интерфейса – в Figma или просто эскизом на листе бумаги, но с подготовкой детального описания для разработчиков.
Интерфейс – это то, что пользователи видят первым, когда скачивают приложение или открывают сайт. Для оценки удобства хватит пары кликов. Поэтому задача дизайнера – объединить визуал с функциональностью.
Уровни новизны ПО
Инновации классифицируются по 12 признакам и двум десяткам критериев. Один из которых – новизна для рынка. Программное обеспечение может быть новым:
- в мире – аналогов в конкретной отрасли ни в какой другой стране нет;
- в стране – без привязки к аналогичному софту других компаний, в других странах;
- на конкретном предприятии.
При этом основа инновации – это и свежие научные открытия, и переосмысление существующих технологий, которые привели к получению инновационного способа, примененного к открытым явлениям.
Если подытожить, то от методов разработки новых продуктов, применяемых для конкретного проекта, зависят сроки решения задачи. Степень прогнозируемости рисков для клиента, бюджет и дальнейшее сопровождение ПО.