Close

負のベロシティ: 複雑さの限界を引き上げる方法


エンジニアリング組織の最も一般的な目標の 1 つは、高品質のソフトウェアを迅速に提供することです。

CIO や CTO のビジョン ステートメントを見て、彼らの話に耳を傾けてみてください。おそらく、何らかの形でこの目標が追求されています。一般的な目標であるとはいえ、その目標を達成できたチームとソフトウェア デリバリーで行き詰まっているチームの間には幅広いスペクトラムが存在します。インシデントが発生することも顧客に悪影響を与えることもほとんどなく、一貫して新しいコードを本番環境に追加するチームもあれば、四半期に一度のリリースに苦労しているチームもあります。

エンジニアリング組織の最も一般的な目標の 1 つは、高品質のソフトウェアを迅速に提供することです。

CIO や CTO のビジョン ステートメントを見て、彼らの話に耳を傾けてみてください。おそらく、何らかの形でこの目標が追求されています。一般的な目標であるとはいえ、その目標を達成できたチームとソフトウェア デリバリーで行き詰まっているチームの間には幅広いスペクトラムが存在します。インシデントが発生することも顧客に悪影響を与えることもほとんどなく、一貫して新しいコードを本番環境に追加するチームもあれば、四半期に一度のリリースに苦労しているチームもあります。

このパフォーマンスの違いの原因は何でしょうか?


ソフトウェア デリバリーの複雑さが、高品質のソフトウェアを迅速に提供できるかできないかの違いとなります。これは、ソフトウェア デリバリー チームが、毎週リリースに成功して勝利の鐘を鳴らすか、数か月にもわたって最新リリースに取り組んだにもかかわらず 6 つも新しいバグが見つかってロールバックが必要になり、失望してやる気が失せるかの違いです。

スタートアップが新製品や新機能をリリースするスピードと品質を、従来の大企業と比較してみましょう。たとえば、金融業界では、フィンテックの新興企業は、この 10 年間、大手銀行の市場シェアを少しずつ奪ってきました。大手銀行はよく、新興企業は規制監督が少なく、維持すべき従来のモノリシックなアプリケーションの遺産もなく運営している、フィンテックの新興企業の不当な優位性を指摘しています。チームの規模が小さいほど俊敏性が高まり、顧客のニーズに基づいて方向転換できます。基本的に、フィンテックは従来の銀行の複雑さを持っていないため、より迅速かつ少ないリスクで行動できます。ソフトウェア チームのペースを落とす可能性がありますが、複雑さは必ずしも悪いことではありません。

グローバル ネットワーク
関連資料

分散するソフトウェアを管理する

アイコン: 3 つの輪
ソリューションを見る

Compass によってコンポーネントを管理

ソフトウェア デリバリーの複雑さ


複雑さには良い面もあります。難しい問題を解決することは非常にやりがいがあります。困難に立ち向かい、難しい問題に取り組み、業界を一変させようというチームのモチベーションになります。しかし、あるポイントを超えると、複雑さは難しい問題を解決することと無関係になり、ソフトウェア チームにマイナスの影響をもたらすようになります。

組織の複雑さは、ソフトウェア チームの効率を低下させる大きな要因となります。コリンズ辞典では、複雑さ「多くの異なる部分が複雑に相互に接続または関連している状態」と定義しています。具体的に言えば、組織の複雑さとは、ソフトウェア チームが組織の他の部分とやり取りする際に対応する必要のある情報、依存関係、変更、他のチーム、ツール、およびリクエストの集合体です。

組織の複雑さが増すと、当然ながら高品質のソフトウェアを迅速にデリバリーすることが難しくなります。なぜなら、チームは難しい問題の解決よりも組織内の対応に多くの時間を費やすからです。成長中の組織はほどなく、ソフトウェア チームが複雑さの限界に達したことに気づきます。複雑さの限界とは、仕事に対する満足度や、作成されるソフトウェアの品質とスピードに影響が及ぶ前にチームが対応できる複雑さの量です。論理的には、組織の複雑さを軽減すれば、チームは難しい問題の解決に集中し、より高品質なソフトウェアをより早く提供できるようになると考えられるでしょう。これが必ずしも当てはまらない理由を探ってみましょう。

複雑さの限界に近づいているかどうかの見分け方


複雑さの限界に達することは避けられないと感じるかもしれませんが、チームが限界に近づいていることを示すいくつかの指標があります。最初に言っておきますが、複雑さの限界にどれだけ近いかを示す絶対的な指標はありません。しかし、これらの指標は、どれだけ近いかを判断するのに役立つ可能性があります。

