Close

Отрицательная скорость: как повысить предел сложности


Одна из самых распространенных целей организации по разработке — быстрая поставка качественного программного обеспечения.

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

Одна из самых распространенных целей организации по разработке — быстрая поставка качественного программного обеспечения.

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

В чем причина такого разброса в производительности?


Сложность поставки программного обеспечения — это разница между быстрой поставкой качественного программного обеспечения и… ее отсутствием. Это разница между звоном в победный колокол после успешного еженедельного релиза и разобщенной командой по поставке программного обеспечения, раздосадованной тем, что месяцы работы над последней версией привели к шести новым багам и откату.

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

Глобальная сеть
Связанные материалы

Укротите бесконтрольный рост программного обеспечения

Значок: три кольца
СМ. РЕШЕНИЕ

Управление компонентами с помощью Compass

Сложность в сфере поставки программного обеспечения


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

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

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

Как определить, что вы приближаетесь к пределу сложности


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

Самым очевидным признаком того, что команда достигла предела сложности, является то, что на преодоление организационной сложности она тратит больше времени, чем на решение непростых проблем, на которых ей следует сосредоточиться. Такие показатели DORA, как время выполнения для изменений (скорость) и частота сбоев при внесении изменений (качество), показывают, замедляются команды с течением времени или ускоряются. На эти показатели влияют и другие факторы, но в целом это хороший индикатор эффективности команды.

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

Best for managing microservices: Compass

Compass hero screen.

Compass is an ideal server management tool. It simplifies handling microservices architectures by putting disconnected data about engineering work and teamwork together in one central, searchable location. 

Compass' features include: 

  • Get full visibility into service details with relevant APIs, libraries, documentation, key health metrics, latest deployment activities, on-call schedules, and more.
  • Document and track upstream and downstream dependencies and understand performance impact across teams and services.
  • View all incidents, deployments, and other critical activities for a service and its dependencies in one place.

Best for CI/CD: Bitbucket Pipelines

Bitbucket pipeline screenshot.

CI/CD is an acronym for continuous integration and continuous deployment

Bitbucket Pipelines is a CI tool that automates processes. It works right out of the box with Bitbucket, an Atlassian cloud-based version control system. It can use code to manage pipelines, letting users commit pipeline definitions and start builds fast. Bitbucket Pipelines also has CD features that allow you to deploy projects to live infrastructure.

Part of the CI/CD development process is to build microservices. Bitbucket Pipelines fosters efficiency by simplifying workflows and integrating with Bitbucket's cloud version control system.

Best for ITSM: Jira Service Management

Jira Service Management is an add-on for Jira Software, a microservices-based application that lets you control IT services, such as incident, problem, and change management. Jira Service Management’s ITSM features allow IT teams to provide excellent service. There are several reasons why that is the case: 

  • Flexibility: JSM's collaborative approach can help streamline service delivery processes.
  • Automation: The automation suite can help automate recurring tasks.
  • Integration: JSM integrates seamlessly with other Atlassian tools.
  • Security: It encrypts all data in transit using TLS 1.2+.
  • Scalability: JSM is an agile ITSM product that can scale up to the enterprise level.

Best for documentation: Confluence

Confluence is a collaborative documentation tool. It’s ideal for creating and sharing documentation, critical in microservices architectures. Confluence offers a wide range of Confluence templates for various setups, including those using Kubernetes and Docker, a microservices tool that helps developers build, deploy, and run containers. 

Confluence templates include multiple features and apps to help you capture, distribute, and update your technical documentation. Also, with Confluence, you can centralize all your documentation in one place and grant access to users only to what they need.

Best for bug tracking: Jira Software

JSW issues screenshot.

Jira Software excels at bug tracking and project management. It provides a platform to track, prioritize, and resolve bugs effectively through an easily navigable interface. Jira Software's bug-tracking features contribute significantly to successful microservices management. They also address the potential for software sprawl.

With Jira Service Management, Jira's capabilities extend to streamline IT service management, including incident, problem, and change management within microservices and monolithic architecture.

Best for monitoring and logging: Prometheus

