読者です 読者をやめる 読者になる 読者になる

aspec7's garage

エンジニア生活の中で学んだことの備忘録

モダンアジャイルの話が心に突き刺さりまくりました(AgileJapan2017に参加してきました!)

f:id:aspec7:20160318095017j:plain

AgileJapan2017に参加してきました。
昨年発表されたモダンアジャイルに関して、発表者のJoshua Kerievsky氏自ら登壇してくれるということで、それを楽しみにしておりました。
ということで、基調講演のモダンアジャイルの内容をメモとして残しておきたいと思います。

【基調講演】 モダンアジャイル

講演者

Joshua Kerievsky 氏

講演内容

モダンアジャイルのコンセプトについて色々な角度から話が展開されていきました。
今回ジョシュア氏がコンセプトとして伝えたかったのは、エンドユーザーが得られる価値というのにもっとフォーカスすべきという点かと思います。

ということで、記憶を辿りながら整理していきたいと思います。

例えばの話

例えばスプリントを進めるこんなことがありますよね〜という流れでこんな話がありました。

  1. スプリントの序盤はスムーズでも、 終盤になるとカオス になる
  2. トーリーが大きすぎて、 次のスプリントに持ち越し
  3. プロダクトオーナーが OKしたら受け入れ られてしまう

1とか2の話はよくある話で、見積もりの精度の問題にされることが多いですが、スプリントという仕組みそのものがプレッシャーになってしまっていると言っていました。
タイムボックス化することで、脅迫概念を生み出してしまい、間に合わせることを優先することで技術的負債を生んでしまうということでした。
3の話は、Scrumではそういう役割とルールになっていますが、ここについても「そもそもエンドユーザーは見ていないのに本当にそれで良いのだろうか?」と問題提起していました。


MEMO:
言われてみると、確かにそういう光景が目に浮かぶほどよくある話です。
タイムボックス化することでのメリットの裏にあるデメリットにも気を配らないといけないですね。
プロダクトオーナーの受け入れについては、大前提がプロダクトを最も愛するような人ではあるものの、「でもエンドユーザーじゃないでしょ?」っていう観点は確かにその通り。


4原則の話

下記がモダンアジャイルの4原則です。
※ 日本語訳は、こちらから拝借しました。

  • 人々を最高に輝かせる(Make people awesome)
  • 安全を必須条件にする(Make safety a prerequisite)
  • 高速に実験&学習する(Experiment and learn rapidly)
  • 継続的に価値を届ける(Deliver value continuously)

ジョシュア氏曰く、「みんなAgileにこだわりすぎている」と言っていました。
この中に出てくる安全を指す「Safety」について、ジョシュア氏はあまり気に入っていないということで、日本語の Anzen が気に入っているようです。
ANZENEERING(安全エンジニアリング) という、造語を作っています。
そのくらい安全というのは重要な鍵なのだと言っていました。

古びてきているもの

まずは、アジャイルソフトウェア開発宣言。
これ自体は今でも大切な理念ですが、色々と古びてきていると言っていました。
真っ先に挙げていたのは、タイトルの部分でした。
Manifesto for Agile Software Developmentと「Software Development」にフォーカスしており、発表されてから15年以上経った現在はもっと世の中は複雑さを増しており、実際にもっとたくさんのドメインが関係してくることから、「ソフトウェア開発」だけの話ではなくなりビジネス自体に波及するようなものになっていると言っていました。

他にはタイムボックス化された固定長でのスプリントをやめようと呼びかけた話もしていました。
Agile 2008で、呼びかけたということです。
理由は、「顧客に合わせてもっと柔軟性を持たせよう」ということで、このころから、ストーリーポイントの見積もりやベロシティによる計測をやめたそうです。
その時間を、「顧客に与える影響について話し合う機会」に割り当てて、そういう時間を増やしたのだそうです。
当時はこれでうまくいったということでした。
ScrumやXPは、そういうことですでに古びてしまっていると言っていました。

