IT関係の業界にいると必ず聞く「アジャイル開発」という言葉。
初めて聞いて意味がわからない
開発の知識はないけど基礎だけ知っておきたい!
横文字だしなんか難しそう、、、、
そのような当時の僕と同じ思いをしている人向けに、これだけ知っておけばある程度大丈夫!な知識をご共有します。
あくまで初めて用語を聞いた人向け、の記事なので詳しい内容を知りたい人は他の記事を見てくださいmm
アジャイル開発って一言で言うとどんな意味?
最初から深く考えず、作りながら考えよう!な開発
開発する時の考え方は大きく2つあります。
1つは作る前に詳細に計画して、後はその計画に従って開発していく「ヲーターフォール型」と呼ばれる開発。
もう一つが今回紹介する、細かいことは作りながら考えていこう、という「アジャイル開発」です。
もう少し詳細に見ていきましょう。
アジャイル開発の概要
これまでの開発方法には限界があった
アジャイル開発が生まれるまで、世の中の開発はほとんどヲーターフォール型で実施されていました。
ヲーターフォールとは「滝」を意味していますが、滝にはある特徴と欠点があります。
下から上に戻るのがめちゃくちゃ大変
なんです。
ヲーターフォールではがっつり計画を立て、がっつりコードの設計をし、がっつり開発をします。
ここまでかなり時間がかかっており、やっとバグがないかテストができます。
当然バグが見つかったら修正が必要なのですが、ここで大きな問題が。
設計そのものに問題があったら、また開発し直しに、、、、
これは極端な例ですが、ある程度開発を進めた段階だと後戻りがしにくいことは感覚的にわかると思います。
ちょっとずつ作るサイクルを回していく
アジャイル開発では完成物を細切れにし、ちょっとずつ作っていきます。
人型のロボットを作るとします。
人の体は頭・首・腕・脚などある程度のかたまりに分けられますよね。
最初に頭を作ってテストします。
ここでバグが見つかれば頭に問題があることは明白なので修正が容易です。
次に首を作ってテストして、次に腕を作ってテストして、、、、、、、
と繰り返していき、最後に全てのパーツを合体させることで元々作りたかった人型ロボットが完成するのです。
途中で、「手の指は五本ずつではなく三本ずつにしよう」となってもちょっとずつ作っているおかげですぐ後戻りできるのがアジャイル開発のいいところです。
時間内に作り上げることは苦手
要求に容易に応えられることの裏返しとして、随時変更するからこそ元々想定していたより完成が遅れてしまうというデメリットがあります。
計画通り作り上げることはヲーターフォール型開発が得意としていることで、EVMなどの手法を使って進捗を管理しながら進めていきます。
EVMについては別の記事でまとめたので気になる方は見てみてください。
どんな時にアジャイル開発を使うのか
これまで見てきたように、アジャイル開発は柔軟性に強みがあるため比較的小規模な開発案件に向いています。
例えばアプリの開発などです。
アプリの開発の納期が多少前後しても全社への影響はほとんどないですからね。
逆に、要求を次から次へと変更すると全社への影響が出てしまうような大規模な開発案件にはあまり向いていないと言えます。
そういった大きな開発案件では、従来のヲーターフォール型の開発手法を使って丁寧に進めていくことが多いです。
実はアジャイル開発は方法論ではない
アジャイル開発の超概要はわかった。
ではさっそくアジャイル開発を実践しよう!
と言いたいところですが、実はアジャイル開発の知識だけでは開発できないんです。
なぜならアジャイル開発とは「開発する際の心構え」みたいなもので、具体的な方法ではないからです。
アジャイル開発の考え方を踏襲した開発の進め方はいくつか選択肢があり、開発現場の状況に応じてどれを採用するか決めていく流れになります。
アジャイルな開発手法で有名なものは以下3つです。
- スクラム
- XP
- かんばん
ここでは「一口にアジャイルと言ってもやり方はいくつかあるんだな」くらいに思っていれば大丈夫です。
詳しい話は別途ググってください笑
まとめ
アジャイル開発を初めて聞いた人向けに超概要を説明してきました。
ご紹介したように、小規模な開発においてはアジャイル開発はその真価を発揮します。
超概要はわかったけどもう少し詳しく知りたい!という方はこちらの本がおすすめなので是非手にとってみてください!
コメント