運用作業を楽しく(アジャイルで)やる仕組みを考えてみた
まず開発手法の特徴について簡単に書いておきます。
-
Agile
- 予定は、開発サイクル単位で状況に応じて見直す(スプリント)
- スプリント単位でサイクルを回して開発
- スプリントで区切ることで、チームの開発速度が分かったり、振り返りのタイミングがセットしやすい
-
ウォーターフォール
- 予定は、要件定義〜リリースまですべて最初にたてる
- 先行き不透明な部分があっても、見積もり担当や現場技術者の経験を元に計画を立てる
- スケジュールから遅れるとすぐに分かる。
運用をAgileでやってみた感想
・使用したツール
- メッセンジャー(HipChat)
- タスク管理(JIRA)
※ここでの運用作業は、社内システム関連プロジェクトでの運用例になります。toCなどのプロジェクトではちょっとまた違ってくると思います。
運用タスク例
システム障害調査、機能拡張見積もり、データパッチ、データ抽出、データ一括更新、ライブラリ等のバージョンアップ など
-
事前準備(タスク発生を検知できる仕組みづくり)
- ユーザが自分で起票できるJIRA(カンバン)を作成
- ユーザがカンバンに起票したらHipchatに通知が行くように設定
-
以下を随時タスクがきたタイミングで行う
- 運用タスクに完了日を設定
- スプリントにタスクをいれていく
- 突発作業などがはいって消化できなさそうなときは、チームメンバやあるいは運用作業の完了日の調整を行う。
運用をなぜAgile?
タスクが少ないうちはカンバンでの管理で十分。タスク量が多くなってくると以下の問題が生じる。
- 管理できなくなる
タスクが埋もれたり、何からやればいいのか、同じタスクがある etc.. - 運用担当者の精神的負担
タスクが山ほどあるとそのタスク全てを消化できる気がしない・・・・
上記問題の対策として、カンバンでの管理も行いつつ、それとは別でスプリント単位に落として対応していくことで、目先のターゲットを明確にできる
運用作業は終わりが見えなかったりするのでしんどいこともありましたが、
Agileで回すようにしてからは、チーム内のモチベーションもあがり効率的にタスクを消化できるようになりました。根本解決は、運用が発生しないシステムづくりですが、そこに向かうための入り口としてこういうやり方もあるという参考になればいいと思います。