安全を確保するということ

まず、安全を確保しつつ、効果を上げる例として、子供に自転車の乗り方を教えることを例に説明していました。
自転車を教えるのに補助輪をつけるのではなくて、プッシュバイク(ペダルのない自転車)使うと良いよという話でした。
プッシュバイクを使うことで、非常に安全に自転車を学ぶことができ、ジョシュア氏の娘さんは24時間程度で自転車に乗れるようになったと話していました。
(おそらくプッシュバイクだと、最初から自分でバランスを保つために足をうまく使うので、足で蹴って二輪車に乗る感覚が養われた後に、実際のペダルがついた自転車に乗るとペダルを踏みながらバランスをとることが上手にできるようになるのだと思います。)


MEMO:
ここでのポイントは、安全の担保の仕方によっては、目的達成が遠回りになったりすることがあるということと私は感じました。 補助輪をつけている間は、確かに安全ですが、二輪車に乗る時のバランスの保ち方まで補助されてしまっているので、外した後が大変ですもんね。


Agileを学ぶ上での注意

Agileに関して、たくさんのプラクティスを説明したWebや書籍がありますが、それに固執するのではなく、顧客に必要な点を考えることが大事ですよとも言っていました。

失敗と安全

続いてレモンタルトに関する実話を元に話は進みます。
とあるレストランのコックが作成したレモンタルトを客に出す前に割ってしまったことがあったそうです。
処分しようと上司に相談したら、成功したもう一つも同じように割って出してしまうのはどうかという話になったのだそうです。
つまり「割れたレモンタルト」という作品にして、客に提供したのだとか。
それが後にそのレストランの人気デザートになったという話です。


MEMO:
ここでのポイントは、失敗してしまった事実を自信に変えていくこともできるのだということと、顧客に必要なものを考えていけば、こういう機転も生まれるのだということだと考えます。


開発者を輝かせる

そして日本の新幹線開発のエピソードです。

新幹線が生まれる前、もっと早い電車を作れとエンジニアに指示します。
しかしどのくらいの速さか、エンジニアは戸惑います。100km/h程度でいいのか、もっと速いものなのかと。
そこで、「250km/h」という前代未聞の領域を課題として掲げます。
当然、未知なる領域なので様々な問題を生むことになります。
例えば、速くしすぎると、カーブが曲がれなくなります。
じゃぁ、カーブをなくす(できるだけ少なくする)ようにしたりと試行錯誤します。

とにかく当時途方もない速さを実現するために、あらゆることを考えて実現に向けて様々のことを実施したという話です。
こうして途方もないことを実現させることで、関わった人々が輝いていきます。


MEMO:
途方もないものをやらせるというのは、やり方によってはとてつもないブラックな環境を作りそうなものですが、氏の言う「安全」が担保された状態であれば、ヤル気が生まれて成功したら誇りに変わっていくのでしょうね。


エクスペリエンス

なんと言うか、今回心に刺さった話題が次の言葉です。

作ったサービスを使ったユーザーが、すごいユーザーになるようなものを作れ

カスタマーエクスペリエンスから考えてサービスを作っていくのが大切だよと言う話です。
それと、開発チームやその関係者だけでなく、そのサービスを使うユーザーすらもawesomeな状態になるように努めるのが大事だよと言っていました。


MEMO:
今までの感じではせいぜい「ユーザーにとって嬉しいもの」くらいの感覚しかありませんでしたが、「使ったユーザーが、すごいユーザーになるようなもの」って言うのは大きな刺激を受けました。 「関わる人々を最高に輝かせる」って言う努力は前向きで良いですね!


やりすぎるな

安全性の確保をするとはいえ、やりすぎにならないように注意を払うようにと言っていました。


MEMO:
例え話によく出てくるような「隕石が落ちてきたらどうする?」っていうような超レアケースのリスクのために安全性を確保してもしようがないというような話です。


失敗との向き合い方

