第40回 「品質を守る開発手法:DevOps」

ソフトウェア品質のコラムもついに40回目となりました。脱線したコラムも多いですが業界のトピックスが面白いと言っていただけるので今後も継続したいと思います。

さて、3年以上もコラムを書いていると「結局どうすればいいのだ!」という質問をいただくことがあります。従来の仕様内容を決めてから開発する「ウォーターフォール型」から、まずは作ってみようという「アジャイル型」へ進化すると言われていますが、日本国内ではアジャイルの普及は低く、その理由は、開発とテスト技術者が並行して作業を進める手法がなじまないようです。欧米では、テスト技術者は開発技術者と同様の地位を確立しており、品質を向上するうえで尊重する文化が根付いています。

一方日本では、まだテスターとしての地位しか認知されておらず、開発技術者の手伝い程度といった認識の低さが原因です。この状況で、国内の大手Webサービス会社が採用して成功事例が紹介されてきたのが「DevOps」です。DevOpsとは開発チーム(Development)と運用チーム(Operation)とが一緒に協力して開発する手法です。

ソフトウェア品質は、「製品品質」「利用時の品質」「文書品質」に加えて「運用品質」の四品質が大切です。これまでは、開発時点では運用品質はあまり考慮されていませんでした。その結果、運用を開始すると不具合が発見されるという事象がありました。開発時点から運用するチームの意見を取り入れる、一見当たり前のような取り組みですがこれまでされていませんでした。理由は、それぞれの役割や立場の違いで対立構造ができているからではと指摘されています。開発(Dev)が新しい機能を追加する役割に対して、運用(Ops)はシステムの安定運用です。この立場の違いを相互に理解していく必要があります。

そのうえで、「結局どうすればいいのだ!」で私が出した答えは、「DevTeOps」です。開発、運用に加えテスト・検証チームが同時に協力してプロジェクトを進める手法です。テストチームが品質を客観的に検証することで、安定運用を求める運用チームが安心して取り組めるようになります。開発と運用との間を取り持つ接着剤となるのです。

この三つのチームがお互いを尊重し、信頼して進めることにより高品質なシステム開発が可能となります。実際の開発事例として大手Webサービス会社があります。この会社は常時システム更新を行い、回帰テストも自動化を行っています。そのうえで運用チームとの連携を図った結果、内部変更で平均5日要していた更新作業が、最短3時間で行えるようになりました。また、大手キャリア通信会社は、他社の料金体系に即時追従する方針を出していますが、システム変更に対する更新スピードは数時間とも言われています。

もちろん、金融系やインフラ系のシステムのように容易に変更してはいけない領域では対象とはなりません。しかし、変化の激しいWebサービス系の会社においては最も適した開発手法だと思います。

「DevTeOps」という名称は私が勝手に命名した手法名ですが、経験上バラバラに取り組んでいた品質手法を整理したらこうなった。そのような手法です。ものづくりの世界では利用者の声を製品に反映させる。当たり前のことです。それぞれの専門家が集まってものづくりをする。これも当たり前です。こんな文化を根付かせることで、ソフトウェアの品質向上となれば本望です。

次回は10月27日(木)更新予定です。

★更新情報は「ERPナビ(大塚商会)Facebookページ」にて!

このコラム読者におすすめの製品