エムティーアイ エンジニアブログ

株式会社エムティーアイのエンジニア達による技術ブログ

アジャイルマインドを身につけよう ~社内アジャイルコーチからの教え Part2~

みなさまはじめまして。プロジェクト推進部に所属している片山です。 新規・既存様々なプロダクト開発を支援すべく、開発プロセスなど様々な勉強をしております。

社内で受けたアジャイルトレーニングの内容を参考に、皆さんにももっと知ってほしいアジャイル開発について、テーマごとに書いていこうと思います! 他にもアジャイルトレーニングで受けた内容について、別テーマで共有しているので、読んでいただければ幸いです!

第1弾のリファインメントについてまとめた記事はこちら tech.mti.co.jp

私達はアジャイル開発できているだろうか?

ウォーターフォール開発からアジャイル開発が主流になり、「うちでもアジャイル開発してるよ!」って方は多いのではないでしょうか。 エムティーアイでも様々なチームでアジャイル開発の手法を取り入れており、日々開発に勤しんでいます。

そんなアジャイル開発ですが、皆さんはアジャイル開発できていますか?

「スクラムやってるんだから当然アジャイル開発できてるでしょ」と考える方も多いかと思います。しかし、スクラムはアジャイル開発を実現するための1つの手段であって、 アジャイルの思想を知らないままスクラムを行っても、形式だけのスクラムになってしまい、本来のアジャイル開発を達成することはできません。

なぜアジャイル開発を取り入れているか、をきちんと説明できますか?
ただスクラムイベントをこなすことだけに注力するようになってはいませんか?
スクラムで正しく開発をするためには、土台となるアジャイルの考え方やマインドを正しく理解した上でイベントをこなす必要があると考えます。

今回は、日々の業務に追われると忘れがちな、あるいはスクラムで形から入ってしまい、本来のアジャイルってどういうことかを知らない方のために、 アジャイル開発を進める上での大事な考え方・マインドセットについて、まとめようと思います。

アジャイル開発とは?

そもそもアジャイル開発とはなんだ?と問われると、思い浮かべるのは「アジャイルマニフェスト」ではないでしょうか。

f:id:mti-techblog-writer:20210224190145p:plain

アジャイルマニフェストは、ソフトウェア開発の将来について議論するために集まった17名の合意を得た考え方・価値観です。あくまで考え方であり、具体的な手法ではありません(後にアジャイルに分類される様々な開発手法は生まれるが)。
アジャイルマニフェストを読み解くと、

  • 顧客中心に考えること
  • コミュニケーションの大切さ
  • 変化に柔軟に対応すること

など、大事な価値観が見えてきます。これらの価値観を根底に持ち、開発を進めていくことがアジャイル開発であると言えます。
※あくまでより価値をおく観点としてこれらの価値観を設定していますが、ドキュメントや計画を否定しているわけではありません。

上記のアジャイルマニフェストについては知っている方も多いかと思いますが、アジャイルを本当に理解する上では、アジャイル宣言の背後にある原則を読み解く必要があります。

12の原則から読み解くマインドセット

12の原則にはいくつもの観点が書かれていますが、今回はその中でも特に紹介したい項目に絞ってまとめていきたいと思います。
IPAが公開している「アジャイルソフトウェア開発宣言の読み解き方」中にも、参考になる解釈がたくさん書いているので、合わせて読んでいただければと思います。 https://www.ipa.go.jp/files/000065601.pdf

f:id:mti-techblog-writer:20210224190611p:plain

今回ピックアップした4つの原則について、文章から読み取れる解釈と合わせて紹介していきたいと思います。

原則2:「要求の変更はたとえ開発の後期であっても歓迎します。変化を味方につけることによって、お客様の競争力を引き上げます。」

開発からすると要求の変更は、作ったものが無駄になる、作業が増える、などネガティブな印象を持たれる方も多いかと思います。
しかし、ユーザ視点で見ると、新しい価値の発見の機会でもあります。この原則から、様々なサービスが次々にでてくる現代において、要求の変化をもっと前向きに捉えられるようなマインドを持つべきであることが読み解けます。(逆にユーザのためにならない要求変更は突っぱねたいところですね…)

原則4:「ビジネス側の人と開発者は、プロジェクトを通して日々一緒に働かなければなりません。」

ビジネスを考える立場と開発者の関係性が受託開発のような関係性になってしまうと、要求されたものしか作らなかったり、気になっていても言われた通りに作るようになってしまいがちです。良いものを作るためには、言われたままに作るのではなく、互いに改善するべき箇所は指摘していける関係性で働く必要があります。
しかし、言いたいこと、やりたいことをただ言い合うだけでは一緒に働くことはできません。大事なのは共通の目的を設定することです。
目的を設定することで、初めて一緒に働くことができるのではないかと思います。特にテレワーク環境下では、直接話せなくなるため、こういった共通の目的を確認することは重要なのではないでしょうか。

原則10:「シンプルさ(ムダなく作れる量を最大限にすること)が本質です。」

リーンの考え方にもあるように、価値に直結しない作業・機能はムダと考え、これらのムダを減らすことが重要です。ムダを減らすためには、ユーザの価値につながっているか?を常に考え、やることの正しさを疑いながら取り組む必要があります。
ムダはないか、ユーザの価値につながっているか、を常に考え続けることは難しいですが、例えば定期的に行われる各スクラムイベントのタイミングでは、これらの視点から考えることを徹底してみてはいかがでしょうか。

原則12:「チームがもっと効率を高めることができるかを定期的に振り返り、それに基づいて自分たちのやり方を最適に調整します。」

スクラムでもイベントの1つとして、レトロスペクティブ(振り返り)が設定されているように、効率を高めていくには定期的な振り返りが重要です。改善意識を持ち、自分たちの仕事のやり方を見直し、より効率的にすすめるためにはどうしたらよいのかを考え続けるよう心がけなければなりません。
今の状況に満足せず、ムダはないか、正しくやれているか、など最適なやり方を考え続ける改善マインドが大切なのです。

アジャイル開発できているというために

アジャイルを正しく実践するためには、これらの12の原則から読み取れる考え方やマインドセットを身につける必要があります。
プロセスだけ真似ても、思った通りの効果は得られません。アジャイル開発は銀の弾丸ではないのです。これらの考え方をもとに、開発と向き合って行くことで、仕事を進める上での大事なことや優先順位が見えてくるのではないでしょうか。

さいごに

12の原則には今回取り上げた原則以外にも大事な考え方がたくさん詰まっています。しかし、いきなりすべてを意識するのは難しいかと思います。
色々と書いてきましたが、自分自身も現場で実践しようにも、なかなか意識し続けることはできないのが現状です…
なので、1つ1つ意識しては実現し、ちょっとずつ今回紹介したような考え方、マインドセットを身に着け、いずれは意識せずとも実践できるようにできればと思っています! 今回ご紹介したアジャイルの考え方・マインドが、少しでもみなさまの開発のお役に立てれば幸いです。