アジャイル開発をするプロジェクトに初めて参画する人もいるかと思いますので、その方向けに心得ておくとよい情報を整理してみたいと思います。
まず、アジャイルという言葉について辞書で定義されている意味、そして、それを踏まえたうえでのアジャイル開発で知っておくべき意識の持ち方を紹介します。
アジャイル【agile】の直訳
直訳すると以下の通りでした。
[名・形動]俊敏であるさま。機敏な。敏捷な。
(出典:デジタル大辞泉(小学館))
ときどき、「あー、俊敏さをもって開発すればアジャイルでしょ」という方がいるかもしれません。それだけでは十分とは言えませんので、加えて以下の事柄も常に心がけるようにしましょう。
俊敏性という言葉のニュアンス(ちょっと抽象的でイメージつかない、という方向け)
みなさんはdog agilityという競技があることをご存知でしょうか。世界大会も開催されるほどの熱いスポーツです。
このドッグ アジリティ、指導手と犬が息をピッタリ合わせてコース上に置かれたハードル、トンネル、シーソーなどの障害物を定められた時間内に着実に次々とクリアしていく競技です。
競技では指導手だけが直前にコースを回ることを許されますが犬はコースの下見ができませんので、ぶっつけ本番ということになります。つまり、指導手と犬の息の合った連携はもちろんですが日頃いろいろなコースでたくさんの練習をこなしているかどうかが、成果の分かれ道です。
ドッグ・アジリティ(ジャパンケンネルクラブ)
単に俊敏なだけでなく定められた時間内に、突然迫る障害物を着実にクリアする様子が想像できるかと思います。
この考え方をベースとして、より深く紹介していきたいと思います。
その1 アジャイルマニフェストと原則
次に、アジャイルマニフェストです。こちらは2001年に策定されました。従来のプロジェクトマネージメント手法で開発を進めているなかで、時に頻繁な仕様の変更が発生するため、それらの要望に対応しつつ円滑な開発を目的として策定されました。
プロセスやツールよりも個人と対話を、
包括的なドキュメントよりも動くソフトウェアを、
契約交渉よりも顧客との協調を、
計画に従うことよりも変化への対応を、
アジャイルソフトウェア開発宣言
アジャイル宣言の背後にある原則
これでアジャイル開発のもつイメージと、実践するために心がけることがわかってきました。
従来のプロジェクトでは契約外のことは一切しません、というのが正解ですがアジャイルの世界では違います。契約の大切さは維持しつつ、お客様との協調がより重要だと説いています。
では次の話題へ。
その2 アジャイル開発って?
では、アジャイル開発とは具体的にはどんな開発なのでしょうか。
みなさんは__スクラムによるアジャイル開発__なんて言葉を聞いたことはないでしょうか。
実はアジャイル開発に明確な定義はありません。言ってしまえば様々な効率的な開発手法をひとまとめに総称してアジャイル開発手法として位置づけられています。なので、リーン開発手法、エクストリームプログラミング、スクラム開発などはアジャイル開発手法の中に含むことができます。
先に紹介したこの言葉では、アジャイルマインドな手法で行う開発の中核をなしているのがスクラムだと言えます。
図にすると以下のような感じです(アジャイル実務ガイドを参考)。
JIT:Just In Time (ジャストインタイム)
XP:Extream Programming (効果的・効率的なプログラミングを目指す)
DSDM:Dynamic Systems Development Method(部分的にプロジェクト管理手法を取り入れた開発手法)
FDD:Feture Driven Development(機能駆動型開発)
Scrum:スクラム開発(ラグビーのスクラムのように自律チームで連携し開発)
クリスタル:プロジェクト成功のためのコアバリューを用意して開発
このほかにも、このほかにもAUP,SAFeなどもアジャイル開発手法の一つです。
では、実際の現場ではどんな管理が行われているのでしょうか。
現場におけるベストなかたち
現場では、上記でお伝えしたマインドをもとにしながら状況に応じて様々な手法のいいとこどりをしながら開発を進めるのが一般的です。
もちろん、その中にも円滑な開発に効果的なルールがあります。
多くの現場で採用されている代表的なルールは例えば以下の事柄に関してです。
・成果物について
・役割について
・チームについて
・時間管理について
・会議について
などです、これらについては別の回でご紹介したいとおもいます。