天の月

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

スクラムフェス沖縄Day2に参加してきた

www.scrumfestokinawa.org

Day1に引き続きスクラムフェス沖縄に参加してきたので、会の様子と感想を書いていこうと思います。

Kiroさんにペアプロしてもらう

OSTのテーマで川口さんがTDD(ただだべる)を出していたところ、Kiroさんが本当のTDDの話をしだしており、それならもう「真・TDD」というテーマでOSTのテーマとしてやったほうがいいんじゃないか?ということになって、その場にいたisseiさんまえけんさんと一緒に先日のイベントでお題として挙げたTrading Card Gameペアプロで実装してみることになりました。

まずは図(UMLとかではなく、問題の情報をひたすら紙上で表現してみる)でお題の構造を整理してみた後、どういう順で実装をしていくのかを決めていきました。
このとき、とにかく外から見えるふるまいに絞って実装を考えるのと、この「外」が誰なのかを明らかにしたうえで実装を考えるのと、ライフサイクルが長いものから順に実装することの3点を考えるのがコツだということでしたが、正直な話このコツだけで上手に実装順番が整理できるようになることはないので、いろいろな経験知が必要になってくるという話をKiroさんはされていました。(もっといえば経験知があったうえでもすべてやり直しになるようなことはあり得る)
また、この実装順序の話はかなり厄介で、TDD Boot Campのお手本などでも開発者が作りやすいところから作られてしまっていたり、有名な書籍にも明確な意図は書かれていなかったりするので、Kiroさんとしてはアンクルボブのボーリングゲームの話をよく例に出して話をしているそうですが、やはり色々なお題を通して実装順序を考えてみるしかないということです。
参加者もFizzBuzzなど基本的なお題は経験していましたが、今回くらいのTrading Card Gameくらいのケースになると、幅が大きくなりがちになったり、作るイメージがわいたりオブジェクトのイメージがわきやすいデッキの増やし方やマナの増やし方みたいなところから着手したくなってしまいがちだという話をしたりしていました。

そうして色々話していった後最初のプランを考えたのですが、まず出たプランとしては、以下のようなものでした。

  • 先手をひいた瞬間に絶対に勝つゲームを実装する
  • ダメージが常に1ずつ与えられて先手が絶対に勝つゲームを実装する
  • ライフが先手は20, 後手は30あって、ダメージが常に3ずつ与えられて後手が20ターンで勝つゲームを実装する
  • ...(デッキとかの概念を拡張)

そのうえでプランにしたがってペアプロをしていきました。
多少不便さはあるけれども、TDDのやり方を身に染み込ませるならIDEを使うよりもcyber-dojoくらいの制約があるツールのほうがいいということで、cyber-dojoで実装をしてみました。

リファクタリングの際にはリファクタリングをしている最中に絶対にテストが赤にならない(テスト実行をいつ走らせても赤にならない)ようにするという点に注意を払いながら、Javaでコードを書いていきましたが、やっている中でプランの変更がありました。
具体的には、最初に立てた2つめのプランに関して、先手ではなく後手が勝つテストケースも作りたいという話が出てきて、GameクラスではなくPlayerクラスのテストを15分くらいで書いてみようという話がありました。そのため、

  • 先手をひいた瞬間に絶対に勝つゲームを実装する
  • 先手(後手)がダメージを受けたら必ず負けるゲームを実装する
  • ダメージが常に1ずつ与えられて先手が絶対に勝つゲームを実装する
  • ライフが先手は20, 後手は30あって、ダメージが常に3ずつ与えられて後手が20ターンで勝つゲームを実装する
  • ...(デッキとかの概念を拡張)

というプランで実装をし直していきました。
このとき、個人的にはPlayerがライフを持っていてライフを超えるダメージを受けたらPlayerが負けるというロジックまで書きたくなったのですが、Playerが負ける条件に関してはいろいろなロジックが考えられるので、まずはダメージを受けたら必ず負けるくらいのレベルで実装したほうがいいという話があり、その方針で実装しました。

