• Column
  • デジタルシフトに取り組むためのソフトウェア開発の新常識

「無駄なものを作らない」がアジャイル開発の目的【第3回】

梶原 稔尚(スタイルズ代表取締役)
2018年11月28日

前回までに、企業がデジタルシフトによってビジネスを成長させるためには、「リーン・スタートアップ」によるマネージメントと、ソフトウェアを素早く開発しリリースする「アジャイル開発」が必要だとお話ししました。従来型の開発手法「ウォーターフォールモデル」が、ビジネス的な試行錯誤を前提にしていないからです。今回は、アジャイル開発手法の1つである「Scrum(スクラム)」を例に、どのように進めていくかをお伝えします。

 「アジャイル(Agile)」は直訳すると、「(動きが)機敏な」とか「素早い」という意味です。ソフトウェア開発の世界で広く知られるようになったのは、2001年に「アジャイルソフトウェア開発宣言」が出されてからです。

 1990年代の中頃から、ユーザーと開発者が緊密な協力関係を結びながらソフトウェアを開発するための手法が登場し始めていました。「Scrum(スクラム)」や「XP(eXtreme Programming)」といった開発手法です。これら手法の関係者が集まって世に問うたのが、アジャイルソフトウェア開発宣言です。

PCやインターネットの普及がアジャイルを求めた

 同宣言では「よりよい開発方法を見つけ出す」活動を通じて、「包括的なドキュメントよりも動くソフトウェア」や「計画に従うことよりも変化への対応」などに価値を置くことをうたっています。特に「計画に従うことよりも変化への対応」は、すべてのアジャイル開発手法が共通に挙げる目的の1つです。

 その背景には、2000年頃からのPCやインターネットの爆発的な普及があります。ITとソフトウェアがビジネスの中心に位置するようになると同時に、企業におけるビジネスの変革スピードが、ますます速くなっていきました。そこでの米国企業は、「アジャイルでしか生き残れない」という状況に直面していたというわけです。この状況は現在のデジタルシフトでも同じですね。

 日本でのアジャイル開発は、2005年ごろから先進的な取り組みが始まり、2009年には「アジャイルジャパン」というイベントが開かれています。開発者の間に徐々に浸透し、一部の開発者コミュニティではアジャイルが常識になっていきます。2010年代に入ると、情報サービスをビジネスの中心に据える先進的企業の開発現場で、アジャイル開発の採用事例が増えていきました。

 現在では、クラウドを利用している企業においては特に、素早いサイクルで開発するという観点から、DevOps(開発と運用の統合)やCI(継続的インテグレーション)/CD(継続的デリバリー)など、アジャイルと同義の手法が広く採用されるようになっています。

 アジャイル開発における代表的な手法には、Scrum、XPのほか「ユーザー機能駆動開発(FDD)」などがあります。どこに力点を置くか、どんなツールを使うかが異なるものの、すべての手法の考え方は、以下の点で共通です。

(1)できるだけ開発スコープを小さく分割する
(2)優先度順に繰り返し型で開発する(イテレーション開発)
(3)何度もリリースする
(4)すべてにおいて変更を前提に考える

 ここではScrumを題材に、アジャイル開発の進め方を説明します。

アジャイルの代表的手法「Scrum」は日本発

 Scrumは、Jeff Sutherland(ジェフ・サザーランド)氏らが1993年頃に提唱したソフトウェア開発手法ですが、そのコンセプトは日本発です。1986年、日本の研究者が日本企業と米国企業の組織を比較分析した研究論文において、自由度が高い日本発の開発手法を“ラグビーのスクラム”にたとえて紹介したのが始まりです。それをSutherland氏らが開発手法に採り入れたのです。

 その発端からも分かるように、Scrumは「チームで仕事を進めるためのフレームワーク」です(図1)。ラグビーのフォーメーション同様、チームワークを重視するのが特徴で、技術的な仕組みではありません。これに対しXPは、プログラマー中心の開発手法で、技術的な実践を重視しています。

図1:一般的なScrumの実施手順