【本題】アジャイル開発についてソフトウェア開発で最も重要な事は、実際の利用者の生活や仕事などが便利になり、営利目的であればソフトウェアに対して価値を感じて貰うことで収益を生み出すことです。その目的を達成し、成果を最大化する為の開発手法の一つが「アジャイル開発」と呼ばれるものです。アジャイル開発には、以下の様な特徴があります。・「一度にまとめ」では無く、「少しづつ」作る・利用者の反応や関係者からのフィードバックを継続的に得ながら、計画を修正する・関係者は目的達成のために、互いに協力し合いながら進めるこれは「事前に全てを正確に予測し、計画する事は出来ない」という根本的な考え方が背景にあります。スクラムについてこのアジャイル開発の方法論については、いくつか存在しますが、その中でも現在主流になっているが「スクラム」と呼ばれるものです。スクラムには、以下の特徴があります。・現在の状況や問題点を常に明らかにする(透明性)・定期的に進捗状況を確認し、プロダクトが正しく作れているか?仕事の進め方に問題が無いか確認する(検査)・問題が見つかったり、より良い手法があった場合、現状の手法を変える(適応)プロダクトバックログについてスクラムで開発を進める上で、欠かせないものが「プロダクトバックログ」です。プロダクトバックログとは、プロダクトへの要求を抽出し、それらに優先順位をつけて一覧化したものです。順番は、その要求が実現された時に得られる価値・リスク・必要性などによって決定します。開発は、プロダクトバックログの順位が高いものから進めて行きます。各項目毎に作業工数の見積もりを行います。見積もりは何人日といった絶対値では無く、他の作業量との相対値で表されることが多いです。プロダクトバックログは、一度作成が完了しても、状況に応じて、絶えず更新(要求の追加・順番の変更)を行います。項目の書き方に決まりはありませんが、ユーザーストーリーという形式で書くことが多いです。スクラムにおけるチーム内の役割分担スクラムでは、関係者毎に役割が設定され、それに基づいて実施されます。スクラムにおける役割は以下の3種類です。【プロダクトオーナー】プロダクトオーナーは、プロダクト開発の責任者で、プロダクトの結果責任を取る立場になります。プロダクトバックログの並び順に対する最終決定権を持ち、他のメンバーがその決定を覆す事は出来ません。・プロダクトのビジョンをチームに共有する・おおよそのリリース計画を定める・予算を管理する・作られたプロダクトが要求に沿っているか検査するなお、プロダクトオーナーは、開発チームの仕事の進め方などに干渉は出来ません(相談は可能)【スクラムマスター】スクラムが上手く実践できる様に、プロダクトオーナーと開発チームの補佐をするのが、「スクラムマスター」です。以下の様なことを行います。・わかりやすいプロダクトバックログの書き方をプロダクトオーナーや開発チームに教える・プロダクトバックログの良い管理方法を探す・スプリント計画ミーティングなどの進行を行う・プロダクトオーナーと開発チームの会話を促す。生産性を高くなる様に促す。「開発チーム」は、実際にプロダクトを制作する役割を担います。テストチームといった様な機能毎にチームは区切らず、チーム単体でプロダクトが作れる様に、メンバーは構成されます。コミュニケーションコストを抑える為、3〜9名で構成されます。開発チーム内に上下関係は無く、メンバー全員の合意のもと、仕事の進め方を決めます。スプリントについてスクラムでは、短い期間で設計・開発・テスト・デプロイを行いますが、このプロダクトリリースに必要な作業を終えるまでの期間を「スプリント」と呼びます。スクラムでは、この「スプリント」を何度も繰り返すことで、開発を進めて行きます。短い期間で検証を進める為に、スプリントは最長でも「1ヶ月以内」で設定する必要があります。スプリント内に予定していた開発が終えられなかったとしても、期間の延長は行いません。【スプリント計画ミーティングの実施】プロダクトオーナーに何を開発すべきか判断して貰います。開発チームは、それがどのくらいの期間で開発が可能であるかを明示します。【スプリントバックログの作成】プロダクトバックログを具体的なタスクに分割します。日毎に進捗が確認できる様に、個々のタスクは1日以内の単位にします。毎日15分間、以下の内容について開発チーム内で報告を行います。・前回のデイリースクラムからやったこと・次回のデイリースクラムまでにやること・困っていることデイリースクラムは問題解決の場では無いので、問題解決に当たって議論すべきことがあれば、報告後に必要なメンバーだけが集まる会議を設定します。【スプリントレビューの実施】スプリントの最後に、プロダクトオーナーが現状リリース可能な機能のレビューを行います。【スプリントレトロスペクティブの実施】スプリントレトロスペクティブでは、直近スプリントの振り返りを行います。上手くいったことや今後の改善点を整理して、より良いやり方に変え続けて行きます。・bin/setupでは、下記の処理を行っている。日)IBMのWatsonきっかけでエンジニアに憧れて28歳未経験でWebエンジニアへ転職。2018年12月から3年間で「10000時間」をプログラミングに捧げる計画を立て、学んだことをブログの投稿中。Activitiesryoutakuこのサイトについてプライバシーポリシ。