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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
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
さいきんの光ファイバーの話
hmatsu47
PRO
0
28
低いほうのレイヤを見てみる話
hmatsu47
PRO
0
8
IPv6 VPC の実装パターンをいくつか
hmatsu47
PRO
0
25
光ファイバーと IPv6 絡みの話
hmatsu47
PRO
0
36
AWS で試して学ぶ IPv6
hmatsu47
PRO
0
31
今年の MySQL/HeatWave ネタ登壇振り返り
hmatsu47
PRO
0
31
今年の DB ネタ登壇振り返り
hmatsu47
PRO
0
23
RDS/Aurora アップデート 2025
hmatsu47
PRO
0
78
YAPC::Fukuoka 2025 現地ハイブリッド参加の旅
hmatsu47
PRO
0
19
Other Decks in Technology
See All in Technology
「通るまでRe-run」から卒業!落ちないテストを書く勘所
asumikam
2
370
進化するBits AI SREと私と組織
nulabinc
PRO
1
260
(Test) ai-meetup slide creation
oikon48
3
470
「お金で解決」が全てではない!大規模WebアプリのCI高速化 #phperkaigi
stefafafan
4
1.7k
ABEMAのバグバウンティの取り組み
kurochan
1
140
Zero Data Loss Autonomous Recovery Service サービス概要
oracle4engineer
PRO
2
13k
【社内勉強会】新年度からコーディングエージェントを使いこなす - 構造と制約で引き出すClaude Codeの実践知
nwiizo
1
260
Keycloak を使った SSO で CockroachDB にログインする / CockroachDB SSO with Keycloak
kota2and3kan
0
170
Microsoft “Adaptive Cloud” Update 2026年3月版
sdosamut
0
100
品質を経営にどう語るか #jassttokyo / Communicating the Strategic Value of Quality to Executive Leadership
kyonmm
PRO
2
760
コンテキスト・ハーネスエンジニアリングの現在
hirosatogamo
PRO
6
590
Everything Claude Code を眺める
oikon48
13
8.3k
Featured
See All Featured
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
2
560
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.1k
RailsConf 2023
tenderlove
30
1.4k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.4k
Thoughts on Productivity
jonyablonski
75
5.1k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
9.9k
Ruling the World: When Life Gets Gamed
codingconduct
0
180
Building an army of robots
kneath
306
46k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.2k
Heart Work Chapter 1 - Part 1
lfama
PRO
5
35k
Are puppies a ranking factor?
jonoalderson
1
3.1k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
140
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