
アジャイル開発とメンテナンス時間
こんにちは。日本IBMの西村です。
私は入社以来、システムの新規構築や更改のプロジェクトに携わってきましたが、今春、初めて運用保守のプロジェクトに入ることになりました。基盤を担当していますが、システム上で稼働するアプリケーションはアジャイルで改修・追加開発が行われています。今回は運用保守とは切っても切れないメンテナンス時間について、アジャイルとの関連や普遍的なことを織り交ぜて感じたことを書きたいと思います。
せっかく使おうと思ったのにアプリ使えないの?
メンテナンス時間か~!
チームで担当するシステムはいくつかありますが、代表的なものが2つあり、どちらもBtoCのモバイルアプリが稼働しています。
月に2回システム停止を伴うメンテナンス時間が設けられていますが、正直、これまではユーザの立場からメンテナンス時間って煩わしいものだと思っていました。もちろんメンテナンス時間はアクセスが少ない時間帯に設けられていますが、ふと思い立って何かのアプリを使おうとしたらサービス時間外で使えない、なんて経験はないでしょうか。なんだか拍子抜けしちゃいますよね。
痛感するメンテナンス時間帯のありがたいみ
でも、いざ運用保守する立場になると、この数時間のありがたみが半端ないです。
アプリはアジャイルで回しているのでほぼ毎月リリースがあり、新しい機能が追加されると基盤でも対応が必要なことが出てきます。ユーザにささる機能が追加されると一気にアクセスが増え、登録ユーザが増えればチューニングやリソースの増強も必要になります。もちろん機能追加に関係なく定期的に必要な更新作業などもあります。
投資すれば無停止で色々対応できるシステムを作ることができますが、そうもいかない場合、停止して作業できるということはユーザへの影響を気にすることなく、手順の簡素化にもつながるので、リスクを抑えられる効果的な手段です。問題発生時にも対応しやすいメリットがあります。
ユーザにとって24時間365日使えることは高い価値を持つ場合がありますが、色々な作業を計画する中で、システムが停止できるってなんて素晴らしいんだろうと思います。
メンテナンス時間があるからこそのつらみ
ただ、メンテナンス時間の尊さを実感する一方、弊害もある気がします。
メンテナンス時間は時間が限られているため、いくつもの作業を並行して実施することが多いですが、作業が多すぎて人手が足りなくなることがあります。これは単純にアジャイル開発のスピード感に合わせて作業が多くなっている面と、システムを停止しなくてもできる作業をメンテナンス時間に実施している面があるように感じています。後者はアジャイル開発に関係なく普遍的な内容だと思いますが、ユーザ影響のリスク低減や手順の複雑さなどとのバランスが難しいところです。もしメンテナンス時間がもっと短かったらどうしていただろうと考えてみています。
最後に
今のプロジェクトに入って3か月が経ちました。アプリのアジャイル開発のスピード感に適うよう、基盤も俊敏で柔軟な対応が必要であることを再認識しています。
今やこのアプリはお客様の中で最大の顧客接点となっており、最重要システムに位置付けられています。うまくメンテナンス時間を活用して、ユーザとお客様に価値を届けるアプリを支えていきたいと思います。