вторник, 10 января 2023 г.

Тренды - Разработка программного обеспечения нового поколения

Разработка программного обеспечения нового поколения

Затронутые этапы жизненного цикла:
  1. Планирование и анализ (Planning and analysis).
  2. Архитектурный дизайн (Architecture design).
  3. Разработка и кодирование (Development and coding).
  4. Тестирование (Testing).
  5. Развертывание и обслуживание (Deployment and maintenance).



Источник. 
McKinsey Technology Trends Outlook 2022. August 2022. McKinsey analysis. 

Технология или набор инструментов:
  • Платформы с низким объемом кодирования или без кодирования (Low-code/no-code platform). Платформы на основе графического пользовательского интерфейса (GUI) для неразработчиков, которые можно использовать при создании приложений.
  • Инфраструктура как код (Infrastructure-as-code). Шаблоны конфигурации для предоставления инфраструктуры для приложений, использующих Terraform, Ansible и т. д.
  • Микросервисы и API  (Microswevices and APIs). Автономные модульные фрагменты кода, которые можно собирать в более крупные приложения.
  • ИИ «партнер программиста»  (AI "pair programmer"). Рекомендации по коду на основе контекста входного кода или естественного языка.
  • Тестирование с использованием ИИ (AI-based testing). Автоматизированное модульное тестирование и тестирование производительности для сокращения времени, затрачиваемого разработчиком на тестирование.
  • Автоматическая проверка кода (Automated code review). Автоматизированные программные проверки исходного кода с помощью ИИ или предопределенных правил.

Каковы наиболее примечательные технологии?


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

Платформы с низким объемом кодирования или без кодирования (Low-code/no-code platform).
  • Стандартизированные инструменты и процессы, масштабирующие технологические инновации за счет повторного использования компонентов.
  • Ускорение разработки приложений с помощью программных компонентов plug-and-play
  • Более тесная согласованность бизнеса в результате приближения технических требований к бизнес-подразделениям
  • Автоматическое развертывание моделей в производственных приложениях
  • Расширенный мониторинг и обслуживание (например, переобучение модели) для сведения к минимуму снижение производительности.

2. Этап - Архитектурный дизайн

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

3. Этап - Разработка и кодирование

Программист - партнер ИИ
  • Быстрая разработка, так как разработчики пишут код быстрее с меньшими трудностями, чтобы облегчить «поток разработчиков».
  • Активатор автоматических переводов и инструментов lowcode/no-code
Микросервисы и API
  • Ускорение разработки, поскольку микросервисы и API служат строительными блоками, которые компании используют для простого добавления функций в программное обеспечение.
  • Новые потоки доходов в виде API-интерфейсов могут предоставляться клиентам в рамках модели «как услуга».

4. Этап - Тестирование

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

5. Этап - Развертывание и обслуживание

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

Что дебатируется?


1. В какой степени технология "без кода" может уменьшить потребность в программистах?

Хотя платформы с низким кодом/без кода помогают командам быстро создавать прототипы или позволяют неразработчикам взять на себя часть работы разработчиков, они по-прежнему недостаточно гибки с точки зрения сокращения объемов разработки на каждом этапе жизненного цикла разработки программного обеспечения (например, когда устаревшие системы требуют обновления).

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

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

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

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

4 В какой степени бизнес-подразделения будут нести ответственность за «здоровье» приложений?

По мере того как программное обеспечение следующего поколения предоставляет возможности разработки «не разработчикам», внедренным в бизнес-подразделения, возникают вопросы об организационной структуре и обязанностях — например, когда бизнес-пользователи создают приложения, кто несет ответственность за их поддержку?

Источник. 
McKinsey Technology Trends Outlook 2022. August 2022. McKinsey analysis.

Комментариев нет:

Отправить комментарий