Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
社内でスピードアップコンテスト開催に挑戦した話
Search
hmatsu47
PRO
April 12, 2022
Technology
0
440
社内でスピードアップコンテスト開催に挑戦した話
吉祥寺.pm29【オンライン】 2022/04/12
hmatsu47
PRO
April 12, 2022
Tweet
Share
More Decks by hmatsu47
See All by hmatsu47
IPv6 VPC の実装パターンをいくつか
hmatsu47
PRO
0
20
光ファイバーと IPv6 絡みの話
hmatsu47
PRO
0
25
AWS で試して学ぶ IPv6
hmatsu47
PRO
0
21
今年の MySQL/HeatWave ネタ登壇振り返り
hmatsu47
PRO
0
21
今年の DB ネタ登壇振り返り
hmatsu47
PRO
0
16
RDS/Aurora アップデート 2025
hmatsu47
PRO
0
30
YAPC::Fukuoka 2025 現地ハイブリッド参加の旅
hmatsu47
PRO
0
13
今年の FESTA で初当日スタッフ+登壇してきました
hmatsu47
PRO
0
22
攻略!Aurora DSQL の OCC(楽観的同時実行制御)
hmatsu47
PRO
0
14
Other Decks in Technology
See All in Technology
Claude Code for NOT Programming
kawaguti
PRO
1
110
AIエージェントを開発しよう!-AgentCore活用の勘所-
yukiogawa
0
190
こんなところでも(地味に)活躍するImage Modeさんを知ってるかい?- Image Mode for OpenShift -
tsukaman
1
170
Cloud Runでコロプラが挑む 生成AI×ゲーム『神魔狩りのツクヨミ』の裏側
colopl
0
150
今日から始めるAmazon Bedrock AgentCore
har1101
4
420
SREが向き合う大規模リアーキテクチャ 〜信頼性とアジリティの両立〜
zepprix
0
480
コスト削減から「セキュリティと利便性」を担うプラットフォームへ
sansantech
PRO
3
1.6k
CDK対応したAWS DevOps Agentを試そう_20260201
masakiokuda
1
430
プロダクト成長を支える開発基盤とスケールに伴う課題
yuu26
4
1.4k
[CV勉強会@関東 World Model 読み会] Orbis: Overcoming Challenges of Long-Horizon Prediction in Driving World Models (Mousakhan+, NeurIPS 2025)
abemii
0
150
猫でもわかるKiro CLI(セキュリティ編)
kentapapa
0
120
量子クラウドサービスの裏側 〜Deep Dive into OQTOPUS〜
oqtopus
0
150
Featured
See All Featured
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
190
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
110
Exploring anti-patterns in Rails
aemeredith
2
250
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
110
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
220
The SEO identity crisis: Don't let AI make you average
varn
0
330
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
How STYLIGHT went responsive
nonsquared
100
6k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
170
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
130
Transcript
社内でスピードアップコンテスト開催に 挑戦した話 吉祥寺.pm29【オンライン】 2022/04/12 まつひさ(hmatsu47)
社内でスピードアップコンテスト開催に 挑戦した話 (但し失敗成分多め) 吉祥寺.pm29【オンライン】 2022/04/12 まつひさ(hmatsu47)
自己紹介 松久裕保(@hmatsu47) • https://qiita.com/hmatsu47 名古屋で Web インフラのお守り係をしています 以前 MySQL 8.0
の薄い本を作って配っていました ◦ Qiita の記事: https://qiita.com/hmatsu47/items/ceb75caf46e3c761095d ◦ GitHub リポジトリの他、印刷版を BOOTH で配布していました ◦ 2021/5 発行の 8.0.24 対応版を最後に更新停止しました https://note.com/hmatsu47/n/n3ad586c31dce 3
吉祥寺.pm トーク参加 2 回目です • 前回は約 1 年前 ◦ わたしのまわりのニュー・ノーマル
3 選 ◦ https://speakerdeck.com/hmatsu47/watasifalsemawarifalseniyufalsemaru3xuan • 某 有名企業のパーカーと T シャツをいただきました! 4
吉祥寺.pm トーク参加 2 回目です • 前回は約 1 年前 ◦ わたしのまわりのニュー・ノーマル
3 選 ◦ https://speakerdeck.com/hmatsu47/watasifalsemawarifalseniyufalsemaru3xuan • 某 有名企業のパーカーと T シャツをいただきました! 5
本日のネタ • 社内でスピードアップコンテストをやってみた • 出題以外のところでいろいろな技術を使ってみた • 開催直前に問題が発生 • 開催にはこぎつけたものの… •
あらためて浮き彫りになった組織の課題 6
きっかけ • インフラチーム→ SRE →正式な SRE チーム発足 2 期目 •
正式メンバーとともに、協力メンバーも増えた • 「性能」はサイト(サービス)信頼性の重要なポイント • 座学の機会はあるが(実務以外で)実践の機会がない 7
きっかけ • インフラチーム→ SRE →正式な SRE チーム発足 2 期目 •
正式メンバーとともに、協力メンバーも増えた • 「性能」はサイト(サービス)信頼性の重要なポイント • 座学の機会はあるが(実務以外で)実践の機会がない • 期初の目標の一つとしてコンテストの開催を入れた ◦ SRE チームリーダーと相談して決定 8
社内事情 • 20 年 over モノの Web サービスを提供 • 初期の
5 年間以外は Java で開発 • 8 年ぐらい前に Web フレームワークの利用をやめた • 社外の ISUCON などには参加しづらい雰囲気 9
社内事情 • 20 年 over モノの Web サービスを提供 • 初期の
5 年間以外は Java で開発 • 8 年ぐらい前に Web フレームワークの利用をやめた • 社外の ISUCON などには参加しづらい雰囲気 • コンテストをやるなら自前開催の必要がありそう 10
準備① 構想 • 前述のとおり「実務以外の実践の機会」を提供する • 対象は SRE とその協力メンバーのうちの希望者 ◦ マネージャ含む
• いきなり長時間は難しいので半日程度の軽いレベルで • 個人戦ではなくチーム戦で ◦ 他メンバーの考え方やスキルを知る機会に 11
準備② 事前周知 • 準備の初期段階で対象メンバーの一部に意思確認 ◦ 競技参加?それとも主催側? ▪ 結果としてマネージャの 1 人が主催側、ほか全員競技参加
• 全体ミーティングで事前の開催予告(複数回) • カスタマサポート部マネージャへの協力依頼 ◦ 一時的に連携が取りづらくなる可能性があるので 12
準備③ 初回の題材選び • 初回は「定番」中心で ◦ 非効率な DB データ取得(N+1、無駄な行・列の取得) ◦ テーブル構造の欠陥
◦ メモリ不足になる処理&ヒープメモリ容量の設定ミス • 個人研究でわざとクソコードを書いて出題のベースに ◦ https://github.com/hmatsu47/kuso-code-samples (最初から公開してた) ◦ 3 種類用意してそのうち 1 つをベースに出題 13
準備④ 出題の調整 • ③の出題ベースの 1 つをもとに内容を調整(Web API) • 実際に自分でコードや設定の修正を試行 ◦
問題点を把握した状態から 1 時間強で修正できた • ベンチマークを(普段書かない)Go で作成 ◦ https://github.com/hmatsu47/kusocode-bench (これも最初から公開) ▪ Go 何もわからない ◦ 初期コードと修正後のコード(複数パターン)で得点を確認 14
準備⑤ 集客と事前説明 • 対象メンバーに参加意思を確認 ◦ 結局、対象者全員が参加表明 • (ルールの範囲で)チーム編成は参加者の選択にお任せ • レギュレーションを(段階的に)事前説明
15
準備⑥ 小道具の作成 • Web API 動作確認用フロントエンドを React で作成 ◦ https://github.com/hmatsu47/kuso-code-samples
◦ 即興で作ったので props の型適用を忘れたまま本番へ • 得点掲示板を(はじめての)Vue 3 で作成 ◦ https://github.com/hmatsu47/kusocode-rank-app ◦ 開始早々バグが発覚したので慌てて修正(が、まだバグが) ▪ 謎の「残り時間 01:89:60」「1 分に 1 回残り時間が 60 秒長くなる」 16
問題が発生 • 開催直前の横槍 ◦ ミーティングでは異論が出なかった方面から • 結果として ◦ 時間を短縮(全体 4
時間→ 2.5 時間に) ◦ マネージャ不参加に 17
当日の結果 • やはり時間が足りず ◦ どのチームも想定到達点には至らず ▪ 「コードとテーブル構造の直し方」の見立てができているチームがなかった ◦ 一応「面白かった」という反応は多かったが… 18
アンケートでは • 一部「チーム戦」「競技形式」が辛かった、という声が ◦ チームメンバーに迷惑を掛けてしまった ◦ うまく立ち回ることができず恥ずかしい • 必ずしも「時間が足りなかったからダメだった」という ことではなかった
◦ もちろん時間も足りなかったけれど 19
コンテスト以前にすることがあった • 参加者のつらみをなくす ◦ 「失敗」を許容する組織風土 ▪ 口では「失敗 OK」とは言ってもそう受け止められない雰囲気があった • まずは「メンバーが自信を持てる」環境づくり
◦ 自己肯定感大事 ◦ 「実践の機会」は一旦違う形で(模索中) • 「苦手だからパス」が許される空気も 20
結論:人類自社にはまだ早かった • 心理的安全性の確保が先 • サイト(サービス)の信頼性もそこから 21
コンテスト 次の開催 いつの日に 22