人間というは、失敗が怖いのではなく、非難されるのが怖い のだと言っていました。

Etsyでの事例で話をしていました。
一つのファイルをアップしたことでシステム障害が発生したことがありました。
Etsyでは、そのファイルをアップしてしまった人に対して、システムの問題を見つけたということで賞を与えたそうです。
ファイルをアップするだけで、システムが麻痺するような状態を生み出すのだという、失敗から生まれた経験を喜ばしいこととして捉えたという話です。


MEMO:
人は失敗から学ぶということを、文化的に当たり前にして、その失敗体験から生まれた改善を喜ぶ文化にするというのは、もっと世の中に浸透して言ってほしいですね。
ただ、失敗したことをそのままにしてしまうのはNGですね。


失敗できる環境作りの重要性を話していました。
失敗が許されない環境では、人は育たないということですね。
ここでGoogleでのハイパフォーマンスチームでは、心理的安全を確保しているというデータが出ている話をしていました。
参考:グーグルが突きとめた!社員の「生産性」を高める唯一の方法はこうだ

また、ミーティング時の心理的安全を確保するためのポイントを紹介していました。

  • 全員が貢献すること
  • お互いが聞く姿勢を持つこと
  • 他の人があげた意見のポイントを繰り返したりレビューすること
  • 時間をうまく使って、必要に応じて区切ったりする
  • 人々を切り捨てるようなことをしないこと

安全を感じるということは、ハイパフォーマンス化への道の扉の鍵を開くようなものだと表現されていました。


MEMO:
人に失敗は付き物であるし、その失敗から学ぶことが多いということからも、その責任を明確にして得られる(及び失う)ものと、失敗体験を克服することで得られる(及び失う)ものとを比べた場合、やはり後者の方が価値が多いと思います。


検証の大切さ

検証をたくさん繰り返して、手応えがあったものを選択していきましょうという話です。

下記の画像を使って、 Evolutionary Design(進化型設計) を説明していました。 IterativeIncrementalDevelopment

要は、本当に動く最低限のものを作ってから、進化させていくやり方です。
最低限の状態でも、最高の状態となるユーザーはいますが、進化させることでより多くのユーザーが最高の状態になるようにしていくことを目指しましょうと。


MEMO:
リーンでいうMVPの考え方ですね。 ユーザーにとっていらないものや、魅力のないものからリリースしてもビジネスで成功させるのは難しいですもんね。


協働する

Customer Collaboration が重要だそうです。

アジャイル

アジャイルマニフェストにある、「計画に従うよりも変化に対応させる」という「変化に対応する」という部分は受動的であるとジョシュア氏は話していました。
モダンアジャイルでは、「実験をして本当に必要なものを得る」という能動的な意識になるように捉えるのだと話をしていました。


MEMO:
言われてみれば確かに・・という感じでした。
「作ったものをレビューして、修正や仕様変更依頼を受けて対応する」というよりも「こういう仮説で作って、受けたフィードバックから重要なものを対応する」って考えの方が、状況をコントロールしている感じがあって凄く良いですね。


アジャイルになるためにツールは必須ではありませんよと話をしていました。 最高のモノづくりになるように試行錯誤していくことが大切なのであって、書籍を読んで知識を増やしたり、ツールを使えばアジャイルになれるわけではないですよということですね。

アジャイルマニフェストは現在でも重要ですが、今やソフトウェア開発だけでなくビジネス面でも重要なものになっていると話していました。 モダンアジャイルは、そこを考えた内容に言い換えているわけです。

最後に

アジャイルマニフェストや、ScrumやXPといったものも含めて素晴らしいものですが、それらを実践することが目的になってしまうことは避けたいと常日頃感じていました。
そうした中、モダンアジャイルのようなものが発表されて、実際に話を聞いてみて自分の視野を調整してくれるような感覚を得ました。
自分の中にある「引き出し」を、最高なものとして利用できるように色々な角度から本質をみていきたいなと、改めて感じさせる公演でした。