天の月

ソフトウェア開発をしていく上での悩み, 考えたこと, 学びを書いてきます(たまに関係ない雑記も)

スクフェス三河2023でJoe Justiceのkeynoteを聴いてきた

今日から2日間に渡ってスクフェス三河2023が開催されています。今日は、1日目でkeynoteを聴いてきたので、会の様子と感想を書いていこうと思います。

www.scrumfestmikawa.org

keynoteの概要(confengine)

confengine.com

keynoteの様子

Joeの経歴

最初にJoeの経歴に関して話がありました。

Loeはテスラでコンサルティングを行った際、モジュラリティに関してコンサルティングをして、2020年にはテスラのフルタイム社員になったそうです。
その後はアジャイルの導入プロジェクトを立ち上げ、SpaceXを頻繁に訪れる機会もあったということでした。

また、仕事以外の時間でWikispeedを立ち上げたそうで、アジャイルに車を作ることを実践し、作った車はニュルブルクリンク24時間レースの6シリンダークラスで入賞することもしたそうです。

こうした経験から、アジャイルをハードウェアに導入することが可能だと信じているということでした。

アジャイルをハードウェアに導入する際のポイント

モジュラリティ(モジュール化)

まずは、製品や作業を分割可能な状態にするために、モジュラーアーキテクチャを導入することが重要だということでした。
モジュールの数だけ独立したユニットやサブカンパニーに再構築し、最大限の並列実行を実現する「ジャスティスの法則」を行うことが重要だということでした。
この際、各モジュールは他のモジュールに依存せず30日以内に設計〜デプロイまでを完了できるようにしているということでした。(テストを製品構築後に行うのではなく、各モジュール構築の中で実装/テスト/改修が独立して行えるようにしていることが前提条件としてある)

テスラでは、上記原則にしたがってモジュールごとにチームが存在しているということで、各チームは頻繁にモジュールの変更を行っており、その変更が各チームに一切影響を与えていないようにチーム編成&組織構成をしているということです。
更に変更の際はモブ作業で並列同時組み立てを行っているそうで、これも頻繁なリリースに結びついているそうです。

なお、Joeはビル・ゲイツとともに仕事をする機会があったそうですが、その際にビル・ゲイツはすべてのビジネス活動をできるだけ多くの並列実行可能な一連の作業に分割していることに気が付き、並列実行をすることによる仕事の速度向上のメリットを実感したということでした。

xM(エクストリーム・マニュファクチャリング)

ハードウェア開発で遅延が発生しがちな11の理由に対処するために新たな工場管理の手法を生み出しているということでした。

以下、その理由と対応を箇条書きで記載していきます。

  1. コストの大きい変更→スピードをコストより重視する。待ち時間が少ないことを重視する
  2. 依存関係のある順番→プロジェクトを並列して開発できるモジュールに分割し、モジュールを個別に単体テストする。モジュールは標準のインターフェースを共有しておく
  3. サードパーティのテスト待ち→テスト駆動開発をする。合格するためのテストを書くことから始める。
  4. あるチームが別チームの作業を待つ→サービスのインターフェースを定義することから始める。お互いにこういうものを出すというインターフェースをまず提供し、入力と出力を決める
  5. 事前に壮大な計画が必要→設計を反復する。部品には2つとして同じものはない。どんな変更もよしとする。
  6. 長期の設計フェーズ→再利用と継承により、テスト済みのハードウェア設計と部品のライブラリを活用する。再利用するための用途や属性ごとにライブラリを整理し、既存の設計が再利用&updateしやすくしている。
  7. 統合に時間がかかる→継続的インテグレーション開発を行う。生産のほぼすべて(75%)の要素を自動化する
  8. 製造工程の変更が高価→生産ラインの構造を変える。アジャイルチームは部品やソフトウェアの流れを選択し、セルに出入りする。
  9. 流通が複雑であり費用が高い→継続的デプロイメントを実施する。新しい設計を1日に何度も継続的に生産に投入するようにし、最終的に適合していることをテストする。リファクタリングを頻繁に行う
  10. 大量生産時の変更が高価→一つの製造セルの能力を高めるのではなく、各モジュールを製造する製造セルを追加する
  11. ベンダーや仕入先の問題→インターフェースをサプライヤーに提供したり、テスト手順やテスト治具サプライヤーに直接提供したりする。契約形態を変える。テスラでは1週間以内にフィードバックに基づく改善を行う前提で契約を結んでいる。

Q&A

講演の後はQ&Aがありました。以下、質問と回答を常体で記載していきます。

問題に対してソリューションを立てる際、問題が明確になっていれば最適にソリューション(今日の発表であればモジュール)を分解できると思うか?思うならプラクティスはあるか?

アーキテクチャの分割を何度もすることが大事だと思っている。

アジャイルなのでやり方をどんどん変えていくことが重要だと思っている。日本だと、何かアイデアを言うと「もっと考えればいいアイデアが生まれる」と言われたり承認なしに行動を起こせないことが多いが、そうは思わない場面も多々ある。何かそういう文化をぶっ壊すことはできないか?

1つ飛ばすとシステムが上手く動かないことがあると思う。今日紹介できなかったが、Mob AIはその場でハイクオリティなものが作れるプラクティスであり、役に立つと思う。このプラクティスなら承認もいらない。

なお、インターネットを使っていない人がMLの結果を見て判断することが多いのはすごく変だなあと思っている。

テスラではスクラムマスターorスクラムマスターのような人はどういう役割や高価を果たしていたのか?

テスラではスクラムをしていない。全員が最高の開発者であり最高のスクラムマスターであり最高のチーミングスキルを有している。

スクラムを否定しているわけではないし、スクラムアジャイルに向かっていくための良い手段だと思っているが、スタートアップに関してはスクラムではなく今日紹介したイーロン・マスクのモデルを採用すればよいと思う。

全体を通した感想

Joeの研修でCSM/CSPOを受けたのでそれ以来の講演でしたが、明るく楽しく話をする姿は全然変わっておらず、懐かしい想いを抱きながら聴いていました。

Discordでもコメントが出ていましたが、実際にテスラの工場を見に行きたくなるような講演でした。