Рекомендации по стандартизации инструментов и процессов
Применяется к следующей рекомендации контрольного списка по достижению операционной эффективности Power Platform Well-Architected:
OE:04 | Оптимизируйте процессы разработки программного обеспечения и контроля качества, следуя проверенным в отрасли практикам в сфере разработки и тестирования. Для однозначного назначения ролей стандартизируйте методы работы с такими компонентами, как инструменты, система управления версиями, шаблоны проектирования приложений, документация и руководства по стилю. |
---|
В этом руководстве описаны рекомендации по определению стандартов для инструментов и процессов разработки. Определение последовательных практик приводит к созданию эффективной рабочей группы и высококачественной работе. Высокопроизводительные рабочие группы используют проверенные в отрасли инструменты и процессы, чтобы свести к минимуму напрасные усилия и потенциальные ошибки кода.
Ключевые стратегии проектирования
Первым шагом по оптимизации методов разработки является стандартизация инструментов и процессов. По возможности используйте проверенные в отрасли решения вместо разработки собственных. Проведите обучение всем стандартизированным инструментам и процессам, чтобы ваши рабочие группы могли эффективно их использовать.
Чтобы определить стандарты, которые помогут оптимизировать методы разработки, примите во внимание следующие рекомендации.
Используйте инструменты, доступные платформе
В первую очередь используйте инструменты Power Platform Tools, а в противном случае используйте хорошо известные и проверенные готовые инструменты, а также стандартизируйте их использование. Высокоэффективные инженерные команды используют лучшие в своем классе инструменты. Избегайте разработки решений для планирования, разработки, тестирования и совместной работы. Выбирайте инструменты, соответствующие требованиям вашей рабочей нагрузки.
Инструменты должны обеспечивать следующие функции:
- Планирование работы и управление журналом невыполненных работ
- Контроль версий и репозитории
- Конвейеры развертывания
- Тестирование
- Разработка и проверка кода
В некоторых случаях один инструмент или набор инструментов могут выполнять несколько функций. Убедитесь, что вы понимаете возможности своих инструментов и их ограничения, чтобы они соответствовали вашим требованиям к различным функциям.
Определите, стоит ли вам инвестировать в премиальные функции платформы или премиальные версии инструментов. Сравните время и усилия, потраченные на разработку собственных решений, с функциями, предоставляемыми инструментами премиум-класса. Сравните разовые затраты с периодическими. В большинстве случаев готовые инструменты приносят большую пользу вашей рабочей группе. Например, Управляемые среды предлагают готовые функции для установки приветственного сообщения создателям или упреждающего ограничения общего доступа. Самостоятельное создание этих функций требует разработки и постоянного обслуживания, что может оказаться более дорогостоящим, чем инвестиции в управляемые среды.
Используйте инструменты искусственного интеллекта, когда это возможно. Инструменты искусственного интеллекта могут помочь в разработке, проверке и оптимизации кода.
Установка платформы управления для совместной разработки
Установите эффективную платформу управления совместной разработкой, чтобы обеспечить согласованность и повторяемость в проектах, определяемых создателями, и смешанных командах.
Стандартизируйте свою систему и методы управления версиями
Используйте систему управления исходным кодом, например Azure DevOps. Azure DevOps предоставляет службы разработчиков группам поддержки для планирования работы, коллективной работы над разработкой кода, а также для создания и развертывания приложений. Экспортируйте решение из своей среды разработки, содержащей ваши приложения и настройки, распаковывайте свое решение и сохраняйте компоненты в своей системе контроля исходного кода.
Убедитесь, что управление версиями решения является точным, следуя рекомендациям для спринтов и разработчиков, изложенным в разделе Внедрение методов Scrum для своей команды в Azure Boards. Результаты тестирования запроса на вытягивание могут быть представлены в виде снимков экрана или видеороликов, демонстрирующих создаваемую функциональность. Автоматизация процесса управления запросами на извлечение помогает обеспечить качество кода без необходимости ручной проверки основных проверок, таких как версии решения.
Создавайте шаблоны для обеспечения эффективности и единообразия. Все аспекты работы команды выигрывают от стандартизации и упрощения, от задач адаптации и презентаций обзора историй до шаблонов рабочих элементов, предназначенных для экономии времени и предоставления рекомендаций командам при определении пользовательских историй, функций, ошибок и задач.
Оценка метрик для количественной оценки эффективности
Команды разработки и обеспечения качества могут совершенствоваться только тогда, когда они количественно оценивают свою эффективность. Для количественной оценки эффективности им необходимо определить метрики, которые измеряют скорость разработки, и определить ключевые показатели эффективности (КПЭ).
Примеры этих метрик включают:
- Время упреждения: время, необходимое задаче или пользовательской истории для перехода от невыполненной работы к производственному развертыванию.
- Среднее время до разрешения: среднее время, затраченное на исправление ошибок или дефектов в коде.
- Частота неудачных изменений: процент изменений, которые привели к сбою.
Чтобы помочь заинтересованным сторонам и команде, занимающейся рабочей нагрузкой, легко отслеживать скорость, визуализируйте ключевые показатели эффективности с помощью панелей мониторинга или других инструментов отчетности.
Стандартизируйте то, как ваша рабочая группа пишет, проверяет и документирует код
Стандартизируйте то, как ваша рабочая группа пишет, проверяет и документирует код, используя руководство по стилю. Стандартный стиль упрощает совместную работу и помогает привлекать новых разработчиков. Чтобы работать эффективно, новым разработчикам необходимо знать, как работает группа рабочей нагрузки. Руководство по стилю с четко определенными стандартами может облегчить процесс обучения.
Руководство по стилю должно охватывать:
- Соглашения об именовании решений, артефактов, элементов управления, действий, сред, ветвей и сборок
- Стандарты обработки ошибок
- Общие шаблоны или библиотеки
Отслеживайте архитектурные решения, чтобы помочь командам по-новому взглянуть на рабочую нагрузку и позволить новым членам команды узнать о проектных решениях, принятых в течение жизненного цикла рабочей нагрузки. Включите в документ об архитектурном решении инструменты и технологии, которые были учтены, причину решения, а также функциональные и нефункциональные требования, которые были учтены при принятии решений. Записывайте решения, чтобы избежать повторения объяснений или повторного обсуждения с новыми участниками или заинтересованными сторонами.
Внедрение стандартов и руководств по решению проблемы технического долга
Платформа и технологии быстро меняются, регулярно появляются новые функции и возможности. Примите к сведению, что технический долг необходим для достижения результатов вашей рабочей группы. Такое мышление мотивирует вашу команду регулярно рассматривать и решать техническую задолженность, чтобы избежать ее накопления. Рассматривайте техническую задолженность как регулярно повторяющуюся задачу в журнале невыполненных работ. Убедитесь, что у вас есть процессы, позволяющие оставаться в курсе изменений платформы, как новых функций, так и устаревших, и разработайте план действий по реагированию на изменения в рабочей нагрузке.
Например, функция продукта может стать устаревшей или быть заменена другой версией. Команда по рабочей нагрузке должна в приоритетном порядке завершить переход на новую функцию, чтобы не повлиять на рабочую нагрузку. Команда может создать пользовательское решение или элемент управления, который со временем станет частью платформы. Ваша команда по рабочей нагрузке должна перейти на эту функцию платформы, которая снизит технический долг и снизит обслуживание вашей собственной рабочей нагрузки.
Используйте проверенные в отрасли шаблоны проектирования приложений, чтобы обеспечить надежность, производительность и безопасность вашего приложения. Используйте эти шаблоны, чтобы сэкономить время и усилия, а не разрабатывать собственные решения для своего приложения. Выбирайте шаблоны, которые принесут пользу вашей рабочей нагрузке. Регулярно просматривайте шаблоны проектирования, чтобы убедиться, что вы используете правильные шаблоны по мере развития вашей рабочей нагрузки.
Внедрите подход к тестированию со сдвигом влево
Внедрите подход к тестированию со сдвигом влево, выполняя модульное тестирование на ранних этапах и часто на протяжении всего процесса разработки. Частое тестирование в каждой среде разработки помогает разработчикам обрести уверенность в своих приложениях.
Чтобы создать стратегию тестирования с использованием подхода «сдвиг влево», примите во внимание следующие принципы:
- Пишите тесты на самом низком возможном уровне. Отдавайте предпочтение тестам с наименьшим количеством внешних зависимостей и запускайте тесты как часть сборки.
- Напишите тесты один раз и запускайте их везде, включая производственную среду. Напишите тесты, которые можно будет запускать в любой среде разработки, не принимая во внимание факторы, специфичные для одной среды, такие как зашифрованные секреты или конфигурации.
- Создайте рабочую нагрузку для тестирования. При разработке приложения сделайте требованием возможность тестирования.
- Рассмотрите возможность владения тестами, которое основано на владении рабочей нагрузкой. Ваша команда по рабочей нагрузке отвечает за тестирование и не должна полагаться на другие команды для тестирования кода.
- В как можно больше степени автоматизируйте тесты. Автоматизированный код снижает нагрузку на вашу рабочую группу и обеспечивает стабильное качество.
Требуйте от своей рабочей группы понимания методов обеспечения безопасности, связанных с разработкой и обеспечением качества. Члены команды должны следовать этим правилам без исключения. Дополнительные сведения см. в разделе Рекомендации по обеспечению безопасности жизненного цикла разработки.
Возможности в Power Platform
Конвейеры в Power Platform направлены на демократизацию управления жизненным циклом приложений (ALM) для клиентов Power Platform и Dynamics 365 за счет внедрения в службу возможностей автоматизации ALM, а также непрерывной интеграции и непрерывной доставки (CI/CD).
Создаваемые Copilot заметки о развертывании в конвейерах создают сводку по решению и предварительно заполняют поле заметок о развертывании, предоставляя всем, кто просматривает запрос на развертывание или запись, достаточно контекста, чтобы понять, что делает решение и что оно содержит.
Инструменты Microsoft Power Platform Build Tools для Azure DevOps можно использовать для автоматизации общих задач сборки и развертывания, связанных с приложениями, созданными на основе Power Platform.
GitHub Actions для Power Platform позволяют разработчикам создавать автоматизированные рабочие процессы жизненного цикла разработки программного обеспечения. С помощью GitHub Actions для Microsoft Power Platform вы можете создавать бизнес-процессы в своем репозитории для создания, тестирования, упаковки, выпуска и развертывания приложений; выполнять автоматизацию; и управлять ботами и другими компонентами на базе Power Platform.
Веб-API средства проверки Power Apps предоставляет механизм для выполнения статического анализа по настройкам и расширениям платформы Microsoft Dataverse.
Test Studio позволяет создавать комплексные тесты пользовательского интерфейса для приложения на основе холста.
Автоматизация тестов с помощью Azure Pipelines.
Инструмент проверки кода Power CAT позволяет выполнять обзоры кода.
Комплект Power CAT Copilot Studio позволяет настраивать агенты и тесты. Путем выполнения отдельных тестов для API-интерфейсов Copilot Studio (Direct Line) ответы агента оцениваются в сравнении с ожидаемыми результатами.
Ускоритель ALM представляет собой инструмент с открытым исходным кодом, который состоит из набора приложений, сценариев и конвейеров, предназначенных для автоматизации процесса непрерывной интеграции/непрерывной поставки.
Microsoft Power Platform CLI (PAC CLI) — это инструмент командной строки, который поддерживает импорт и экспорт решений Power Platform, а также упаковку в исходные файлы решений Power Platform и распаковку из них. PAC CLI доступен как автономный инструмент командной строки или как расширение для Visual Studio Code.
Другие инструменты и службы, которые могут помочь вам стандартизировать методы разработки, включают:
Azure DevOps, набор служб, которые можно использовать для создания совместной, эффективной и последовательной практики разработки. Azure DevOps объединяет следующие решения:
- Azure Pipelines, облачная служба, предоставляющая услуги сборки и выпуска для поддержки CI/CD ваших приложений.
- Azure Boards, веб-инструмент для управления работой, который поддерживает такие Agile-практики, как Scrum и канбан.
- Репозитории Azure, инструмент управления версиями, который поддерживает распределенную систему управления версиями Git и систему управления версиями Team Foundation.
- Azure Test Plans — решение для управления тестированием на основе браузера, которое предоставляет возможности, необходимые для планового ручного тестирования, пользовательского приемочного тестирования, исследовательского тестирования и сбора отзывов от заинтересованных сторон.
Проекты GitHub, инструмент управления работой, который можно использовать для создания канбан-досок, отчетов, панелей мониторинга и других функций.
Дополнительные сведения
Управление совместной разработкой