Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
ときめく開発体験を~デッドコードをなくして ときめきをつくる~ / ginzarails_vol33_presentation
リンクアンドモチベーション
May 21, 2021
Technology
0
89
ときめく開発体験を~デッドコードをなくして ときめきをつくる~ / ginzarails_vol33_presentation
銀座Rails#33 登壇資料
#ginzarails
リンクアンドモチベーション
May 21, 2021
Tweet
Share
More Decks by リンクアンドモチベーション
See All by リンクアンドモチベーション
Biz・経営・Dev+PMがOne Teamであり続けるために効果的だったこと / CTO-PM_vol2_presentation_LMI_220609
lmi
2
460
リンクアンドモチベーション 営業コンサルタント向け紹介資料 / Introduction to Link and Motivation for Sales and Consultants
lmi
0
1.7k
プロダクト成長を加速させる共通機能のサービスの分離 / LM-Litalico_architecture_presentation
lmi
0
290
本当に使われるヘルススコアを作るための3つのポイント / cs_ops_labo_vol2_presentation
lmi
0
180
『Successful Digital Transformation Study 2022』 / Successful Digital Transformation Study 2022 presentation
lmi
0
220
『進化するエンジニアキャリアパスの在り方』 / engineer_career_presentation_miyazaki
lmi
0
230
3分でわかるリンクアンドモチベーション(エンジニア向け) / 3min Link and Motivation for Software Engineers
lmi
0
67
3分でわかるリンクアンドモチベーション(営業コンサルタント向け) / 3min Link and Motivation for Sales and Consultants
lmi
0
130
リンクアンドモチベーション ソフトウェアエンジニア向け紹介資料 / Introduction to Link and Motivation for Software Engineers
lmi
9
86k
Other Decks in Technology
See All in Technology
2022年度新卒技術研修「エンジニアマインド」講義
excitejp
PRO
0
330
2022年度新卒技術研修「良いコードの書き方」講義
excitejp
PRO
0
230
ひとりでも安定して 組織を変える活動を続けていくための ストレスマネジメント
pastelinc
0
750
JFrog 最新情報 - JFrog DevOps プラットフォームの今までとこれから / jfrog-update-for-devopskaigi-2022
tsuyo
0
140
WACATE 2022 夏 ワークショップの目的
imtnd
0
110
ソフトウェアライセンス 2022 / Software License 2022
cybozuinsideout
PRO
1
830
組織の崩壊と再生、その中で何を考え、感じたのか。 そして本当に必要だったもの
kosako
0
950
1人目QAエンジニアよもやま話 / QA Test Talk Vol.1
nametake
4
220
出張スクラムマスターとしての FEARLESS CHANGE な生き方
naitosatoshi
1
1.2k
データをモデリングしていたら、組織をモデリングし始めた話 / engineers-in-carta-vol3-data-engineer
pei0804
4
3.2k
2022年度新卒技術研修「DNS」講義
excitejp
PRO
0
330
RDRA + JavaによるレジャーSaaSプロダクトの要件定義と実装のシームレスな接続
jjebejj
PRO
3
490
Featured
See All Featured
Practical Orchestrator
shlominoach
178
8.6k
In The Pink: A Labor of Love
frogandcode
131
21k
Code Reviewing Like a Champion
maltzj
506
37k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
4
500
Facilitating Awesome Meetings
lara
29
4k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
39
13k
Teambox: Starting and Learning
jrom
123
7.7k
How to Ace a Technical Interview
jacobian
265
21k
How New CSS Is Changing Everything About Graphic Design on the Web
jensimmons
213
11k
5 minutes of I Can Smell Your CMS
philhawksworth
196
18k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
224
49k
The World Runs on Bad Software
bkeepers
PRO
57
5.3k
Transcript
ときめく開発体験を デッドコードをなくして ときめきをつくる 伊藤遼
自己紹介 伊藤 遼 • twitter, qiita: @haruka_odenkun (全然投稿していないですが...) • (株)
リンクアンドモチベーションに新卒入社 3年目 • やってきたこと ◦ エンタープライズ向け性能改善 ◦ (現在) CREチームの立ち上げ
今日話すこと 1Qで2万行ものデッドコードを削除した話
今日話すこと 1Qで2万行ものデッドコードを削除した話 デッドコード削除が開発組織作りに繋がった話
今日話すこと • プロジェクトの背景 • 苦労したこと • 何をしたか • 結果 1Qで2万行ものデッドコードを削除した話
デッドコード削除が開発組織作りに繋がった話
背景とPjtの発足 • 弊社サービスのニーズが高まり開発効率を加速したい ◦ 生産性 / 安定性 が下がっている ◦ 技術負債としてデッドコードが増えてきた
生産性の向上に対して ROIが高いのがデッドコード削除だった
なぜデッドコードが放置されるのか 1. どう進めていったらいいかわからない 2. 作業時間をまとめて確保できない 3. そもそもそういう文化がない
じゃあ何をしたか? 1. どう進めていったらいいかわからない → 作業フローの整備: ユーザー側から削除 2. 作業時間をまとめて確保できない → 仕組み作り:
定期タスクと合体 3. そもそもそういう文化がない → 文化作り: 「ときめき」の布教
参照先の参照先まで当たるのは骨が折れる ←↑ 実はデッドコードかも 1. 作業フローの整備: ユーザー側から削除 例: こんなデッドコードがありました
1. ディレクトリ構成やgrepで参照されないフロントコードの削除 2. リクエストログやapmツールを使用して不要なエンドポイントを削除 3. routes.rbとコントローラーの比較から不要なアクションの削除 4. model (service) 層の不要なメソッドにlogを仕込んで定期監視
/ 削除 5. 不要なテーブルの削除 フロントコ ード エンド ポイント コントローラー (サービス) モデル テーブル app/view/ etc. config/routes.rb app/controller/* (app/service/*) app/model/* (db/*) 1. 作業フローの整備: ユーザー側から削除
フロントコ ード エンド ポイント コントローラー (サービス) モデル テーブル app/view/ etc.
config/routes.rb app/controller/* (app/service/*) app/model/* (db/*) 1. 作業フローの整備: ユーザー側から削除 + 一時利用rake task、patchもノイズとなるため使用時期をもとに削除 + 上記コードに関連するテストコードも削除
フロントコ ード エンド ポイント コントローラー (サービス) モデル テーブル app/view/ etc.
config/routes.rb app/controller/* (app/service/*) app/model/* (db/*) 1. 作業フローの整備: ユーザー側から削除 参照順に棚卸しすることで効率よく削除できる
• 1h / week の固定時間にPjtメンバーで雑談しながら作業 • 月次タスクに仕込んだログのチェックを追加 • リリース前チェックは月次のシナリオテストに混ぜ込む 2.
仕組み作り:定期タスクにする/合体させる 「安全に」「継続的に」削除を進められるようにする
3. 文化作り: 「ときめき」の布教 引用: Netflix KonMari ~人生がときめく片づけの魔法~ コードに対しても「ときめくか?」を布教
• slackのemojiの追加 • デッドコードを見つけて起票したらbotから感謝 • リリースしたらみんなで褒め称える ときめかないなら捨てるという文化が醸成された 3. 文化作り: 「ときめき」の布教
結果: 1Qで約2万行の削除!! • ビッグバンリリース + 小さいリリース
もう一つの結果: 「ときめき」の広がり デッドコードに対してだけでなく... • 大規模機能開発時にも 「これもう消せる?」というやりとりが発生! • コードだけでなく ドキュメントやチケットの整理も進行中! or
まとめ: 「ときめき」は技術的負債を減らす • 技術的負債返却の第一歩 ◦ デッドコードの削除は手をつけやすくコスパもいい • 効果はコード以外にも波及 ◦ 「ときめき」の浸透で開発者の主体性を後押し