
第39回「品質を守る開発手法」~DevOps~
従来の仕様内容を決めてから開発する「ウォーターフォール型」から、まずは作ってみようという「アジャイル型」へWEB開発を中心に移行してきました。しかし、日本国内ではアジャイルの普及が十分とは言い難い状況です。その理由は、開発とテスト技術者が並行して作業を進める手法がなじまないことが挙げられます。欧米では、テスト技術者は開発技術者と同様の地位を確立しており、品質を向上するうえで尊重する文化が根付いています。
一方日本では、まだテスターとしての地位としてしか認知されていませんでした。これは、開発技術者の手伝い程度の認識の低さが原因だったと思われます。この状況で、国内の大手Webサービス会社が採用して成功事例が紹介されてきたのが「DevOps」です。

品質向上のカギ 『DevOps』
DevOpsとは開発チーム(Development)と運用チーム(Operation)が一緒に協力して開発する手法です。ソフトウェア品質は、「製品品質」「利用時の品質」「文書品質」に加えて「運用品質」の4品質が大切です。これまでは、開発時点では運用品質はあまり考慮されておらず、その結果、運用を開始すると不具合が発見されるという事象がありました。
開発時点から運用するチームの意見を取り入れることは一見当たり前のような取組みですが、これまで行われていませんでした。その背景として、それぞれの役割や立場の違いから対立構造が生じていたことが指摘されています。開発(Dev)が新しい機能を追加する役割に対して、運用(Ops)はシステムの安定運用です。この立場の違いを相互に理解していく必要があります。
そのうえで、「結局どうすればいいのだ!」で私が出した答えは、「DevTeOps」です。開発、運用に加えテスト・検証チームが同時に協力してプロジェクトを進める手法です。テストチームが品質を客観的に検証することで、安定運用を求める運用チームが安心して取組めるようになります。これは、開発と運用の間を取り持つ接着剤となるのです。この3つのチームがお互いを尊重し、信頼して進めることにより高品質なシステム開発が可能となります。

品質とスピードの両立
実際の開発事例として大手Webサービス会社があります。この会社は常時システム更新を行い、回帰テストも自動化を行っています。そのうえで運用チームとの連携を図った結果、内部変更で平均5日要していた更新作業が、最短3時間で行えるようになりました。また、大手キャリア通信会社は、他社の料金体系に即時追従する方針を出していますが、システム変更に対する更新スピードは数時間とも言われています。
もちろん、金融系やインフラ系のシステムのように容易に変更してはいけない領域では対象となりません。しかし、変化の激しいWebサービス系の会社においてはもっとも適した開発手法だと思います。
「DevTeOps」という名称は私が勝手に命名した手法名ですが、経験上バラバラに取組んでいた品質手法を整理したらこうなった。そのような手法です。ものづくりの世界では利用者の声を製品に反映させる。当たり前のことです。それぞれの専門家が集まってものづくりをする。これも当たり前です。こんな文化を根付かせることで、ソフトウェアの品質向上となれば本望です。