デメリットの緩和方法2020/10/18SHAREツイートシェアはてブGoogle+PocketLINE新しいソフトウェアを開発することになった際にはクライアントからスピード感を求められることが多々あります。スピード感が重視されるときにはアジャイル開発という手法が用いられることがあります。今回はアジャイル開発の基礎知識として従来からのウォーターフォール開発の違いをご説明していきます。そのうえで、3つの具体的開発手法とアジャイル開発のメリデメとデメリットの緩和方法についてお伝えしていきます。デメリットの緩和方法アジャイル開発はどのようにして生まれたのかアジャイル開発が生まれた背景を知るとアジャイル開発の特徴が見えてきます。どのような背景からアジャイル開発は生まれたのでしょうか。素早さが求められる時代の要求アジャイル開発はソフトウェア開発に求められることが変わってきた90年代後半頃からニーズが高まり始めました。従来のクライアントの意向は、作業の一部を機械に代替させるようなものや、人が見てわかりにくいものを調整するといったような効率性を高めるためのものでした。徐々にソフトウェア自体が新しいサービスを展開するための商品として用いられるようになると、ソフトウェア開発のスピードが売り上げを出し始めるまでの時間に直結するようになりました。そのため、従来のプロジェクトの進め方から脱却し、素早いプロジェクトシステムが求められるようになり、アジャイル開発は発明されました。ユーザーのニードはあるが、仕様がわからないケースへの対応ソフトウェア自体が新しいサービス展開となる場合には、世の中に全くない新しいものを創造しなければならない場合があります。従来の開発で用いられていたウォーターフォール開発と呼ばれる開発手法では最初に業務設計者がクライアントのニードを吸い上げます。その後システム設計者に設計を依頼し、設計を行います。その後にプログラマーが設計を形にし、初めてテスト・リリースとなります。この手順の場合には最初にある程度仕様が決まっており、出てくる形を明確にわかっている必要がありますが、実際のところ新規事業で仕様がすべて決まっていることなどありません。そのため、新しい事業を生み出すためにトライアンドエラーを繰り返しながらシステム開発を行うアジャイル開発が生まれたのです。アジャイル開発とウォーターフォール開発の違いアジャイル開発は従来のウォーターフォール開発とは仕組みがまるで異なります。どのような手順で進められるのでしょうか。計画が流動的アジャイル開発は非常に流動的な流れで仕事が進んでいきます。クライアントからの依頼を受けたメンバーはヒアリングで求められることを拾い上げます。拾い上げた課題をもとに設計→開発→テスト→リリース・課題抽出(ヒアリング)→設計..のようにサイクルを回します。このサイクルを大体1週間から1か月のスパンで繰り返し回転させるため、全体計画が立った状態で作業をすることはあまりありません。顧客の意向に合わせられるよう柔軟に対応をすることができるといえます。ユーザーとの対話頻度の多さサービスを利用するクライアントからのフィードバックを定期的に入れることができるため、ニードとずれたソフトウェアになることは少なくなります。クライアントと委託側が進捗状況を把握しつつ開発を進めていくことができます。複数の担当者が出てくることになります。アジャイル開発はそのすべてをエンジニアが担当することになります。そのため、エンジニア一人一人の力量が非常に大切になってきます。アジャイル開発で用いられる単語の紹介アジャイル開発は新しい開発方法なので、用語を覚えることが非常に大切になります。プロジェクトチームで共通認識を持つためにも用語をご紹介していきます。ユーザーストーリーユーザーストーリーとはクライアントの要求や実現を目指していることを簡単に書き表した文章です。要件とは異なりふわっとした文章になっていることが多いのが特徴です。理念や理想といった考え方に近いです。テスト」といった一つのリリースまでの流れをイテレーションと言います。ひとスパンといってもよいでしょう短いものだと1~2週間、長いものでも1か月ほどの場合が多くなっています。ベロシティベロシティとは1つのイテレーションに対してどの程度のユーザーストーリーを達成したかを表すものです。1イテレーション中に完了する平均作業量を時間かストーリーポイントで表したものです。作業スピードの予測をするために用いります。最初は精度が低いですが、イテレーションを経るにしたがって予測精度が向上していきます。リリース計画リリース計画は下記の3つの要素を決め、作業に取り掛かるための計画です。・イテレーションの長さ・ユーザーストーリーの優先順位リリース計画はウォーターフォール開発に比べてざっくりした流動的なものになります。その分、イテレーションの際に再検証を行う必要性が高くなっています。アジャイル開発の3つの開発手法アジャイル開発の用語や背景に関して学んだところで、次に実際の開発手法についてみていきましょう。主だった開発手法は3種類に分けられます。スクラムスクラムはもっともポピュラーなアジャイル開発の手法です。その名の通り集団でコミュニケーションをとりながら作業を進めていく手法です。各自が工数見積もりを自身で当てたうえで期限を切って活動します。一人一人がチームのマネジメントとセルフマネジメントを行うことになるため、自立したチーム作りが促進されます。エクストリーム・プログラミングエクストリーム・プログラミングは当初予定計画よりも途中での仕様変更を優先する等、柔軟性を重視した手法です。5つの重視すべきポイントがあります。エクストリーム・プログラミングはプログラマー1人1人を信頼して行うプロジェクト形態です。プログラマー自身が能動的に動き、プロジェクトを継続的に大きくする思考が必要です。ユーザー機能駆動開発ユ-ザー機能駆動開発は大規模な案件に対応しやすいのが特徴の手法です。ユーザーの希望をある程度最初に固めたうえで必要となる仕様の選定を行い開発を進めていきます。機能の面に視点を置いている開発のため、他の開発手法に比べて価値の高い機能の実装を実現しやすい点がポイントです。アジャイル開発のメリットデメリットアジャイル開発のにもメリットとデメリットがあります。メリットを生かしながらデメリットを少しでも消すことができれば強いチーム作りをすることが可能です。ここでアジャイル開発のメリットデメリットをまとめてみましょう。アジャイル開発のメリデメアジャイル開発のメリットはリリースのタイミングが早いことです。作業工程が分けられているおかげで不具合が発生した場合に検証しやすく、修正が早くなります。サービスの導入の際に早く収益を上げ始めることができるため、スタートアップのサービスでは効果的に作用する側面もあります。顧客のニーズにしっかりと答えきれることで成果物がより良いものになりやすいのも特徴です。一方でクライアントの要求次第では、なかなか仕様が決まらず全体の進捗やスケジュールがぶれてしまうことも多いです。複数回の仕様変更で方向性がぶれることも多いのでその点での注意が必要です。デメリットの緩和方法スケジュール感の調整や方向性のブレといったデメリットの緩和策としては経験が比較的豊富なプロジェクトマネージャーを中心に配置する必要があります。仕様変更に対しての作業量が肌感でわかることや、全体の統括をしっかりとできる人材を真ん中に据えることによってデメリットの部分を緩和することができます。いかがだったでしょうか。アジャイル開発ではスピード感を生かし、成果物をより良いものにする効果があることを認識いただけたでしょうか。参考にしてみてくださいね。様々な方が通われています。現役ITエンジニアとして活躍し、富裕層でプロのファイナンシャルプランナーでもある顧問「かずきち」が教える【フリーランスITエンジニアになって10年で1億の資産を築く方法】など他のプログラミングスクールとは全く異なり、「転職をゴール」とはせずに「会社に依存せずに外で稼げる力」を身につけさせています。完全初心者からフリーランスITエンジニアへと育成しているフリーランス向けオンラインプログラミングスクールとしては業界初で最大級のスクール。2万人を超える生徒が学ばれ、1000万円プレーヤーを数多く輩出。様々な方が通われている。理念を持った教育を行い、講師・運営陣には元野村総研のSEや京大院卒エンジニアが携わっている。毎日多くの方が本入部しています!テックアカデミーで、副業コースを受講しました。それだけでは転職には不足するし、フロントエンドの企業は門前払いなので、そのスクールの受け放題コースを追加課金し(月10万)、学んでました。カリキュラムが難しいところはYoutubeを見たりして学んでいました。本日かずきちさんのTwitterを偶然目にし、自分が全然実務とはかけ離れていることを実感しました。このままでは1年後の自分は危ういと感じ、ぜひ鍛えていただきたいと思って、本日のうちに入部させていただきました。