本特集の第1回でモダンアプリケーション開発の要素として、アジャイル開発に触れた。今回は実際にアジャイルフレームワーク「スクラム(Scrum)」を採用した事例として、デンソーを取り上げる。同社の成迫剛志デジタルイノベーション室室長執行幹部クラウドサービス開発部長へのインタビューを基に、実際のビジネスの現場におけるアジャイル開発の実態、留意点、さらに同社独自の工夫などについて紹介する。
なぜアジャイル開発なのか
成迫氏が室長を務めるデジタルイノベーション室は、「クラウドを活用したサービスにより、新たなビジネスを創出する」というミッションのもと、ビジネス・サービスの開発、ソフト開発、インフラ開発、DevOpsの対応などを担当している。
対象の開発プロジェクトには、同室が単独で進めるもの(「yuriCargo=ゆりかご」アプリなど)と、他の社内部門と連携して進めるものがあるが、いずれの場合も同室から参画するメンバーが主体となり、アジャイルフレームワークのスクラムを使ってプロジェクトを推進する。
スクラムを採用した理由について、成迫氏は「従来のウオーターフォール型の開発のように、企画、要件定義、概要設定、詳細設計、コーディング、単体テスト、システムテストといった流れで進めた場合、大きな手戻りが発生する可能性がある。途中で発生した要求仕様の変更に対して柔軟に対応することもできない。さらに、最初に仕様が決まっていないと要件定義から先に進まなくなる。このような状況を避けるため、スクラムを採用し、より柔軟かつ小さな単位で開発を進めるようにしている」と話す。
スクラムによる開発プロジェクトの特徴として、「少人数の組織構成」「オーバーラップした役割」「プロダクトオーナーへの権限移譲」を挙げ、さらに同社における人的リソースとプロジェクトメンバーの関係を表す「マトリックス型組織」についても言及した。
■少人数の組織構成
アジャイル開発プロジェクトはスクラムの原則にのっとり、少人数の組織構成となる。「人数が多くなるほどチームとしてのスピードが遅くなる。これはチーム内が階層構造化するため、全員の合意形成や理解を得るための時間がかかるようになるからだ。スピード化を図るには、少人数のチームにして、内部報告のためのドキュメントを作成するといった作業や、何度も内部報告会議を開くような対応を排除する必要がある」と成迫氏は話す。
■オーバーラップした役割
プロジェクト内には、スクラムで定義されるPO(プロダクトオーナー)、スクラムマスター、開発担当者が参加することになるが、デンソーは、さらにオペレーション関係や非機能要件周り、開発環境、インフラなどの整備などを行うSRE(サイト・リライアビリティー・エンジニアリング)担当が加わる。
「それぞれ役割分担はあるが、例えばデータベースの担当だから、Web UIの担当だからといった区分けをしたり、開発者だからビジネスについて議論しなかったりすることはない」(成迫氏)。このように、担当者はある程度オーバーラップした役割を担いながらプロジェクトを進める。