見出し画像

アジャイルの基本知識と大事なポイント

今回はアジャイルに取り組むうえで最低限押さえておきたい知識と大事なポイントを記事にまとめました。チーム内でアジャイルの認識を合わせる際などにお使いください。

アジャイルについて

アジャイルとは

アジャイルとは、「機敏な〜」などを意味する形容詞です。一般にソフトウェア開発におけるプロセスや方法論、概念やマインドセットなどを指します。文脈によって意図する内容が異なるため本質を理解することが重要です。いくつかの文献を以下に引用します。

「アジャイル」とは、チームで優れたソフトウェアを生み出すことです

『アジャイルコーチング』- xiii

アジャイル開発とは、ビジネスの価値の最大化に向けて、顧客に価値のあるソフトウェアを早く、継続的に提供するためのアプローチ

IPA『アジャイル開発の進め方』 p.33

・アジャイルの目標は、ビジネスと開発の分断を修復すること(P.67)
・アジャイルとは、「市場で最も高い価値を生み出す機能を見つけ、それらを素早く収益に変えるアルゴリズム」であると理解した(P.147)
・ビジネスとテクノロジーが連携して優れたソフトウェアプロダクトを生み出し、企業やクライアントに価値を提供できる(P.157)
・アジャイルとは、開発プロセスを効率化する方法論であり、ソフトウェア開発を予測可能、実用可能、管理可能にする方法論である(P.174)

『Clean Agile 基本に立ち戻れ』

アジャイルの価値基準

アジャイルの価値基準は、以下のアジャイルマニフェストに記されています。これらの価値に基づいた活動を行うことが重要です。常に判断のよりどころにしましょう。

留意したいのは、”左記のことがらに価値があることを認めながらも、私たちは右記のことがらにより価値をおく” という記載です。つまり、左記のことがらは「意味がなく不要である」ということではありません。

アジャイルソフトウェア開発宣言

私たちは、ソフトウェア開発の実践
あるいは実践を手助けをする活動を通じて、
よりよい開発方法を見つけだそうとしている。
この活動を通して、私たちは以下の価値に至った。

プロセスやツールよりも個人と対話を、
包括的なドキュメントよりも動くソフトウェアを、
契約交渉よりも顧客との協調を、
計画に従うことよりも変化への対応を、

価値とする。すなわち、左記のことがらに価値があることを
認めながらも、私たちは右記のことがらにより価値をおく。

Kent Beck Mike Beedle Arie van Bennekum
Alistair Cockburn Ward Cunningham Martin Fowler
James Grenning Jim Highsmith Andrew Hunt
Ron Jeffries Jon Kern Brian Marick
Robert C. Martin Steve Mellor Ken Schwaber
Jeff Sutherland Dave Thomas

© 2001, 上記の著者たち
この宣言は、この注意書きも含めた形で全文を含めることを条件に
自由にコピーしてよい

アジャイルソフトウェア開発宣言

アジャイルの原則

前述の価値を満たすために適用される原則が定義されています。基本的に準拠することが求められます。以下のリンクから参照ください。

アジャイル宣言の背後にある原則
https://agilemanifesto.org/iso/ja/principles.html

(補足)理解を助けるもの

2020年にIPAが出している『アジャイルソフトウェア開発宣言の読みとき方』は、アジャイルマニフェストと原則を理解する一助になります。疑問に思う部分があれば、こちらを確認するとよいかもしれません。

アジャイルソフトウェア開発宣言の読みとき方
https://www.ipa.go.jp/files/000065601.pdf

アジャイルのプラクティス

アジャイルのマインドセットや価値および原則を満たすプラクティスが数多くあります。スタンドアップMTGやペアプログラミングなどです。これらのプラクティスをまとめたものがフレームワークです。一般にスクラムやXP、カンバンなどを組み合わせてアジャイルを実現します。

The Agile mindset: image by Ahmed Sidky

スクラムについて

スクラムとは

「経験主義」と「リーン思考」に基づいたアジャイルのフレームワークです。固定化されたイベントを通してビジネス側と開発チームでコミュニケーションする機会を与え、チームに規律と可視性をもたらします。スクラムガイドでは以下のように記載されています。

スクラムとは、複雑な問題に対応する適応型のソリューションを通じて、人々、チーム、組織が価値を生み出すための軽量級フレームワークである。

『スクラムガイド』-P.4

スクラムは、技術に関するプラクティスを扱っていません。技術に関する部分はXPなどを用いることが一般的です。

スクラムの三本柱

スクラムの三本柱とは、「透明性(Transparency)」「検査(Inspection)」「適応(Adaptation)」の3つを指します。これらはスクラムイベントを機能させるために必要な要素です。三本柱を実現することで経験主義であるスクラムを行うことができます。

【スクラムの三本柱3つ】
スクラムイベントを機能させるために必要な要素
・透明性(Transparency)
・検査(Inspection)
・適応(Adaptation)

スクラムの価値基準

