Sunbathing sheep

Sheep named aki

Agile Party 2023:Joe Justice氏の話しから学んだこと

Agile Party 2023

abi-agile.com

全然タイムリーではないのですが、アジャイルパーティー(略してアジャパーらしいです)にSCRUM MASTERの著者であるJoe Justice氏が登壇されていたので、こちらを視聴してアジャイル開発の当事者として学んだことをまとめてみました。

目次

ビル・ゲイツの仕事の進め方

全てのビジネス活動を、並列実行できるように多くの作業に分割し、全ての一連の作業を同時に、それぞれのチームで実行していくそうです。これをモジュール化と呼んでいるそうです。

  • 一連の作業の例
    • 要件
    • 計画
    • 分析
    • 実行
    • テスト
    • 展開

モジュール化とは

分かりやすい例として、レゴが挙げられていました。大きな製品がレゴで作った車とするならば、一つ一つのブロックが小さい単位の機能となります。このように、小さな単位の機能を作っていくことで、大きな製品を作っていくことができるという話しでした。ここまでは自分もよく聞く話しでしたが、ここからが面白かったです。

Teslaの車作り

多くの自動車会社は車全体の設計をしてから製造をするという流れでリリースまで7〜8年かかることがあるそうですが、Teslaでは各部品に分けて、設計と製造を同時に行っているそうです。要するに作り始める段階では詳細は決まっていないということでした。なので、最終的に出来上がったもの、生み出されたものは誰も当初想像していなかった物ができるということになるそうです。Webの世界ではなくて自動車会社でもこの考えで開発を進めることができるんだなと驚きでした。ちなみに自動テストもあるそうです。要するにアジャイル開発の知識は業界を問わず応用できうる可能性を秘めているということが、ここでの最大の学びと驚きでした。

開発の概要

Teslaでは開発初期の段階ではモジュールこのぐらいかな、アウトプットこのぐらいかな?と推測して、その先はそれぞれの開発チーム(モジュール)に任せする。という方法で開発を進めているそうです。なんて大胆でスピーディーなんだろうとここでも驚きました。そしてそれぞれのチーム、例えばインターフェースを作るチーム、バッテリーを作るチームなど、それぞれのチームはまるで別会社のように独立して設計、テストを繰り返しているそうです。そして、お互いのモジュール化されたチームはお互いが干渉することは無いので待ちも発生せず高速に開発を進めることが出来る。結果として今のTeslaの成長に繋がったという説得力のあるお話でした。

自分がアジャイル開発を進める当事者だったとしたら

はじめに、ここではあくまで自分がアジャイル開発を新たに推進する立場だったらという前提で考えることで、今の自分に見えていないものが見えそうと考えて独り言のように書いています。なので、ここは読み飛ばして頂いた方が良いかもしれません。

当事者として考えようと思った背景

自動車に限らず物理の開発を手がけるビジネスモデルに関して言えば、人件費だけではなくて製造コストが毎スプリントないし、かなりの頻度で発生することが考えられると思います。ということは、新しい物を作る反面、製造コストを掛けてすぐに使わなくなる可能性がある物を生み出す勇気みたいなものがチームだけではなく、組織全体として必要ということになると思いました。それってアジャイル開発未経験の組織からしたら踏み出すのはかなり勇気がいることだと思い、自分ならどうするだろうと興味が湧いたので考えてみました。

シチュエーション

  • 物理の開発を手がける組織に自分が所属している(人件費以外の製造コストが高い)
  • 競合との差別化を図るために新しい物を作ることになった
  • 開発手法の決定や推進に関して権限や裁量のある立場にいる
  • アジャイル開発をしてこなかった組織で新たにアジャイル開発を導入する。または、したいと考えている。

そんな立場で、アジャイル開発を導入してリードすることが果たして自分に出来るだろうか?と考えた時に大枠何をするか考えてみると

  • チームだけではなくて組織の合意を取らないといけない
    • 相手を納得させるだけのエビデンスや実際の知見や経験に基づいた納得感のある説明をして相手の理解を得る

のようなタスクを進めることになると思いますが、今の自分では製造コストのリスクをメンタル的に過大評価してしまったり、リスクを正確に把握できるまで、アジャイル開発を提案することさえ出来ないのでは無いかと思いました。ここまでの独り言をNotionで書いてみて、再認識したのは自分は「アジャイル開発の思想っていいですよね!」とか思っていながら、何が大事なのかを全く理解していないということでした。

自分はどうしたいのか

ここで一旦想像の世界から戻ってきて、自分はアジャイル開発の型を理解したいのか、アジャイル開発を活用して何かしたいのか、自分に問いかけてみると、『将来エンジニアとして組織やビジネスをリードできる人材になりたいと思って、この世界に飛び込んだんじゃないの?』ってすぐにダメ出しが返ってきました。

名ばかりではなく、本質的にアジャイル開発をするには

それでは自分の場合、どうすればアジャイル開発をリードできるような人材になれるだろうと考えた時に、アジャイル開発を導入したであったり、アジャイルの文化を醸成してきたような方々のお話をイベントを通じてお聞きしたり実際に伺ったりしたりしながら、もちろん先人の書き残した記事など参考に自分自身が実際にアクションを起こして自身の体験にすること、そして自分自身も体験を発信すること。その繰り返しで、失敗と成功を豊富に積むことかなと思いました。その積み重ねで知見が増えることで自分の判断や方針、言葉に説得力が出てくると思うので、見た聞いた話しではなくて自身の体験を積むことが大事だと思いました。

まとめ

アジャイルとは1回で完璧な物を作ろうとせず、短いスパンで様々なコストを払ったとしても、改善を繰り返すことで開発スピード(時間)を買っているようなイメージというのが自分の理解で、このスピードが結果的に品質やコストダウンにも繋がるというメリットを再認識しました。また、アジャイル開発をリードするような人財になれるよう、Web業界に留まらず様々な方々との交流を通じて自分の経験や知見を増やしていきたいと思いました。その積み重ねの先にはエンジニアとしてビジネスの世界でも活躍できる楽しい世界が広がっているのではないかと思いましたので、長期的な目線で自分のキャリアを磨いていきたいと思いました。

というところで気持ちが高ぶってきたので、ここら辺で終わりにします。

最後までお読み頂きありがとうございました。