この記事は何?
どうやって開発してるんですか?って聞くと「アジャイル」って答える人がいるんですが、これ困りますよねって話をしています。
「アジャイル」と一言いってもそのスタイルは多様であり、スクラム開発やエクストリーム・プログラミングなどもあり、その一言でどんな開発をしているか読み取れないからです。
答える側はもう少し詳しく、聞く側も早とちりしてしまわないように気をつけましょうね。
「アジャイル開発をしています」と言われても
私は仕事柄いろんな人の開発を改善するための相談に乗ったりすることが多いのですが、その時に重要な情報となるのがそのプロジェクトにおける開発の進め方・プロセス・プラクティスの類の情報です。
どういう開発をしているか?によって、アドバイスする内容が変わってきます。
そんな時に「どうやって開発していますか?」と聞いて「アジャイル(開発)」と一言で答えられると困ってしまいます。
また、様々なイベントやシンポジウムでの発表を聞いていると「うちはアジャイル開発してまして…」という話を聞くことがあって、これもまた困ります。
何が困るの?と言うと、アジャイルにも色々なスタイル・プラクティスがあるので、一言でアジャイルと言われてもどんな開発をしているかイメージできないからです。
アジャイルの定義
アジャイル開発の定義は色々な形でされていますが、基本的には「アジャイルソフトウェア開発宣言」の価値観を有している開発方法はすべてアジャイル開発だと思っています。
アジャイル開発宣言の内容は基本的には思想や哲学に類するものです。開発チームの中で思想や哲学を共にすること自体はすごく大事なことなのですが、開発方法の説明としては残念ながら情報不足です。
せめて、スクラムなのか、エクストリームなのか、SAFeなのか?といった情報がほしいです。
それでも不十分なことが多いのですが、まぁ「アジャイル開発です」とだけ回答されるよりよっぽどいいです。
問題を根深くするニセアジャイル開発
なんでこの程度のことでわざわざ記事にしているのか?というと、この問題をさらに根深くする厄介な事象がよく確認できるからです。
それは「独自のプラクティスによるアジャイル開発」や「ニセアジャイル開発」の存在です。
アジャイル開発自体は先程も言った通り、特定の思想や哲学に則っていれば宣言することはできると思います。
が、その結果アジャイル開発はかなり断片化しているといえます。
一時期のAndroidスマホが端末メーカーによってOSの統一性を失われていたのと同じように、アジャイル開発も開発組織やチームによって統一性を失いつつあります。これ自体は悪いことではなく、進化する過程で避けられるものではないと思いますが、人と情報共有する際には問題になります。
なのでオリジナリティがあるアジャイル開発をしている時は「弊社独自のアジャイル開発をしていまして…」とか「スクラム開発をベースにチームで独自に定義した開発スタイルでして…」とか言ってもらったほうが勘違いしないですむんですよね。いろんなイベントで発表する人にはぜひお願いしたいなと思います。
で、一番厄介なのが「ニセアジャイル開発」です。
こいつは先に述べたアジャイルソフトウェア開発宣言の思想にすら則っていないのにも関わらず、
「とりあえずイテレーティブにしていればアジャイルでしょ?」とか
「設計書を書いてないからアジャイルです」とか
「僕がアジャイルといったからアジャイル開発」
というようなアジャイル開発そのものの認識不足から、自身をアジャイル開発と思いこんでいます。
まぁそのニセアジャイル開発のスタイル自体を問題だと言いたいわけではないのです。
(あまり推奨できるものでもないですが(*))
大体は話の流れで違和感に気づくのですが、気づかずに勘違いしていると
開発に求める価値観や、大事にしたいことが話し手と聞き手でズレてしまうので
的外れなアドバイスになってしまったり、正しい理解をしないまま情報を持ち帰ったりしてしまいます。
さらには「ニセアジャイル開発の事例」を聞いた「ニセアジャイル開発二世」が誕生し、その事例がさらにアジャイル開発として展開されていき、収集がつかなくなっていきます。
私は先日、某ソフトウェア開発系のイベントに参加しましたが、そこでも2つのニセアジャイル開発事例が「アジャイル開発」として紹介されるのを見ました。もうこれは予想や妄想のタグ医ではなく、現実に起こっている問題なんですよね…。
こうした事態を放置していると、開発手法における色々な好事例の横展開などが進まず
業界全体としての進化・歩みを遅くしてしまうので、ぜひ辞めてほしいです。
また、アジャイルソフトウェア開発宣言で述べられている考え方や思想は非常に重要なことです。
これを読まず、理解せずしてアジャイル開発を始めないようにすべきです。
さいごに
ということで、自分がどういう開発をしているか紹介するときや、開発スタイルに関する質問を受けたときには
「アジャイルです!」という一言で済ますのではなく、せめてどんなプラクティスに則っているか?それとも独自のものなのか?を明らかにしましょう。
また、「アジャイルです!」とだけ定義して事例などを発表している人を見かけたら
「それってスクラムですか?エクストリームプログラミングですか?」と確認してあげましょう。
そうしてアジャイル開発に関する共通認識を広めながら、好事例を業界で共有していくことで、みんながよりよい開発に進められるようにしていきましょう!