スクラムの価値基準とは、「確約(Commitment)」「集中(Focus)」「公開(Openness)」「尊敬(Respect)」「勇気(Courage)」の5つを指します。これらはスクラムチームの行動指針(作業・⾏動・振る舞いの⽅向性)といえます。スクラムの三本柱の実現には、これらの価値基準を体現することも必要です。

【スクラムの価値基準5つ】
スクラムチームの行動指針(作業・⾏動・振る舞いの⽅向性)
・確約(Commitment)
・集中(Focus)
・公開(Openness)
・尊敬(Respect)
・勇気(Courage)

詳細については、こちらの記事をご覧ください。

自己組織化

自己組織化とは、チームの一人ひとりが自らの行動や作業に責任を持ち、コラボレーションを主体的に行いながらチームの目標に取り組むようになることです。結果として各人の能力以上の成果を生み出すことができます。

つまり、自己組織化されたチームというのは、
・個人の集まりではなく、つよつよエンジニアの集まりでもありません
・誰からも指示されることなく、一人ひとりが自ら行動できます

以下に自己組織化(自己管理含む)に関する記載を引用します。

スクラムチームは機能横断型で、各スプリントで価値を⽣み出すために必要なすべてのスキルを備えている。また、⾃⼰管理型であり、誰が何を、いつ、どのように⾏うかをスクラムチー ム内で決定する。

『スクラムガイド』- p.6

自己組織化チーム:チーム・メンバーがチームの目標を達成するために必要に応じてリーダーシップをになる機能横断チーム

『PMBOK第7版』- p.240

自己組織化とは、自らのエゴを押し出さないように気をつけながら、チームで力を合わせるということだ。そのとき、それぞれのチームの一員として、どう振る舞えば最善の成果をお客さんに届けられるんだ。

『アジャイルサムライ』- p.23

スクラムを形式的に行ってもアジャイルにはならない

チームがスクラムイベントを実施しているからといって、三本柱や価値基準を満たさず、自己組織化していない状態であれば、アジャイルではありません。

例えば、以下のような場合です。

  • 「タスクボードやプロダクトバックログが最新の状態になっていない」のであれば、三本柱の「透明性」が欠如しています。

  • 「打合せが形式的で言うべきことを言わない」のであれば、「確約(お互いのサポートを確約)」、「公開(課題等の公開)」、「勇気(正しいことをする勇気)」の価値基準を実践していないことになります。

  • 「他のメンバーの状況を気にかけず、自分のタスクを黙々と行っている」のであれば、「自己組織化」ができていません。

スクラムは「理解は容易だが、習得は困難」と言われます。一人ひとりが目的や本質を理解し、考え方と行動を変えることが必要です。「Do Agileではなく、Be Agile」ということが肝要です。

XPについて

XPとは

開発チームの技術力と人間関係の双方を重視したアジャイルのフレームワークです。価値・原則・プラクティス(主要プラクティスと導出プラクティス)から構成されます。XPでは以下のように記載されています。

・XPは、プログラミング技法、明確なコミュニケーション、チームワークなどを巧みに利用して、これまでに想像すらできなかったことを実現するためのソフトウェア開発のスタイルである。
・生産性や自信はコーディングや仕事だけではなく、仕事場の人間関係とも結びついている。成功には優れた技術力と良好な人間関係が必要だ。XPはその両面を扱っている。

『エクストリームプログラミング』- P.1

サークルオブライフ

Circle of Life (Ron Jeffries氏のブログ「What is Extreme Programming?」の記事内で紹介されているものを日本語訳したもの )

サークルオブライフは、XPのプラクティスを図で表現したものです。3つのリングから構成されています。中心の円が技術プラクティス、2つ目がチームのプラクティス、最も外側の円がビジネス向けのプラクティスです。

ビジネス向けのプラクティスは、スクラムに相当します。開発チームとビジネスがコミュニケーションとプロジェクトマネジメントを行うためのフレームワークです。

チームのプラクティスは、開発チーム内でコミュニケーションするためのフレームワークです。技術プラクティスは、開発者に向けた最高の品質を保証するためのプラクティスです。

XPに取り組む際は、この図が参考になると思います。

まとめ

いかがでしたでしょうか。今回はアジャイルについて最低限押さえたい知識とポイントをまとめました。

  • アジャイルは、「価値」「原則」「プラクティス」の構図で表現される

  • アジャイルは、スクラムやXP、カンバンなどを組み合わせて行うことが一般的である

  • スクラムは、技術に関するプラクティスを扱っていない。技術的な部分はXPを用いることが一般的である

  • スクラムを形式的に行ってもアジャイルにはならない

  • アジャイルの考え方を理解し、「Be Agile」になることが重要である

  • スクラムの「三本柱」「価値基準」「自己組織化」を常に意識すること

  • 判断に悩んだときは、アジャイルの価値基準を思い出す

【合わせて読みたい】

ーーーーーーーーーーーーーーーーーー

いかがでしたでしょうか。
ぜひスキとフォローもお願いします!
では、また!
※本記事の内容は個人の見解であり、私が所属する組織とは一切関係ありません。


この記事が気に入ったらサポートをしてみませんか?