インフィニティソリューションズ株式会社ブログ

アジャイル開発の1つの手法「スクラム」で高品質化をめざせ

まだまだシステム開発の手法としてはウォーターフォール型が現実には多く、それに比して、アジャイル開発は注目されているものの、適用事例がまださほど多くない。しかしながら、この変化が激しい時代に、ウォーターフォール型の開発では対応しきれない。さりとて、アジャイル開発は万能というわけでもないが、開発者のみならずユーザ(発注者側)もアジャイル開発への理解を深め、活用していくことが健全な開発には不可欠になってきているのではなかろうか。

まずはアジャイル開発の概要として、その1つの手法である「スクラム」を取り上げてみたい。「スクラム」の概要として、Bright Hub PMの「Scrum Methodology: Coordinating Teams to Produce Quality Products(スクラム手法:チームをコーディネートし、高品質の製品を作り出す)」を参考にしてみたい。

Scrum Methodology(スクラム手法)

‘The Scrum Methodology is based on the Rugby term for individual groups collaborating together to form a powerful whole. Scrum in project management is an agile management process to coordinate teams of approximately six or seven people who can be located anywhere in the world. The Scrum Methodology brings a cohesiveness into what otherwise would be many disparate groups. Initially, the Scrum Methodology was intended for the management of software development projects. Its use has now been extended to running software maintenance teams, or as a program management approach.’

「スクラム手法は、個々のグループが協力し合い、強力な一塊を形成するラグビー用語に基づいている。プロジェクトマネージメントにおけるスクラムは、世界中のどこに位置していても良い、だいたい6、7人のチームをコーディネートするアジャイル管理プロセス。スクラム手法は、元々ばらばらのグループを1つの結合体にする。当初スクラム手法は、ソフトウェア開発プロジェクトを意図していたが、ソフトウェアメンテナンス・チームや、プログラムマネージメントの手法にも使われ始めている。」

‘The scrums (teams) are made up of the Product Owner, the Scrum Master and the team members. The Product Owner is responsible for representing the interest of the client for whom the product is being made. The Scrum Master is the liaison between the team and the Product Owner. The team itself is comprised of a cross-functional mix of personnel, which can include software engineers, programmers, Q/A specialists and the like. While the Scrum Master is responsible for facilitating the team, the team has total control over how they will perform their work.’

「スクラム(チーム)はプロダクト・オーナー、スクラム・マスター、チームメンバーから構成される。プロダクト・オーナーは、製品がターゲットとするクライアントの利益を代表する責をを担う。スクラムマスターは、チームとプロダクト・オーナーのリエゾン(連絡係)。チーム自体は、組織横断的な人間から構成され、ソフトウェアエンジニア、プログラマー、QAの専門家などが含まれる。スクラムマスターは、チームをファシリテートする役を担うが、仕事をどうこなすかについては完全にチームに任される。」

Scrum Process(スクラムプロセス)

‘The first step in the Scrum process starts with the Product Backlog, which is a prioritized list of software requirements for the product. While anyone can add items to the Product Backlog, the Product Owner has the final say on the Product Backlog.’

「スクラムプロセスは、プロダクトバックログから始まる。プロダクトバックログとは、製品のソフトウェア要件を優先付けしたリストだ。プロダクトバックログには誰でも項目を追加できるが、プロダクト・オーナーがプロダクト・バックログの最終権限を持つ。」

‘The next step in process is the Sprint, a 15-30 day period during which the team creates an increment of potential priorities. Each team chooses from the list of priorities and decides on their Sprint Backlog. The Sprint Backlog is a list of tasks that the team believes they can finish during the Sprint. During the Sprint, tasks are broken down into specific chunks of time. Each day, the time remaining on each task is updated. When the time remaining on the Sprint reaches zero, the team will provide a demonstration of the software to all involved.’

「プロセスの次のステップは、スプリント。15日から30日の期間で、プライオリティに基づいてチームが追加分を作成する期間のこと。各チームは優先度のリストからスプリント・バックログに入れるものを決める。スプリントバックログは、スプリント期間中にチーム自身が完了できると思うタスクのリスト。スプリントの期間中、タスクは詳細な時間の塊にブレークダウンされる。日次で、各タスクに残された時間が更新されていく。スプリント上で残された時間がゼロになった時、チームは、プロジェクトに関わる全員にソフトウェアのデモを行う。」

Scrum Daily Meetings(スクラム日次会議)

