(Photo by:Enrique Fernández)
はじめに
ムダな機能を開発していませんか?アメリカの調査会社スタンディッシュグループによると、ソフトウェアの機能の内45%は「全く使われていない」という調査結果が出ています。もし、この45%の機能を開発しなければ、かなりのコストダウンができたことでしょう。
なぜこんなことが起きるのでしょうか?
原因は、開発の初期段階では「本当に必要な機能」がわからないためだと考えられます。本当に必要な機能かどうかは、顧客からのフィードバックを得なければわかりません。しかし、従来のウォーターフォール型の開発では、プロジェクトの終盤になるまでフィードバックを得ることが困難です。そこで、考えだされたのが今回紹介するスクラムです。
この記事では、プロジェクトを改善したい方のために、スクラムの概要とメリット・デメリットをお伝えします。ぜひご一読して、プロジェクトをよりよいものにしていきましょう。
スクラムの概要
スクラムとは、アジャイル開発手法のひとつです。ソフトウェア開発のために考案された来歴を持ちますが、技術的な側面は含んでおらず、プロジェクトを進めるためのフレームワークという位置づけです。このため、スクラムでの開発は「テスト駆動開発(TDD)」や「継続的インテグレーション(CI)」などの他の開発技法と組み合わせて使います。
スクラムでの開発は、3人~9人の少人数のチームで行います。スプリントと呼ばれる2週間~4週間のプロセスを繰り返すことで、動作するプロダクトを定期的にリリースします。スプリントごとに、「開発する範囲の決定→開発→レビュー」を行い、方向性を確認しながらプロジェクトを進めていきます。最終的にプロダクトが完成するまでスプリントを繰り返します。
スクラムのメリット
早期に顧客からのフィードバックを得られる
スクラムでの開発は短期間で動作するプロダクトを作成できるため、定期的に顧客からのフィードバックを得ることができます。これにより、開発の最終段階になって「こんなものが欲しかったわけじゃない!」といったトラブルを避けることができます。
早期にリリースできる
スプリントごとに動作するプロダクトが作られるため、最低限リリースに必要な機能が揃った段階でリリースすることも可能です。これにより、完成を待たずに顧客にプロダクトの一部を提供できます。特に、不特定多数に公開されるウェブサービスでは、早期収益化に役立つでしょう。
プロジェクト終盤での大規模なビッグバンテストを避けられる
スクラムでの開発は少しずつプロダクトを作り上げていくので、最終局面になってモジュール間の結合の問題が発覚するといったことがなくなります。このため、開発の手戻りを少なくすることができます。ただし、TDDやCIを取り入れて、開発中にしっかりテストしておく必要があります。
変化に柔軟に対応できる
スプリントごとに要件を見直して方向性を調整できるため、仕様変更や追加への対応が柔軟にできます。とはいえ、あまりにも多くの変更を取り入れてしまうと、いつまでたってもプロジェクトが完了しなくなってしまいます。どこまで変更を受け入れるかは、顧客との調整が必要です。
スクラムのデメリット
習得が困難
ウォーターフォール型の開発とは大きく異なるため、移行する際の習得が困難です。また、チームは自己組織化されている必要があり、チームメンバー全員がスクラムについてしっかり理解していなければ、プロジェクトの失敗を招いてしまいます。そのため、スクラムに慣れるまでは、2スプリント程度の学習期間を設けることをおすすめします。
顧客の協力が必要
早期にフィードバックを得るためには、顧客の協力が必要不可欠です。フィードバックを得られなければ、スクラムの真価を発揮することはできません。そのため、事前に顧客の協力を取り付けておくべきでしょう。また、ウェブサービスなどでは、フィードバックを送信するためのフォームなどを設けておくと効果的です。
いつ完了するのかわからない
開発の初期段階では、スプリントを何回繰り返すかは決められていないため、開発期間が長引く可能性があります。特に、スクラムは変化を受け入れることを前提にしているので、開発対象が増減します。とはいえ、ウォーターフォール型の開発であっても、工数の見積もりこそしますが、実際にはその通りには進みません。アメリカのFBIでは、ウォーターフォール型の開発で5年かけても完了しなかったプロジェクトに、スクラムを使用してたった1年で完了させたという例があります。しかも、予算は10分の1以下に削減できたそうです。つまり、いつ完了するかはわからなくても、ウォーターフォールよりは早くなると考えられます。
まとめ
スクラムは、フレームワークなので、現場に合わせて柔軟にカスタマイズできます。スクラム単独で使ってもいいのですが、XP(エクストリームプログラミング)やカンバン、リーンと組み合わせることも有効です。また、ソフトウェア開発のみならず、営業やマーケティングにも取り入れられています。誕生から20年以上経った今でも広がりを見せているスクラム。あなたも現場で使ってみませんか?
本ブログは、Git / Subversion のクラウド型ホスティングサービス「tracpath(トラックパス)」を提供している株式会社オープングルーヴが運営しています。
開発の効率化をしたい!もっと便利なツールを使いたい!そんなお悩みをtracpathで解決!
「tracpath(トラックパス)」は、企業内の情報システム部門や、ソフトウェア開発・アプリケーション開発チームに対して、開発の効率化を支援し、品質向上を実現します。
さらに、システム運用の効率化・自動化支援サービスも提供しています。
”つくる情熱を支えるサービス”を提供し、まるで専属のインフラエンジニアのように、あなたのチームを支えていきます。
No Comments