チームが複雑さの限界に達したことを示す最も明確な指標は、重点的に取り組むべき難しい問題の解決よりも、組織の複雑さへの対応に多くの時間を費やしているということです。DORA の変更のリード タイム (スピード) と変更エラー率 (品質) の指標をトレンド分析すると、チームが時間の経過とともに減速するかスピードアップするかが分かります。これらの指標に影響する要因は他にもありますが、これらはチームの効率を示す良い指標です。

開発者の満足度は、ソフトウェア チームがどのくらい組織の複雑さに対応しているかを示すもう 1 つの指標です。開発者は他のどのロール プロファイルよりも、難しい問題の解決に時間を費やすのが好きですが、邪魔になる不必要なタスクは嫌いです。開発者の満足度が低いということは、組織の複雑さがソフトウェア チームにとって課題となっていることをよく示しています。

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 の変更のリード タイム (スピード) と変更エラー率 (品質) の指標をトレンド分析すると、チームが時間の経過とともに減速するかスピードアップするかが分かります。これらの指標に影響する要因は他にもありますが、これらはチームの効率を示す良い指標です。

開発者の満足度は、ソフトウェア チームがどのくらい組織の複雑さに対応しているかを示すもう 1 つの指標です。開発者は他のどのロール プロファイルよりも、難しい問題の解決に時間を費やすのが好きですが、邪魔になる不必要なタスクは嫌いです。開発者の満足度が低いということは、組織の複雑さがソフトウェア チームにとって課題となっていることをよく示しています。

複雑さの限界を引き上げる


Why is monitoring and testing important in microservices architecture?

ソフトウェア チームの効率を取り戻すには、組織は複雑さの限界を引き上げる必要があります。複雑さの限界を引き上げるということは、本質的に、仕事の満足度やソフトウェア デリバリーの質とスピードに影響が及ぶ前に各チームが対処できる組織の複雑さの度合いを増やすことを意味します。

プラットフォーム エンジニアリングは、組織の複雑さの限界を引き上げるための重要な概念です。強力なプラットフォーム エンジニアリング チームは、組織の複雑さを日常業務から排除することで、ソフトウェア チームの認知的負荷を軽減することに重点を置いています。プラットフォーム エンジニアリングを正しく実装すれば、チームは組織の複雑さへの対応に費やす時間を減らして、難しい問題の解決に多くの労力を振り向けることができます。

What are some common challenges in monitoring microservices?

アトラシアンは、まさにこの理由で Compass という開発者エクスペリエンス プラットフォームを開発しました。Compass は、ソフトウェア チームがコンポーネント カタログ、指標、スコアカードを通じて組織の複雑さに容易に対応し、健全なエンジニアリング文化の構築に集中できるようにすることで、複雑さの限界を引き上げるのに役立ちます。ここで注目すべき点は、アトラシアンでは組織の複雑さが減少しなかったということです。実際、マイクロサービス アーキテクチャに移行する組織が増えるにつれて、組織の複雑さは増え続けました。私たちは、ソフトウェア チームがその複雑さに対応するために費やす時間を減らしたのです。これが、シンプル化プロジェクトと複雑さの限界の引き上げの違いです。

アトラシアンには 10,000 人以上の従業員と 17,000 以上のソフトウェア コンポーネントがありますが、当社のソフトウェア チームはほとんどがスタートアップのように自由に稼働しており、高品質のソフトウェアを迅速にリリースしています。私たちの成功の秘訣は、複雑さの限界を引き上げてソフトウェア チームの効率を上げたことです。

複雑さの限界を引き上げるには、次の 2 つを行います。

  • DORA 指標を追跡して評価します。あなたのチームの DORA 指標はどうなっていますか? これらの指標をまだ追跡していない場合は、すぐに使える DORA 指標が Compass で提供されています。
  • 開発者の満足度を把握して評価します。ソフトウェア チームの開発者はどんな感情を抱いていますか? 多くの組織が従業員満足度調査を実施しています。機能分野別に結果を尋ねて開発者の満足度についてのインサイトを得ましょう。主な質問には、次の記述の評価が含まれます。
    • 私は自信を持ってリリースできます
    • 仕事のストレスに対処できます
    • 私は自分の仕事が会社の目標にどのように貢献しているかを理解しています

あるいは、CheckOps 手順中に 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 についての継続的な更新をご覧ください。

DevOps のイラスト

Compass コミュニティ

イラスト: 障害の克服

チュートリアル: コンポーネントを作成する

マップのイラスト

Compass を無料で始める

DevOps ニュースレター購読

Thank you for signing up