ペアプロの他にも、Kiroさんとしてはイベントストーミングはよいプラクティスだとは思うけれど何回もやり直す必要があることを考えると重いと感じるのであまり勧めたりはしないという話や、他の人が運用保守をしていくことを考えるとモデルはなるべく汎化させたくない*1とKiroさんは考えているという話を聞いたり、なるべく単純なモデルを考えたうえで壊れるようなユースケースを考えた後に、「そのユースケースが来たら壊れるね」でまずは止めておく(なんでもかんでも対応しない)ことが大切だという話を聞いたりしました。

カレーを食べに行く

まえけんさんが家族から激推しされたというすごい美味しいカレーをKiroさんisseiさんまえけんさんさていさんと食べにいきました。ラッシーも含めて本当に美味しくて、もともと聞いていた沖縄のご飯はあんまり美味しくないという話が良い意味で裏切られました。

ランチでは以下のような話をしました。

  • まえけんさんとはRSGT2022以来の再会で、「あのときの...!?」という話をしました。当時とはお互いに色々状況も変わっていたので、ここでまた再会できるというのは感慨深かったです。まえけんさんはRSGTのチケットが買いたかったのに買えなかったということで現地参加は諦めたそうですが、どうせなら沖縄でサテライトなどをやってみるのはいいんじゃないか?という話をしたりして、それはたしかにいいかもしれないという結論になりました
  • 事業会社はメイン事業がころころ変わるということはまずないため、事業会社にずっといると、あまり多くのサービスやシステム開発が経験できずに、いざ新しい事業を立ち上げようとなったり新しいシステムを作ろうとなったとき、リードしていく立場にあるような30代くらいの人がリードできるスキルを保有できていない、みたいなことが起きがちになってしまうという話をしました。これを解消するためにはコンサルタントみたいな立場で複数のプロジェクトに携わって色々なシステム開発の経験を積んで多様な視点から考えられるようにする必要があると思われるのですが、これはすなわち兼務やハードワークを推奨することにもなるので、あんまりみんなに推奨したい方法でもなく、難しいという話をしました
  • プロダクトをたたむ経験は貴重だという話から、プロダクトの機能を消すために色々とやれることの話をしました。具体的には、画面を消してみたり、機能を使うためには何段階もメニュー上で遷移しないといけないようにしたり、画面上に「この機能はもう消す予定です。必要ならば必要な旨を教えてください」などと表示したり、waitをかましたり、機能に対するサーバーのリソース割り当てを縮小したり、それぞれが色々やったことのある機能の消し方の話をしていきました。
  • UXデザイナーと名乗る人に関しては、機能を使いにくくする設計も必要だという話が出ていました。ほぼ誰も使っていないような機能や消した方がシステムのためになるような機能であっても、顧客フレンドリーで使いやすい設計にされると、非常に辛いということでした。ただ、これを悪用したいわゆるダークパターンも最近は増えてきていて、台湾や中国のサイトでは退会ボタンがなかったら、解約するために使いにくいチャットボットを使ったら永遠と繋がらない電話をしたりといった方法で退会を足止めするような方法も出てきているので、これはEvilだという話をしていました。
  • まえけんさんはお財布を忘れたということで、Kiroさんisseiさんさていさん自分の誰に借りるのがいい選択なんだろうか?(誰に借りると一番面倒くさいのか?)という話をしていました。結果的に電子決済ができたので特に借りることなく済んでいました
  • 沖縄は湿気がすごいためカビもすごいということで、1週間家をあけたらタンスがカビていたという話を聞きました。そのため、革靴を買ったりしたときはカビとの闘いが待ち受けていそうだということです。また、言わずもがなで他地域との寒暖差もすごいため、東京に帰ったら風邪を普通にひきそうだという話をしたりしました。
  • 最近の電子決済事情として企業の銀行口座に直接ログインするという行為の対価として与信提供をしているUPSIDERの話をしたり、セキュリティが強固になっている話(カード番号すらいらないカードが出ていたり、携帯のアプリでロックを掛けない限り使えないので落としてしまっても誰かに使われることはない)が出たり、iPhoneがあれば中にクレジットカードを入れてタッチ決済したり普通のクレジットカード同等の決済ができたりするという話をしたり、iPhoneだと複数のカード情報が入れられてしまうことが原因で一つだけ登録しているのであればApple Watchのほうが電子決済しやすいという話をしたりしていました
  • 自分のメールアドレスを提供すると広告が非常に煩わしいので、購買サイトに登録する際に購買用のメールアドレスを発行するようなサービスがあれば是非使ってみたいという話をしました。また、自分のカード番号とそのメールアドレスを紐づけすることに対してセキュリティの懸念はややありますが、購買用のメールアドレスと同時に電子カードも発行するようにできればその心配はなくなるということで、そういったサービスができれば不要な広告がプライベートのメールアドレスや仕事のメールアドレスに送られてこなくなるのでかなり売れるんじゃないか、という話をしていきました
  • ご飯を食べてお腹いっぱいになった人たちがゆっくり寝れるような場所がカンファレンスにもあるといいよね、という話をしていきました。そういった意味でリトリートは仮眠を取ることが簡単にできたりするし、疲れたら休憩スペースのようなところでダラダラできたりするので、参加しやすいということです