‘During the course of the Scrum, a daily meeting will take place to update everyone on each team’s progress. A summary will be given of accomplishments since the last meeting, future plans and reasons why something was not accomplished. This allows the Scrum Master to see where each team is and possibly offer help, if required.’

「スクラムでは、各チームの進捗をアップデートするために、日次会議が行われる。前回の会議以降に成し得たこと、今後の計画、未達があればその理由のサマリーが提示される。これによりスクラム・マスターは、各チームがどういう状態か、また助けが必要かを見極めることができる。」

‘These daily meetings should be a fixed amount of time, usually 15 to 20 minutes maximum. An agenda made prior to the meeting and distributed to all parties will help keep the meetings on track and within time constraints. To ensure that there are no delays, Scrum meetings should be held at the same time and use the same method of communication. If the teams are international, a compromise time should be made. This way no one feels that they always have to go out of their way to accommodate everyone else.’

「この日次会議は、決まった時間内、通常15分か最大20分で行う必要がある。アジェンダを会議に先立って全チームに配布することにより、時間制約がある中で、会議を予定通りに進めることができる。遅れが出ないよう、スクラム会議は毎日同じ時間に、同じ方法で行うこと。国際的なチームの場合には、時間を譲り合うこと。これにより、他の人に合わせるために毎回わざわざ出かけないといけないなどとは、誰も感じなくなる。」

‘During the meeting, each team member answers three questions:’

「会議で各チームが答えるべき質問は以下の3つ。」

  • What have you done since yesterday?
  • What are you planning to do by tomorrow?
  • Do you have any problems preventing you from accomplishing your goal?
  • 昨日から何を成したか。
  • 明日までに何をやる予定か。
  • 目標達成を阻害する問題が何かあるか。

‘To show how much time is left on a particular task, a Burndown Chart is used. This helps determine the amount of time still needed to complete a project. While the goal is to consistently decrease this number, the estimates will toggle up and down as new work is added or completed. The Burndown Chart can also assist in Release Planning. A release date can be estimated based on time information from the Burndown chart.’

「特定のタスクについて、どれだけ時間が残っているかを示すために、バーンダウン・チャートが用いられる。これによりプロジェクトを完了させるのに必要な時間がわかる。目標はコンスタントにこの数字を下げていくことだか、やるべきことの追加や完了によって、予測は上下動する。バーンダウン・チャートは、リリース計画立案にも役立つ。リリース日は、バーンダウン・チャートの情報に基づいて予測できる。」

Source:  http://www.collab.net/products/scrumworks/capabilities

スクラムの利点

  • Communication can improve across all the teams.
  • It provides for an open forum, where everyone knows who is responsible for which item.
  • Scrum can increase team efficiency by as much as 20 percent.
  • Problems are more transparent.
  • チーム間でのコミュニケーションが向上する。
  • 誰がどの項目の責を担っているかが誰にでもわかるオープンフォーラム型
  • スクラムにより、最大20%チームの効率が上がる
  • 問題がより透過的になる。

スクラムの欠点

‘While a whole project can be intimidating, using the Scrum Methodology helps break it into smaller, manageable parts. Above all, Scrum gives the project stakeholder, who is paying for the product, the advantage of seeing the progress being made every day. They are able to build a relationship with the people involved and they get constant feedback from the Scrum Team.’

「プロジェクト全体は不安だらけに見えるもしれないが、スクラム手法は、より小さな管理しやすい単位に分解するのに役立つ。とりわけ、スクラムは、金を出しているプロジェクトのステークホルダーに対し、日々の進捗が見える化されるという利点がある。関わる人全員と関係性を構築でき、スクラムチームから定常的にフィードバックを得られる。」

‘A few drawbacks to the Scrum Methodology are:’

スクラム手法にも欠点がいくつかある。

  • Decision-making is entirely in the hands of the teams.
  • There has to be constant, hands-on management.
  • 意思決定は完全にチームの手中にある。
  • 定常的かつ積極的なマネージメントが必要

‘While Scrum is not perfect, it is definitely a way to maximize efficiency, improve communication between teams and provide for an open approach to tackling a project.’

「スクラムは完璧ではないが、効率の最大化、チーム間のコミュニケーションの向上、プロジェクトにオープンな形で取り組むための手法であることは間違いない。」

‘Figure Two is courtesy of http://www.mountaingoatsoftware.com/sprint_backlog.