アジャイルのすゝめ

こんにちは。株式会社フィックスポイントのよしだです。

今回は、アジャイル開発について勉強会にて発表がありましたので、ご紹介します。

最近よく耳にする”アジャイル開発”ですが、その考え方や気を付けるべきポイントについて取り上げています。

誤解されやすい部分もある開発方法ですので、本来の目的にあっているのか、原点に立ち返るきっかけになればと思います。

アジャイルとは?

そもそも、アジャイルとはなんなのでしょうか。
対義語であるウォーターフォールと比較して説明していきます。

以前からある方法(ウォーターフォール)では、下記の流れで順番に開発を行うのが主流でした。

1.要件定義:何を作るかはっきりさせる
2.計画  :どんな段取りで進めるか決める
3.設計  : 作る内容を細かく詰める
4.実装  : 実際に作る
5.リリース: 完成品を提供する

f:id:aqui_jasmine:20211201195433p:plain

分かりやすい例で言うと、旅行に似ています。

1.要件定義:宇都宮に行こう!
2.計画  :車で行こう!
3.設計  :10時に出発して~、高速に乗って~…
4.実装  :レッツゴー!
5.リリース:楽しかった♪ or 疲れた…

目的(要件)がはっきりしている場合、この方法の方が目的に沿ってブレずに進めることができます。

f:id:aqui_jasmine:20211202115331p:plain

しかし、要件というのは時として変わってしまうものです。

製品開発には時間がかかるものですし、計画通りにはなかなか進みません。
また、進めている間にも事情が変わってしまうことも多々あります。
その結果、顧客も開発者も、なにが正しい要件なのか分からなくなってしまう、といった事態も起こり得るのです。

f:id:aqui_jasmine:20211202115912p:plain

そこで、アジャイル開発の出番です。
アジャイルの流れは、以下の通りです。

まず要件をざっと洗い出してから、どういった部分が先に欲しいか、をはっきりさせた上で、
1.計画   :次に作るものを決める
2.設計・開発:詳細を決めて、作る
3.リリース :公開して使ってもらう
4.レビュー :評価する
この流れを繰り返して徐々に製品を作っていきます。

そもそもアジャイルAgile)には、直訳で「素早い」「機敏な」という意味があります。
言葉の意味通り、上記のような手法を取ることで、最初のリリースまでが早かったり、開発サイクルを短縮することや、方針変更も柔軟に対応できます。

こちらも例を出して説明すると、犯人を追う警察が分かりやすいかと思います。

犯人が逃走し、宇都宮方面へ車で逃げているとします。

1.計画   :こちらもパトカーで追う!
2.設計・開発:高速を使って追跡するぞ!
3.リリース :現場、追跡開始!
4.レビュー :佐野で目撃情報アリ!計画変更!下道を使え!

…と繰り返していき、犯人逮捕へと繋げます。

f:id:aqui_jasmine:20211202123246p:plain

アジャイルの注意点

アジャイルの何たるかが分かったところで、アジャイルにおけるポイントや注意点を説明します。

アジャイルという仕組みを考案し、世に広めた開発者たちによる「アジャイルソフトウェア開発宣言」の内容をもとに見ていきましょう。

プロセスやツールよりも個人と対話を、
包括的なドキュメントよりも動くソフトウェアを、
契約交渉よりも顧客との協調を、
計画に従うことよりも変化への対応を、
価値とする。
すなわち、左記のことがらに価値があることを認めながらも、
私たちは右記のことがらにより価値をおく

ここで絶対に誤解してはいけないのが、右記により価値を置くとしつつも、左記のことがらに価値があることを認めるとしている点です。

つまり、「アジャイル開発なので仕様書を作らなくていい」「開発計画は必要ない」といった発想には至らないでほしいのです。
このような曲解があると、アジャイル開発をしてみても、方向性や目的を失って顧客・開発者もろとも共倒れとなってしまいます。

f:id:aqui_jasmine:20211202154014p:plain

それでは、どのように進めれば上手く開発を進めることができるのでしょうか?
多数の要素が重なって初めてきちんと回ることは確かですが、いくつか代表的な要素を挙げてみます。

• 開発チームと顧客との協働体制
• 不安要素の排除
• ⼗分な対話機会・対話⽅法の確保
• 開発・リリースのペースを維持できる組織体⼒
• より素早い開発のための技術⼒
• ⾃⼰組織化の促進
デグレードを防ぐ⼯夫
• これらに取り組み続けるためのエネルギー       …など

f:id:aqui_jasmine:20211202154446p:plain

挙げればキリがないほど気にする部分が多いですね。
そのため、最近はアジャイルに関連する有⽤な考え⽅だけ採⽤して、適度に崩しているケースも多く見られます。
• プロダクトオーナー
イテレーション
• タスクボード
• ふりかえり                     …など

アジャイルのメリット・デメリット

最後に、今まで考えてきたアジャイル開発のメリットとデメリットに触れたいと思います。

メリットとしては、下記の通りです。

• 動くものを早く触ってもらえる
 → 早く使えることになること⾃体が嬉しい
  フィードバックを早く受けやすい
• 要件変更に強い
• 失敗が速い・失敗の規模を抑えやすい         …など

f:id:aqui_jasmine:20211202154521p:plain

早めに顧客にレビューをしてもらえるため、都度確認しながら少しずつ修正して進めることが可能です。
そのため、失敗の幅も小さく抑えることが可能になります。
ここは従来のウォーターフォールに比べると大きなメリットではないでしょうか。

しかし、もちろんデメリットも存在します。
デメリットとしては、下記が挙げられるかと思います。

• やることが明確なケースでは⾮効率的
 →すでに手作業で運用をしていた工程をシステム化する場合など
• 顧客や周りの⼈々の協⼒が必須
• 前項で挙げた通り、成功するための手間が多くかかる  …など

f:id:aqui_jasmine:20211202154611p:plain

両面を見た上で、相性のいいものに適切に当てはめて取り組む必要があります。

参加者の反応

今回の発表を聞いた参加者の反応です。

アジャイルのメリット・デメリットについて触れた際の感想のようです。

参加者も理解が深められたようで発表者もやり甲斐を感じられますね。

f:id:aqui_jasmine:20211216100637p:plain

最後に

今回は、アジャイルの基本的な考え方と注意点などをご紹介しました。

最近流行りの手法だからこそ、改めて学んでみることに意味があるのではないでしょうか。

ぜひ実践する際はこの記事を思い出していただければ幸いです。

 

 

株式会社フィックスポイントでは、一緒に働いてくれるメンバーを募集しています!

詳細は、こちらをご覧ください。