Prometheus is an open-source tool developers use to manage microservices. It collects extensive metrics, including counters, gauges, histograms, and summaries, that comprehensively view the application's performance. Prometheus also assists in real-time troubleshooting by providing a comprehensive monitoring and alerting system that enables developers and IT teams to identify and resolve issues promptly.

Best for testing microservices APIs: Postman

The distributed nature of microservices architectures significantly hamper traditional testing methodologies. Testing the entire system becomes complex and time-consuming because each microservice is an independent component. This is where a specific microservices testing tool like Postman comes in handy.

Postman simplifies the process of testing microservices APIs. Developers love that it can automate testing, enabling faster and more accurate results.

Some of the ways Postman simplifies the process of testing microservices APIs include: 

  • Visual request builder: Postman's visual request builder makes it easy to construct HTTP requests without writing code. 
  • Request collections: Postman allows you to organize your API requests into collections, making it easy to group related requests and share them with other team members.
  • Predefined tests: Postman provides a library of predefined tests that you can use to validate the responses from your API requests. 
  • Test scripts: Postman allows you to write test scripts using JavaScript, giving you more control over your tests and enabling you to automate complex testing scenarios.

Как определить, что вы приближаетесь к пределу сложности


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

Самым очевидным признаком того, что команда достигла предела сложности, является то, что на преодоление организационной сложности она тратит больше времени, чем на решение непростых проблем, на которых ей следует сосредоточиться. Такие показатели DORA, как время выполнения для изменений (скорость) и частота сбоев при внесении изменений (качество), показывают, замедляются команды с течением времени или ускоряются. На эти показатели влияют и другие факторы, но в целом это хороший индикатор эффективности команды.

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

Повышение предела сложности


Why is monitoring and testing important in microservices architecture?

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

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

What are some common challenges in monitoring microservices?

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

В Atlassian занято более 10 000 сотрудников и используется более 17 000 программных компонентов, но наши команды разработчиков работают по большей части так же свободно, как и стартапы, быстро поставляя качественное программное обеспечение. В чем наш ключ к успеху? В повышении предела сложности для увеличения эффективности команд разработчиков ПО.

Вот два действия, которые помогут вам начать повышать предел сложности.

  • Отслеживайте и оценивайте показатели DORA. Как выглядят показатели DORA вашей команды? Если вы еще не отслеживаете их, показатели DORA по умолчанию доступны в Compass.
  • Определяйте и оценивайте степень удовлетворенности разработчиков. Как разработчики ПО чувствуют себя в ваших командах? Большинство организаций проводит опросы для оценки удовлетворенности сотрудников. Запросите результаты с разбивкой по функциональным областям, чтобы получить представление об удовлетворенности разработчиков. Ключевые вопросы касаются оценки следующих утверждений:
    • Я горжусь тем, что поставляю.
    • Уровень стресса на моей работе приемлемый.
    • Я понимаю, как моя работа способствует достижению целей компании.

Кроме того, Compass собирает эту информацию во время ритуала CheckOps, где команды делятся своими впечатлениями о прошлой неделе и рассказывают о том, что могло бы быть лучше.

Для повышения предела сложности требуется сочетание инструментов, процессов и ритуалов. Платформа для разработчиков, такая как Compass, поможет вам понять состояние системы, составить карту зависимостей и создать постоянные ритуалы, что позволит повысить предел сложности и раскрыть потенциал команд по поставке программного обеспечения в вашей организации.

Попробуйте Compass бесплатно уже сегодня.

What are some best practices for monitoring and testing microservices?

To test and monitor microservices effectively, use monitoring data, set the proper alert levels, automate tests, set up continuous integration and delivery pipelines, and regularly test their performance and security. These methods ensure that your platforms work reliably. 

Join the Atlassian Community for more Microservices articles and discussions.


Поделитесь этой статьей
Следующая тема

Рекомендуемые статьи

Добавьте эти ресурсы в закладки, чтобы изучить типы команд DevOps или получать регулярные обновления по DevOps в Atlassian.

Рисунок: DevOps

Сообщество Compass

рисунок: преодоление препятствий

Обучающее руководство: создание компонента

Рисунок: карта

Начните работу с Compass бесплатно

Подпишитесь на информационную рассылку по DevOps

Thank you for signing up