アジャイル開発ってなんでしょう?改めて聞かれると手法にも沢山の種類がありますし、メリットがあることがわかっていても人に説明するのは意外と難しいかもしれません。またベトナムオフショア開発などの、海外での開発にも向いてるのか?と言った疑問もあると思います。アジャイル開発の必要な知識などをご紹介していきます。
アジャイル開発の概要
アジャイル開発は、今までの方法より短期間でアプローチし完成させることができる開発手法のことを言います。ソフトウェアの開発方法のひとつです。リスクを最小限にし、短い期間で採用することができます。現在主流になっている開発方法で、問題が発生しても細かく確認しながら進めることができます。開発期間が短くて済むので様々なジャンルで広く活用されています。
アジャイル開発の流れと特徴
開発段階で詳細な仕様を決めずざっくりと外観を決めていきます。途中変更ありとして詳細に決めることなく大まかな計画だけで始めます。そのことで柔軟な対応ができ、スムーズに顧客ニーズに答えることができます。
ざっくり大きな仕様が決まったらイテレーション(小さい単位での開発)で確かめ、何度も繰り返しながら進行ていきます。1週間など短い期間などで機能をチェックし、細かく柔軟に対応しながら進めることができます。
アジャイル開発には、進化が止まらないモバイル関係のようなジャンルなど、途中変更の多いプロジェクトに適しています。
メリット
小さな単位のタスクで作業を進め、詳細な仕様を決めないので不具合やトラブルが出た時に引き返す皇帝が少ないのでイテレーション内で済ませることができます。また、決定事項が少ないためその場その場での柔軟な対応が可能になります。顧客ニーズに答えることができるので満足度の高さが最大のメリットになります。
デメリット
設計や構成を大まかにしか決めないため方向性がブレてしまったり、計画がどんどんずれてしまうことがあります。全体像が見えにくく納期に間に合わないこともあるようです。プロジェクトマネージャー、責任者のマネジメント能力、経験、スキルの高さ、判断力が必要となるため経験が乏しい場合は出来るだけ小さなタスクやプロジェクトで実施しテストをする必要があります。
アジャイル開発スピード感は大切?
アジャイル開発には、様々な長所と短所がありますが、柔軟性が大切でスピード感も求められています。また、迅速に対処しながら仕上げに向かうことができるので、スピード感重視のプロジェクトの場合はとても向いています。要件定義や、仕様設計などで多くの時間を必要とする一般的なプロジェクトに比べ短期間で仕上げることができるので、顧客満足度も高い方法になっています。
アジャイル開発手法と種類
アジャイル開発には、様々なタイプの手法があります。それぞれプロジェクト内容に合わせた手法を選ぶことも大切になります。
スクラム
スクラム開発は、アジャイル開発の手法の1つです。導入しやすい手法になります。フレームワークといい、チームで意思の決定やトラブル対策など共通認識を持ちながら仕事を進めることを言います。意思疎通ができないと難しいチームでの作業になりますが、イテレーションとリリースを円滑に繰り返すことができます。
エクストリーム・プログラミング(XP)
エクストリーム・プログラミングといい、重視するのは技術になります。開発の中心はプログラマーになります。作業の途中で目的まで変えフレキシブルに作業を行うことができる、「コミュニケーション」を重視しながら、設計を最低限で「シンプル」にし、「フィードバック」を重視し、「勇気」を持ってマイナーチェンジをする。この価値感をチーム内で共有する特徴もあります。
ユーザー機能駆動開発
顧客の願いや依頼を優先した手法になります。ユーザー側の価値観を重視し、現実的に動かすキャパシティがあるかを短い期間でリリースしながら完成にむけていきます。
かんばん方式
かんばん方式は、日本が世界に誇るTOYOTAが生み出したアジャイル開発の手法の1つです。方法論としては、2010年にデイヴィッド・アンダーソン(David J. Anderson)が確立したものですが。かんばん方式=トヨタ生産方式というのが、皆さんのイメージでしょう。この開発手法の違いは、多々ありますが。大きな違いは、生産・進捗を視える化・視覚化しタスクに集中し、常に改善し効率的に進める事を目指すことでしょう。
アジャイル開発ではドキュメントを書かない!?
アジャイル開発は、短期間でプロジェクトをフレキシブルで迅速に進めていくことを言います。なので、ドキュメントを書くこと自体が無駄という思考になるようです。チームで意思疎通を大切にしながら開発するので、わざわざドキュメントを書く必要がなく必要なことは言葉で伝え形にしていくことができるからです。ドキュメントが不要なわけではなく、なくても問題ないという考え方になるようです。
コードレビューをどうやっているか?
レビューを行うことの目的を明確にしてから、仕様を把握しソースコードを読むことが大切です。ソースコードには個人の書き方の癖があるので、まずは規格通りに動くかを考えながら読むことが大切です。自分以外のエンジニアの書いたコードを指摘することになるので否定から入ると円滑に作業が進まなくなってしまうことがあります。
コードレビューの目的はメンテナンスの効率化です。
エンジニアのチェックも必要ですが、効率よく作業を進めるために自動で計測してくれるコードレビューのクラウドサービスもあります。コードレビューはする人もされる人も、より良いコード作りを目的にすることで、相手に思いやりを持って作業を進めることができます。
フロントエンド開発
プログラミング用語でフロントエンド開発に必要な言語はHTML・CSS・JavaScriptの3つです。コードリーディングする上で大切な知識になります。
HTML
ウェブページを作る時、ページの基本になる構成を作るのに必要な技術になります。文字や画像などの指示をすることができます。ウェブサイトはもちろんですが、アプリケーションを開発する時にも必要な知識になります。
CSS
ウェブページの基本デザインの構造を指示することができます。表示されるレイアウトデザインやアニメーションを作ることもできます。HTLMLと同様にフロントエンド開発には欠かせないものになります。
JavaScript
表示された文字や画像を動かしたり、アニメーションやスライドショーをを作ることができます。上記の2つよりプログラミングの要素が強くなりますが、避けて通ることのできない技術になります。
アプリ開発
スマートフォンに欠かせないアプリケーションの開発を得意としているアジャイルです。アプリに向いている理由は「デモアプリ」を作ることができるからです。試作品を作り早期段階でエラーやトラブルを見つけ出すことができます。柔軟に対応することができるので、機能を追加したり削除したりと、目の前の需要に合わせて開発を進めることもできるので、アプリの開発にはとても向いています。
どういうプロジェクト・チームに向いているか?
ウェブアプリケーションやスマホのアプリなど、アップデートを頻繁に行うようなプロジェクトに向いているといわれています。意思疎通が大切なチームでの作業になります。
プロジェクトごとの向き不向き
アジャイル開発に向いているプロジェクトは設定や規格など仕様が決まっていない時や、はっきりとした内容が決まっていない場合、開発中の手直しが当然の場合、意思疎通を計りながら進めることができるプロジェクトにはとても向いています。初めから詳細な内容が決まっている場合はウォータフォール型開発の方が向いていると言われています。
オフショア開発には向いているか?
オフショア開発は簡単にまとめると、海外のアウトソーシングのことを言います。国が違えば開発手法も大きく変わります。言葉の壁や価値観の違いもあるので、意思疎通が難しい場合はアジャイル開発には向いてない場合もあります。
ウォータフォール型開発やスクラムなど手法の比較
手法や方法はたくさんありますが、アジャイル開発と他のウォータフォール型開発などのやり方にはどんな違いや差があるのでしょうか。その違いを比較しながらご紹介いたします。
アジャイル開発との比較
アジャイルの役立つ部分や適さない部分も解ってきたところで改めて他の手法と比較して比べてみたいと思います。
アジャイルとスクラムの違い
スクラムとは種々あるアジャイル開発手法ひとつです。チーム単位で仕事を進めるフレームワークになります。スクラムはチーム戦が得意で、チームで作業を進める場合は最も取り入れやすい手法になっています。アジャイルとスクラムに違いがあるの?と聞かれると、違いではなくスクラムはアジャイルの中にカテゴライズされます。
アジャイルとウォーターフォールの違い
昔から使われている方法のひとつがウォーターフォールで、全ての工程や全体の流れを最初に決めてから作業を始めます。初めに全体像を把握することができるので、予算が組みやすくコスト削減にも役に立ちます。
全体像をウォーターフォールのように把握することはできませんが、アジャイルは細かい期間でテストをしていくのでクリエイティブなプロジェクトに向いていて融通が効きます。
ウォーターフォール開発のメリットデメリット
総体的に過程を決めてから作業に入るので手順や流れを全ての人が把握でき、現状も理解しやすいところがメリットになります。デメリットはアジャイルと違ってウォーターフォールはありとあらゆる工程を最初に決めて作業に入るので、トラブルや仕様変更があると戻るのに大きな時間とコストを失うことになります。
アジャイルとトヨタ生産方式(かんばん方式)
アジャイル開発の基本になっているのはトヨタ生産方式と言われています。必要なものを必要な時に必要な分だけ作るという考え方をベースに、無駄なく品質の良いものを短期間で作ることを目標にした方法です。無駄なものを取り除くことで生産効率が上がるという考え方になります。
まとめ
いかがでしたか?簡単でしたがアジャイル開発を初心者にでもわかるようにまとめてみました。メリットとデメリットを理解し、効率よく取り入れて円滑に仕事を進めてみてはいかがでしょうか?