catch-img

第39回「品質を守る開発手法」~DevOps~

永年、ソフトウェア品質のコラムを書いていると「結局どうすればいいのだ!」という質問をいただくことがあります。

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

​​​​​​品質向上のカギ 『DevOps』

DevOpsとは開発チーム(Development)と運用チーム(Operation)が一緒に協力して開発する手法です。ソフトウェア品質は、「製品品質」「利用時の品質」「文書品質」に加えて「運用品質」の4品質が大切です。これまでは、開発時点では運用品質はあまり考慮されておらず、その結果、運用を開始すると不具合が発見されるという事象がありました。

開発時点から運用するチームの意見を取り入れることは一見当たり前のような取組みですが、これまで行われていませんでした。その背景として、それぞれの役割や立場の違いから対立構造が生じていたことが指摘されています。開発(Dev)が新しい機能を追加する役割に対して、運用(Ops)はシステムの安定運用です。この立場の違いを相互に理解していく必要があります。

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


品質とスピードの両立

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

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

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

藤井 洋一
藤井 洋一
■略歴  1985年 金融機関退職後、現在の会社を創業  2005年 一般社団法人IT検証産業協会の設立に関わり、ソフトウェア品質向上の活動を推進。2016年から会長を務め、2023年6月より監事として活動中  2013年 一般社団法人コンピュータソフトウェア協会(現:ソフトウェア協会)においてソフトウェア製品の品質認証制度(PSQ認証制度)を委員長として制度設計、運用開始  2016年 一般社団法人IT団体連盟の発足に参加、理事及び政策委員として活動。2023年諮問委員会 副委員長として活動中  2018年 「情報銀行」認定制度の制度設計サポート  2019年 工業標準法に基づく試験事業者登録制度(JNLA)等に係る試験事業者技術委員会電磁的記録分野技術分科会委員  ■その他の活動  独立行政法人情報処理推進機構にて「品質説明力強化のガイドライン」作成委員として執筆  ソフトウェア製品の国際規格「ISO/IEC 25051」のJIS化委員