川口さんKiroさんOgasawaraさん佐野さん頭取Akiさんたちと雑談する

ランチから帰ってきた光川さんや川口さんからたこ焼きをいただいてえわさんと少しスクラムフェス金沢の話をした後、川口さんKiroさんOgasawaraさん佐野さん頭取Akiさんたち(途中で何人か入れ替わり)といろいろと雑談をしていました。

  • 沖縄の伝統菓子であるポーポーを求めて帰ってきた西内さんが旅するおおひらさんを交えてぽーひらさんを誕生させていました
  • スクラムアライアンスが主催しているカンファレンスが、完全に文化祭運営になってしまっていてRSGTの運営方針とはまったく違うという話をしました。文化祭運営というキーワードから、頭取が最近書いたブログの話になり、川口さんが最近書いたブログは頭取が社内で取り組んでいることを社内メンバーやスクラムフェス福岡の運営メンバーに対して啓蒙するのにすごくよかったという話を聞きました。これは頭取以外もそうだったようで、Ogasawaraさんもすごく良くて周りのメンバーにシェアをしたという話をしたり、自分もスクラム祭りの運営メンバーで読んだりしたという話をしました。川口さん的にも、こういった雑談の場では言ったことがある話ではあったもののブログのような形で文字に起こして言語化したのは初めてだったそうで、書くことができて良かったそうです。(Claudeに任せたらやたらと長くなってこれ誰が読むんだ?となったのは気になっていたそうですが...)
  • 川口さんはいくおさんに書籍のコラム寄稿を頼まれた際、当初書いたコラムが当初言われていた文字数をオーバーしてしまったそうで、Claudeになくなく要約してもらったそうです。いくおさんも川口さんの無念は感じ取ってくれていたそうで、「削る前のバージョン良かったですよね...」と言ってくれていたそうなのですが、いざ蓋をあけてみるとほぼ全員がいくおさんに言われていた文字数をオーバーさせてしていたそうで、「だったら文字数削る前のバージョンを!!笑」と思ったということでした(ちなみにOgasawaraさんは文字数通りに寄稿したということでした)
  • Kiroさんが話をし始めるとき、「いやー」か「えー」で話が始まることが多いというのを知っている川口さんがKiroさんは「いやー」か「えー」を言ってはいけないとKiroさんに言ったところKiroさんがまったく話ができなくなり、エンジンが壊れてしまったという話からテスラのエンジンの話になりました。テスラのエンジンがすごいのは、細かい改善が500個以上繰り返されてすさまじいスピードでエンジンのバージョンがインクリメントされていることと、エンジンがバージョンアップするにつれてどんどんシンプルになっていっているのが挙げられるという話をしていて、これじゃあエンジン一台に対して設計や計画を"十分に"練ってから作業をし始める会社が勝てるわけないよね、という話がありました
  • テスラは上記で話した通り本当にすごいものの、今はがんがんお金をかけて金に物を言わせるようなやり方になっているのだけはどうにかならないかと思っているという話が出ていました。AIでGPUをどれだけ積めるかの勝負みたいになっているのも同じような匂いを感じるそうで、お金をかけずにイノベーションが生まれるような方向も見てみたいという話をしました
  • 円谷さんのウルトラマンの特撮ですごいチープなロケットの戻り方をみた川口さんは、「こんな戻り方するわけないじゃん...」とずっと思っていたそうですが、最近テスラのロケットが戻ってくるのをみたときに、「ウルトラマンのまんまじゃん...!」と思ったそうで、円谷さんもきっと喜んでいるんだろうという話が出ていました
  • DevOpsDays Tokyoの川口さんのkeynoteはどうせオーバーするのが分かっていたのだからなんのフックにもなっていなかったのでオープニングトークをもっと削ればよかったのではないか?という話があったり、川口さんへのkeynote依頼が欠席裁判で酷かったという話があったのですが、こうした話が言えたり川口さんに対して雑に依頼がくるのは関係性ができているからこそだという話をしていました
  • 今回RSGTではナイトセッションでPiyoさんChinmoさん新さんの3人がパネルディスカッションする超豪華なセッションがあり、これが楽しみだという話をしていました。ただ、川口さんはこのセッションに出る予定はもともとなく、裏の食品業界のパネルディスカッションに出ようと思っていたそうなのですが、teyamaguさんにPiyoさんChinmoさん新さんの3人のセッションに関しては川口さんがモデレーターじゃないとだめだと言われてしまったという話を聞きました。(川口さんがこの3人のセッションがなぜ面白くなるのかを語った結果にはteyamaguさんは納得ができたけれども、川口さんがいないとその面白さが引き出せないだろうという判断)川口さん的には、ファシリテーションとかしないほうが絶対に面白くなると思っているそうですが、もし自由に放置した場合のシュミレーションをみんなでしてみたところ、新さんが新さんの魅力を損なってしまうよな形式的なファシリテーションをしだそうとしてしまって、その様子をみたPiyoさんがどんどん一般論を言い出すようになってしまい、Chinmoさんはその様子を見てふっと影を消すみたいな形になってカオスなことになりそうだという結論になり、やっぱり川口さんはいたほうがいいと川口さん以外のメンバーは話していました。どうしてもファシリテーションをするのは避けて最前列でゲラゲラ笑ってセッションを見たい川口さんはOgasawaraさんに共同ファシリテーションを頼んだのですが、共同と言いながら本番はしれっといなくなってOgasawaraさんにファシリテーションをお願いする算段だろうとOgasawaraさんに言われて断られていました
  • 上記3人のセッションに関して、副音声的に3人のことを知っている誰かが話しをするのは面白そうだという話題から、上記3人のセッションの副音声を川口さんが担当してその副音声を誰かが担当するのは面白いんじゃないか、という話が出ました。具体的には、「川口さんはこの話どうでもいいと思っていますねー」「川口さんこれ自分の話しだしてするので次この話しますよ!」「川口さん今の話好きだから面白くなって全然時間守っていないけど大丈夫ですかね?」...といったのが副音声の副音声になるイメージで、これは間違いなく面白いという結論になりました。派生して、ある人のセッションに対してその人に詳しい人が一人副音声としてついて、ひたすらその人に関して語るというのはすごい面白そうだという話をしました
  • 上記3人のセッションは川口さん的には福岡の長期戦アジャイルの続きのつもりだったそうですが、その後Chinmoさんに激動があってそれが本当にすごかったという話を聞きました。具体的には、Chinmoさんはチームが会社命令で解散になってしまったにも関わらず、チームが顧客に対してベネフィットを提供し続けているがゆえに、「これだと顧客に対してベネフィット与え続けている限りはチーム解散できないよね」と交渉したそうで、会社もさすがに顧客を捨てろとはいえず、結果的にチーム解散しているけど実際は解散していない、といった状況ができ続けているそうです。それを聞いた川口さんはChinmoさんの賢さと瞬発力の高さに対して本当にすごいと思ったということでした。そういったこともあるのかChinmoさんは先日アギレルコ゚さんの研修に来た時に疲れ気味だったそうで、髪の毛が大変なことになっていたという話を聞きました
  • 副音声カンファレンスというのはサテライト形式の参加が楽しい理由の一つだという話をしました。セッションを見ながら自由に発話できるというのは、安全な場であればすごい効果があることで、今回のKAGのサテライトに関してももしかしたらそうなったりするかもしれないよね、という話をしました
  • 今回のKAGサテライトに関してはKoitoさんが仕切っているという話を聞きました。Koitoさんはもともとかなりやる気だったそうで、チケット争奪戦にもまったく参加しない&スポンサーチケットの争奪戦にも参加しなかったそうで、社内メンバーを集めたサテライトをとにかく盛り上げようとしているということです。
  • 実は文字起こしセッションの締切はもう一週間後くらいに迫ってきておりやばいという話を聞きました。川口さんは一通り10年分の学びを整理したそうですが、ここ最近になってさらにもう一つ入れたいトピックができたそうで、ただでさえもう時間オーバー気味(+Claudeがめちゃくちゃ長くしてくる)な中で更に追加されるのは大変なことになりそうだという話をしていました
  • 川口さんがフリーレンを激推ししていて、自分はまったく読んだことも見たこともないですと言ったところ、なぜかisseiさんと佐野さんから絶対に読むか見るかはしないとだめだという話をされました。今すぐにでも読んだほうがいいという話をされ、自分は最後のセッションに予定していた読書ワークショップで読書する時間にフリーレンを読むことになりました(光川さんがちょうどフリーレンを電子版で持っていて貸してくれました)
  • 川口さんは今回とあるセッションでPiyoさんに楽曲作成を依頼したそうですが、依頼した際のPiyoさんの反応が、「作っていいんですか!?」だったそうで、この人やっぱり(良い意味で)やばいなと思ったという話を聞きました。ちなみに楽曲作成に関してもプロダクトづくりということで、一個流しでやるようにOgasawaraさんが制御しているという背景があるそうで、「10月頃には楽曲作成が終わると思うのでそのあとすぐに着手しますね!」という回答もPiyoさんからはセットで返ってきたそうです
  • とある背景から、アラウンド83とKAGで打ち合わせをする機会があったそうですが、アラウンド83は本当にイメージ通り適当だそうで、打ち合わせ時間になっても誰も現れず、ようやく来たと思ったら頭取一人で、Ogasawaraさんはもともとわずかにあった信頼が底辺に落ちたということでした
  • Akiさんが正論を言った所すごい不服そうにしていた川口さんが、Akiさんがやや浅めに(?)川口さんを褒めた所、褒め方が浅いことを猛烈に突っ込み、とにかくAkiさんことを潰そうとしていました
  • 仕事で8時間集中して働くのが難しいのに、カンファレンスでそれ以上の時間ぶっつづけで参加するのは無理だよね、という話が出ていました。カンファレンスはまだ休めますが、最近はCSMなどの研修がオンラインがスタンダードになって16時間必須という要件になったそうで、これはどうやって集中力をもたせるんだ...とKiroさんが頭を悩ませているという話を聞きました。なお、集中力のことも配慮して、現在オンサイトでは3日間に分けて開催したり工夫をしているそうですが、オンサイトの原価率は悪化してきているということです

