NTT DATA TECH
🤔

アジャイル開発×SRE視点で考える_トイル管理

はじめに

ソフトウェア開発では、機能開発だけでなく、サービスの運用・保守にも多くの工数が必要となります。運用業務の中には、日々繰り返される単純作業や手動対応といった「本質的な価値の創出」に直結しにくい業務が混在しやすく、結果として開発チームの集中力や生産性を削いでしまうことがあります。

本記事では、こうした運用負荷を考えるうえで重要となる「トイル」という概念と、その向き合い方を紹介します。また、ここで紹介する取り組みはアジャイル開発のスプリント運用を前提としている点にご留意ください。

トイルとは何か

トイルとは、Google の SRE(Site Reliability Engineering)において、「手作業、繰り返される、自動化が可能、戦術的、長期的な価値がない、サービスの成長に比例して増加する、といった特徴を持つ作業」と定義されています。

具体的には次のようなものが挙げられます。

  • 重要性の低いモニタリングアラートの確認
  • 定期的なログ確認
  • 権限の申請や棚卸
  • 他チームからの問い合わせ対応

このような作業は、本来的なエンジニアリングの価値創出(新機能の開発、システム改善など)とは異なり、サービスを“維持するための作業”である点が特徴です。

トイルが引き起こす問題

トイルはサービス維持に必要なものですが、過剰に抱えると価値創出を妨げる原因になってしまいます。そのため、トイルによる弊害を理解し、意識的に管理・削減することが重要だとされています。

主な問題点とリスク

  • 機会損失:本来やるべき開発/改善が後回しになる
    • トイルに時間を取られると、新機能開発や改善、最適化など「価値創出」に割ける時間が減る。
    • その結果として、プロダクトの進化や競争力強化の速度が落ちる可能性がある。
  • メンバーの疲弊とモチベーション低下
    • 繰り返しの単純作業や手動対応が続くと、エンジニアは「成長実感」や「やりがい」を感じづらくなりやすい。
    • 長期的に見ると、燃え尽きや離職のリスクにつながることがある。

このようにトイルを軽視すると、開発効率・品質・チームの健全性に悪影響が及ぶのです。

なぜ問題が放置されるのか

トイルは「細かく、地味で、目立たない」作業であるため、優先順位が低く見られがちです。また、運用と開発が混在している組織では、誰がトイルを管理するか責任が曖昧になりやすいです。

もちろん、自動化で対応するのが理想ですが、自動化コストや人の判断を伴うタスクなどで、やむを得ず手動で対応するケースもあると思います。

チームでの対処方法

私たちのチームで実施した方法を基に、一般化した対処方法をご紹介します。

トイル作業の洗い出し

まず、どの作業がトイルに該当するかを明確にするための洗い出しを行いました。

日々の開発や運用の中で、手作業かつ繰り返し発生しているタスクを拾い上げ、例えば次のような項目がトイルとして分類されました。

  • スプリント毎のブランチ作成
    • 開発サイクルのたびに発生する作業で、一定の規則に従う手動対応が必要。
  • 日々の Warn / Error ログ調査
    • 重要度が低いものも多く、開発タスクの合間に割り込むことで集中を妨げやすい。
  • 他チームからの突発的な問い合わせ対応
    • 即時に対応が必要になることが多く、開発の流れを中断してしまう。

さらに、スプリントのレトロスペクティブでは、ストーリーポイントの見積もり時に 0.5pt 程度の「一瞬で終わるタスク」もトイルとして扱うことにしました。これらの作業は本来は開発タスクに分類されますが、非常に小さいため単体で扱うと作業が細切れになり、他の開発タスクへの集中を妨げる原因になりやすいためです。

トイル作業の運用

タスクを明確にしたうえで、次に、それらをスプリント運用の中でどのように扱うかを決めました。私たちのアジャイル開発チームでは「スプリントごとにトイル担当者を明確にする」方式を採用しています。

運用ルール:

  • 各スプリントの開始時に1人をトイル担当者としてアサインする。
  • スプリント期間中、その人は主に運用・保守・手動タスク(トイル作業)を受け持つ。
  • その他のDevメンバーは機能開発に集中する。
  • 次のスプリントでは担当を交替することで、負荷の偏りを防ぐ。

このように役割を明確に分けることで、運用と開発の混在を防ぎ、両側のバランスをとる体制を意図しています。

得られた効果

この運用スタイルによって、私たちは以下のような効果を実感しています。

  • Devメンバーの集中時間の確保:割り込みや運用対応から解放されることで、ストーリー消化やコード品質向上に集中でき、スプリントの達成率と予測性が上がった。
  • 運用タスクの見える化・属人化の防止:誰がどの作業をしているか明確になるため、運用量のバランスが把握しやすい。
  • チームの公平性と知見の共有:毎回担当者を交替することで、一部の人に運用負荷が偏らず、チーム全体で運用/開発の両方に関する理解が深まった。

おわりに

トイルは単なる「雑用」ではなく、チームの時間・エネルギー・質を静かに蝕む「潜在的な負担」であることを、本記事で示しました。トイルを無視し続けることは、新機能開発や改善、サービスの成長といった本来の目的を遠ざけることになりかねません。

トイルは自動化すべきですが、まずは「誰が運用を担うか」を明確にするだけでも、チームにとって大きな改善になると感じています。

参考文献

NTT DATA TECH
NTT DATA TECH
設定によりコメント欄が無効化されています