YAPC::HiroshimaとYAYAPC::HiroshimaでトークとLTをしました #yapcjapan #yayapc
2024/02/10に行われたYAPC::Hiroshimaにて、 "エンジニアリングマネージャーのための「ぼうけんのしょ」" というタイトルでトークをしました。
マネジメントに携わる方々だけでなく、「チームでいいもの作って届けたい」と考える皆さんにとってのセーブポイント、あるいは旅のしおりとなるような内容を目指したつもりです。
残念ながら2年連続のベストスピーカー賞…とはなりませんでしたが、既にたくさんの方にスライドを見ていただけているようです。嬉しい!FBもお待ちしています。
最初は「エンジニアリング組織論への招待」の内容も加えつつ、より経営に近い内容も盛り込もうとしていたのですが、20分枠だとさすがに難しく、現場を起点とした直接マネジメントに近い領域にフォーカスして構成しました。
自分の行動が次の誰かのきっかけになる、ということ
2024ベストスピーカー賞の三谷さんが受賞コメントで、私の去年のトークでYAPCを認知したこと、次の開催が地元だというのでご参加されたことをお話しされていました。また懇親会ではaerealさんが「あえてテックに振らない話題をプロポーザルに出してみようと思えたのは、去年のあらたまさんのトークとそれを受け入れるYAPCの土壌を見たから」とお伝えくださって、どちらもめちゃくちゃ嬉しかったです!!!!*1
今回は懇親会があったこともあり、そのほかにもご感想・FBをたくさんの方から直接いただけて本当に感謝です。やっぱりオフライン登壇+懇親会は最高ですね!
しかしまあ、「誰かのトークが聴いた人の人生をちょっと変える」はわりと聞く話ではありますが*2、自分がそれを言っていただく立場になろうとは。エンジニアなりたてのころは想像すらしていませんでした。
トークの話
スピーカーもベストスピーカー賞への投票権がもらえると嬉しいですね。マコピーさんのWebauthnのトークに投票したかったです。カンファレンスといえばライブコーディング!Perlを知らない方も多い中で、言語の解説や小話も挟みながらパスキー認証を実装していく手際の鮮やかさたるや。前日の👇も最高でした。
昨日、2次会でマコピーさんが皆に速習Perlしてたのめちゃめちゃ良かった #yapcjapan
— あらたま|LayerX Inc. (@ar_tama) 2024年2月9日
公募トークのうち特に印象に残っているのはnishimotzさんのWebアクセシビリティの話、ohbaryeさんの冪等性の話、koba04さんのキャリアの話です。どちらもこのタイミングで聴けてよかったと強く思う内容でした。素敵なトークをありがとうございました!
YAPCはロールモデル不在時代の「ロールモデル集め」の場になるかも
2010年代前半までのYAPCは、miyagawaさんを始めとした強烈な光のようなハッカーがたくさんいて、それに憧れる・きっかけをもらう人たちがいて、という構図が今よりは濃くあったと思います。翻って今のYAPCは、(表現が難しいのですが)いい意味で等身大というか、フラットというか*3。「Perl以外の話題もあるんだ、なんか面白そう」と初めて来てくれる方がたくさんいたり、いろんな人のいろんなトークを「いいな」と思って取り入れて明日に活かす(≒ロールモデルとする)ような、そんな楽しみ方が前面に出てきたような気が、個人的にはしています。
言語にとらわれすぎないカンファレンスとなったことで、YAPCは志向も世代も多様なハッカーが集まる稀有な場となっています*4。芯は残しつつ未来に向かってどんどん変容していくこのジオパークのような素敵なコミュニティを、微力ながら支える一助であり続けたいと強く思います。
YAYAPCのYAはヤバいのYA
オフライン限定の、訓練された大人のためのカンファレンス、それがYAYAPC……!
グエー #yayapc
— あらたま|LayerX Inc. (@ar_tama) 2024年2月11日
ウワーッ(シェア禁止なので鳴き声しか出せない) #yayapc
— あらたま|LayerX Inc. (@ar_tama) 2024年2月11日
こういう会でした。最高でした。次は参加料取ってやりましょう(kobakenさんありがとうございました)。
そして会場に着くやいなやmyfinderさんから「タイムテーブル間違えちゃってLT枠が余ってるんだけどどう?」と棚ぼた的に枠をゲットしたので、急遽社内向けLTから抜粋してお話ししました。会社という船をみんなで前に進めるために必要なのは越境力!セクショナリズムは 暴力 越境で解決だ!
大井町.pmのお二人(とxtetsujiさん)の企画も光ってました。ご準備大変だったと思いますが、LT審査員という栄えある(?)役回りもいただけて楽しい限りでした。
さいごに
ありがとう、ありがとう、ありがとう!
今年もつつがなくお祭りを終えた。ついつい「今年は」とか「来年も」とか言っちゃうけどこれは当たり前のことなんかではないことをもう私たちは知っている。みんなで作るのがコミュニティであり、カンファレンスであり、YAPCです。ありがとう!また会おうね! #yapcjapan #yayapc
— あらたま|LayerX Inc. (@ar_tama) 2024年2月11日
なによりLayerXの皆と来られたことが最高によかった。オフラインカンファレンス初参加の同僚もいたんですが、しっかり楽しんでくれたようですごく嬉しかったです。ノベルティを作ってくれた敏腕デザイナーのpommesさんにも感謝!
LayerX の人たくさんきてますよねー!とかなり多くの方に言われて嬉しかった🙌
— serima | LayerX (@serima) 2024年2月10日
みんなのワイワイ感が伝わってたら嬉しい〜!
7人で来てたよ!#yapcjapan
w/@itkq @ar_tama @y_matsuwitter @shirakiy0 @upamune @onsd_ pic.twitter.com/M13s0UROnu
さーて、次はどんなプロポーザルを出そうかな!
「プロダクトマネジメント ―ビルドトラップを避け顧客に価値を届ける」の用語を整理してみた
ビルドトラップ本、示唆に富んでいて何度も読み返しているけど、同じ意味が別の用語で表現されたり、用語に対するドンピシャの説明がなかったりするので、周囲との共通語彙・認識を作る目的での課題図書にはしにくいと思う(ライトにアンチパターン集として読み合わせるだけでも十分効果出そうだけど)
— あらたま (@ar_tama) 2023年5月27日
というわけで、自分の理解の整理のためにも、各概念をまとめ直してみました。
出典:「プロダクトマネジメント ―ビルドトラップを避け顧客に価値を届ける」
本そのものの要約はこちらが詳しかったので、ご参考ください。 note.com
前提:価値交換システム
顧客にプロダクトやサービスを提供する(アウトプット) ↓ アウトプットが顧客の抱える要望や課題を解決する ↓ それに見合ったお金がビジネス側に返ってくる(アウトカム)
つまり、顧客が価値を認める(=アウトカムが得られる)のは、自分たちの問題が解決したり、要望やニーズが満たされたときだけ
ビルドトラップ
- 組織がアウトカムではなくアウトプットで成功を計測しようとして行き詰まっている状況
- アウトカム…実際に生み出された(顧客に届いた)価値
- アウトプット…機能の開発・リリース
- ビルドトラップが起きるのは
- アウトプットは顧客・顧客の求めるものへの理解なく出せるから
- 戦略を「計画」として考えてしまうから
主なアンチパターン
戦略
- 優れた戦略とは、意思決定を助けるフレームワークのこと
- (詳細な)計画ではない
- 単なる機能の列挙ではない
- 「現在のコンテキストとの整合性を保ちながら、現在の能力の制約のもとで、望ましいアウトカムを達成するための行動を可能にする、実行可能な意思決定のフレームワーク」(The Art of Action)
- 組織全体で語られるストーリーを相互に結びつけ、特定の時間枠における目的とアウトカムを説明するもの
- 周りにストーリーを伝えて、足並みを揃える必要がある
- 足並みを揃える=組織(チーム)のサイズに適切なレベルの目標と、自律的に行動するために活動範囲を規定する(=狭める)こと
- マネジメントで言うところの「上意下達/翻訳」に該当
戦略の4つの粒度とその展開
★…誰が主導すべきか
ビジョン(企業単位)★CEO
5~10年でどうなりたいか、顧客にとっての価値、マーケットでのポジション、ビジネスがどうなっているか
戦略的意図(企業単位)★CEO, CxO
- ≒ビジネス目標
- ビジョンを実現する上で、立ちはだかっているビジネス上の課題は何か
- 問いかけ「現在の状況を踏まえて、ビジョンを実現するために自分たちができる一番重要なことは何か?」
- 価値検討フレームワークを活用して、 1個に絞る
- 多すぎると「薄く塗ったピーナッツバター」=全部が手薄になる
例:Netflixは「ストリーミングをリードする」が戦略的意図だった
※ コンテンツを増やしたり、専用デバイスを作ったりしたのも、全てこの戦略的意図から派生したもの
プロダクトビジョン
- 戦略的意図を達成するための価値提案
- つまり、ユーザーに何を提供するのか
- 戦略的意図とプロダクトイニシアティブをつなげる存在
- プロダクトイニシアティブを考えるにあたって立ち返る場所として定義しておけるとよさそう
- Amazonはプレスリリースを実際に書いて、これを簡潔な文章にまとめるというのをやっている
プロダクトイニシアティブ(プロダクト単位)★PdM
- プロダクトの観点で課題に取り組むには、どんな問題を扱えばよいかの指針
- ≒ビジネスの目標を達成するために、ユーザーや顧客のどんな問題を解決するべきか
オプション(プロダクト単位)★PdM, Des, Eng
- 問題を解決して目標を達成する別の方法はないか
- 「コンテンツの拡充により新規ユーザーの獲得・既存ユーザーのリテンションを向上する」がプロダクトイニシアティブのとき、それに対して最適な打ち手は何かを探索=検証する
- 供給者から自発的にコンテンツが増える働きかけをするのか、仕組みを作るのか
- ユーザーからのFBが返りやすい仕組みを作るのか、FBまでのリードタイムを短くするのか
- 新しい供給者を増やす働きかけをするのか
プロダクトのカタ
以下の1~4を、具体度を上げながらぐるぐる回してフェーズを進めていくイメージ
- PdMはまず、企業のビジョン・戦略的意図を理解(または一緒に作るなど)して、プロダクトイニシアティブを立てるのを目標とする(1~3)
- 1つのイニシアティブにつき複数のオプションが存在する場合は、それぞれが生むアウトカムがイニシアティブの達成にどれだけ近づいているかを測れるようにする必要がある
- つまり、成功の指標を更に短い時間軸の中で計測できるものに分割する必要がある
フェーズと進め方
フェーズごとに以下の質問を自らに投げかけて、ぐるぐる回す
- 目標は何か?
- 目標を踏まえて、自分たちは今どこにいるのか?
- 目標に到達する上で立ちはだかる最大の問題や障害は何か?→どうやってその問題を解決するか?
- 何が怒ると予想されるか?(=仮説)
- 実際には何が起こったか、そこから何を学んだか?
方向性の探索
- アウトカムが生まれること=ビジネス目標が達成されることなので、どちらともの健全性を測るための指標を定義する必要がある
- AARRRとかHEARTとか
問題の探索
- オプションとプロダクトイニシアティブを行ったり来たりして、解くべき問題を定める
- ここまでがダブルダイヤモンドの左側
ソリューションの探索
- 「問題」の解決策の検証
- オプションが最適であることを、最短で導き出す
ソリューションの最適化
- 最適なオプションを磨き込み、機能化する
- ここで「作るべき機能とそのスコープ」が定まり、
- 届けた価値をユーザーが享受し、
- プロダクトイニシアティブの達成に一歩近づく
phperkaigiで完成度の低いLTをしてきたよ #phperkaigi
今回もうっかりCFPの締め切りを逃してしまったので*1、LTソンには顔を出そうかなと思っていたところ、トラックCでサイボウズさんの「完成度低いの歓迎LT大会」の公募版が開催されるとのことで、面白全部で飛び入りして喋ってきました。
真の完成度低い LT 会をアンカンファレンスでやる勢い #phperkaigi #cybozutech pic.twitter.com/5vsrBPHl1S
— 旭川から小平市Co-KoNPILeに参加する地方ITコミュニティ盛り上げ大臣は一緒に働く地方民探し中 (@tomio2480) 2023年3月24日
個人的にも「発表のハードルを下げる」のってめちゃくちゃ大事だと思っていて、私たちも「小話会」=「ネタがあってもなくてもトピックをひねり出して持ち寄る会」を週1でやっています。
登壇経験のない・少ないメンバーも多いので、自分が率先して(ノー準備で)臨むことで、会社の外への「最初の一歩」のハードルを下げられたらいいな、みたいなことを考えていました。
- Cake.jp(サービス)の宣伝
- #EMゆるミートアップやってます
- ところでsupabaseはいいぞ
の3点をおしながきに、ブラウザタブを切り替えながら雑に話しました。
完成度低いLTを募集したらYAPCのベストトークの人が来てしまった。完成度高い。 #phperkaigi #c
— すぎやま@MASH弦楽団 (@oogFranz) 2023年3月24日
またトークは、うずらさんものが個人的ベストでした*2。
「保守性の高いコードを書くこと」って間違いなく必要なスキルなんですが、「ただ書くこと」から認知のアップデートを4-5回繰り返さないとたどり着けない境地だと感じていて、そこに至るまでは(多少過激だし過剰ではあれど)「配列を捨てろ」くらいのことを言ってしまうのも手だよな〜と感じながら聴いていました。
(なお当社のコードベースにも同じような課題感があり、それを言語レベルで統制してくれることを求めてサーバーサイドKotlinへの移管という選択肢を取ったという経緯があります)
fortee.jp
リアル懇親会を開催いただけたのもよかったです。スタッフの皆さま、感染症対策など大変だったかと思います、ありがとうございます。こうしてまたみんなでワイワイできる日が来たことが大変うれしいですね。
初めましての方とも、他言語のコミュニティでお見かけしたお久しぶりな方ともたくさんお話しできてよい時間となりました。
そーだいさんとは次回広島で再度刃を交えたいと思います*3。
また来年!
YAPC::Kyoto 2023でベストトーク賞をいただきました #yapcjapan
なんと4年ぶりのYAPC!超楽しかったです!!!!!
あまり多くトークを観られなかった(後日動画で追っかけます!)のですが、渡部さんの障害対応・訓練のお話は明日から早速使えるネタをたくさんいただけて大変勉強になりました。またCloudflareなどまだ自分がプロダクションで採用したことがない技術の話がたくさん聴けたのも有り難かったです。
すでにSlackやissueに対応ログを残すようにしているので、ポストモーテムにくっつけてPlaybook化するところまではすぐにできそう。やります💪 #yacpjapan #yapc_do
— あらたま (@ar_tama) 2023年3月19日
話したこと
私も採択いただき、かつての自分の葛藤を下敷きに、職業エンジニアのキャリアの軸について考察する…といった構成でお話ししてきました。
なおトークではこの資料の5倍くらいのスピーカーノートを元に喋っていましたw 動画が上がったらそちらもぜひご笑覧ください。
実はこのテーマで応募すること自体も、それこそ「技術ネタでもないのに…」などと最後まで逡巡していたんですが、そういった葛藤も、技術的な挑戦についても、全部ひっくるめてお話しすることで、何かしら持って帰っていただけるものがあるんじゃないか、と腹をくくってエイヤしたという流れがありました。
そーだいさんとniboshiさんの裏番組で震えてる たとえ0人でも…おれは…やるぜ!
— あらたま (@ar_tama) 2023年3月12日
という覚悟で臨んでたんですが、本当にたくさんの方に来ていただけて感無量でした。
エンジニアとしてのキャリア形成に悩む若手〜中堅の方にいくばくかヒントのお裾分けができたようで*1、エイヤしてよかったですね。
と思っていたら、クロージングでまさかの展開に
ベストトーク賞頂きました!!ありがとうございます😭🙏 #yapcjapan pic.twitter.com/BgerEZmaYq
— あらたま (@ar_tama) 2023年3月19日
全く予期していなかったのでめちゃくちゃ動転してしまったw ありがとうございます、win開発やっていきます*2。
自分のキャリアは常にPerlコミュニティと共にあった*3ので、折々で助けてくださった皆さんにお礼を伝えられたこと、また新しい風を吹かせてくれるであろう皆さんに少なからずバトンをお渡しできたかもしれないことを大変嬉しく思っています。
会場でもスピーカーディナーでも、ご挨拶したかったのに叶わなかった方がたくさんおりまして…!次回!広島で絶対会いましょうね!!!絶対だよ!!!
さいごに
マイクのカバーを掛け替えたり、パネル置いたりアルコールで拭いたりと、スピーカーが安心して喋る・みんなが安心して聴くための細やかなオペレーションが徹底されていて、とても有り難かったし身の引き締まる思いでした。スタッフの皆さまいつもありがとうございます #yapcjapan
— あらたま (@ar_tama) 2023年3月19日
最高の会でした!久々だし初の試みは多いしでマジで本当に大変であろうことには想像に難くないんですが…、延期!と言い張り続けてくれたパピさん・あずまさんを筆頭に、コアスタッフ・ボランティアの皆さんのおかげで実現したお祭りだと思います。改めてお礼を言わせてください。
追記
私と一緒に開発組織を作ってくれる仲間を大募集しています!めちゃんこ人が足りなくて困っています😇ぜひお気軽にお声掛けください!!
YAPC::Kyoto 2023で話します! そしてチケットを今すぐに購入しましょう!!
YAPC::Kyoto 2023の採択トークが決まったようですね。面白そうなトークが沢山あってすごいですね。
私のトークも採択されました。ありがてぇ!
こういう話をします。
YAPC::Asiaで憧れたハッカー集団の末席に、新卒という形で頭から飛び込んだのが約10年前。YAPCを始めとした様々な技術コミュニティにお世話になり、時にはスタッフや運営・スピーカーとして貢献しながら、少しずつ歩を進めてきました。
キャリアとしては事業会社のエンジニア・リードエンジニアを経て、現在はCTOとしてエンジニアリングだけでない様々なロールを担っていますが、これまでのキャリア選択の傍らには常に「ハッカー」への憧れがありました。
いつしかそれが自分への呪縛となっていたこと、そして様々な葛藤と試行錯誤を経て、ようやくそれから解き放たれつつあることに、最近気づきつつあります。
エンジニアとして、時にはロールを変えながらサバイブする皆さんに。またかつての悩める自分に、ちょっとしたヒントをおすそ分けできるようなトークにしたいと考えています。
ええと、はい、某年のキーノートへのアンサーソング的なヤツです。
テック方面はお歴々にお任せして、キャリア的な話に振ってみました。
このトークの応募に至るまでにも様々な葛藤があったのですが…w、採択いただけたということで気を引き締めて、皆さんにちょっとでもなにかを持って帰っていただけるようなトークにできたらと思います。ガンバリマス
チケットを買ってくれ
それはそうとして、そんなYAPC::Kyoto 2023ですがチケット販売が今月1月の31日までとなっています。
今月中にチケットを買わないと参加ができないのです! 今、まさにこの瞬間、すぐに買いましょう!!!!!
豪華ノベルティがついてくる個人スポンサーチケットは残席わずかとのこと!!
買いましたか?買いましたね。それでは会場でお会いいたしましょう!
オマージュ元
uzulla.hateblo.jp
tailwind触ってみたメモ
個人のプロジェクトで採用できそうな機運があったので、ためしにNext.jsのサンプルページをtailwindに書き換えるのをやってみた。
絶対値指定を避けているので若干差分は出たけど、それなりの再現が叶えられたのと、書き味も悪くなくていい感じ。最低限のデザインシステム(ルールもしくはレール)に乗っかれている感覚がある。
感想
before
after
diff
あえてコンポーネント分割などはしていないので、特にcardのところが冗長になっている
AWS cronなタスクスケジュールをまとめてビジュアライズできるツールを作った
AWSのcron式でcronvできるやつ作った。便利っぽい🥳 pic.twitter.com/Sqid4kAxS5
— あらたま (@ar_tama) 2022年6月18日
経緯とか
もともとcronvというツールがあって(めちゃくちゃ便利)、これはcrontabをビジュアライズしてくれる君なんですが、バッチサーバをEC2からECS Task Schedulerにお引越しさせるにあたって当然使えなくなり、何時に何が動くんだっけが一覧できてほしいよな〜EventBridgeのコンソールじゃようわからんしな〜ということで作ってみました。
ついでにベース時刻に+9:00なものを食わせることでJSTにも対応しています。心の目で+9時間しなくてよくなりますね。
しくみ
aws events list-rules
で出てくるjsonをパース- cron式をaws-cron-parserでパース
- Google ChartsのTimelineを組み立て
最初はruleの取得もスクリプトでやろうかなと思ったんですが、aws cliでプレフィクス絞り込みとかしたいよね?と思い外からjsonファイルを入力してもらうようにしました。
こういったちょっとしたツールはGoで書きたいなと思いつつ、cronパーサがnpmにあったので早々に宗旨変えしました。TypeScript筋が落ちているので普通にコードレビューが欲しい。
活用例
SchedulerのRulesはrepo管理しているので、GitHub Actions経由でaws-cronvを呼び出すようにしてみました。かなり強力です。
既知の課題
cronvオプションのサポート
一番困るのが期間指定かも。デフォルトで1日のみサポートしているので、例えば毎月15日のスケジュールが(ベース日時を動かさないと)記録されません。
html以外のアウトプットフォーマット
Google ChartsのTimeline型は画像吐き出しに対応していないようなので、サクッと実装するのが難しくて諦めました。あるとGitHub上で確認が完結するからいいよねと思っています。パッチお待ちしてます!
cron式以外のScheduleExpressionのサポート
cron式以外のScheduleExpressionが来ると落ちます。間にjqとか挟んで弾いてください😇