えわさん稲野さんと話す

えわさんは今回旅行も兼ねて沖縄に来ているそうで、自分も同じだという話をしました。
また、今回も自分は家族旅行も兼ねて来ているのですが、前回のスクラムフェスニセコでは実は空港で家族とえわさんが対面し、そのときの裏話(?)をいろいろと聞きました。
その後、稲野さんがおすすめのステーキを教えてほしいという話をしてくれたことから、食べごたえのある沖縄のステーキに関していろいろと話をしました。

Hisaさんと話す

Hisaさんから矢田侍のステッカーをもらい、その後少し矢田さんの話を聞きました。矢田さんは最近いろいろ活動をされている*2こともありかなり忙しいそうで、やっぱりそうですよね...という話をしました。

その後はHisaさんの最近の仕事や自分の最近の仕事の話をしたあと、Hisaさんが技術をそんなに楽しいと思えないんだけれどもマネジメントするにあたって絶対に必要なことなので修行のつもりで勉強したり仕事をしたりしているという話になり、技術が楽しいというisseiさんも交えて、どういうところが楽しいのか?や将来どういう風になりたいのか?という話をしました。

ワークショップ開催

ワークショップをしてきました。

がっつり参加してくださったおかさんしまぐちさん瀬底さんしまぶくろさん山田さん唐戸さん+一部参加してくださったいがさんOgasawaraさん頭取いわむーさんKiroさん、どうもありがとうございました!

speakerdeck.com

クロージング&写真撮影

これまで参加してきたどのカンファレンスよりもシンプルなクロージングを聞きました。

今年よりさらにいいカンファレンスではなくてまた来年も今年と同じカンファレンスを開催したい!という話が沖縄らしさが出ていてとてもいいなあと思いました。

皆さんで写真撮影した後は玉子寿司さんOgasawaraさんと少し話をし、玉子寿司さんとはリアルだとしばらくは会えなさそうでそれはもちろん寂しいんだけれども、沖縄だけ(=その地域だけ)で会える人というのがいてもそれはそれで素敵だし、その人のためにカンファレンスに参加しよう、という話になるよねという話をしました。

全体を通した感想

スクラムフェス沖縄は初参加でしたが、とにかくスタッフの方があたたかかったことと、OSTやワークショップonlyということで参加者の方とたくさん対話を楽しめたのが印象的でした。今回は家族都合もあってDay2の懇親会は参加できなかったのですが、懇親会に参加した時くらいのたくさんの学びがあって&楽しい思い出がたくさんできてすごく楽しかったです。

また、特に印象的なこととして、自分がはじめて参加したRSGT(当時知り合いは数人しかいなかった)のDay0であたたかくコミュニティに迎えてくださった荒井さんと再会できたり、2回目に参加したRSGTのDay0で知り合ってまだ年齢が若い者同士お互いに頑張っていきましょうと話したまえけんさんと再会できたり、SNSでちょいちょいお見かけしたりしていたisseiさんと割と長い時間話すことができてすごく楽しかったり、大分前(?)からオンラインでは会話を何度もしていた玉子寿司さんと初めてオンサイトで会ったり、山田さんにワークショップに参加していただいて色々な話を聞くことができたり、いわむーさんと沖縄で会っていわむーさんが楽しんでいる様子を見れてお話もできたりと、スクラムフェス沖縄だからこそできる体験が一気にできて本当によかったです。

沖縄は本当に超個人的な事情で行くのがためらわれる都市で、今回も意を決して相当な準備と覚悟を持っての初上陸だったのですが、来ることができて心底良かったと思いました。
色々話をしてくれた皆さん、2日間どうもありがとうございました!

*1:汎化が進んだモデルは色々な拡張ができるのでモデルを考えた当初の意図が簡単に壊れやすい

*2:具体的に聞いたのですが一応伏せておくことにします