$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
「勉強になった」で終わらせない、ストロングスタイルの勉強会
Search
okuzawats
November 29, 2023
Programming
0
410
「勉強になった」で終わらせない、ストロングスタイルの勉強会
社内勉強会のノウハウ、公開しちゃいます!LT会
https://yumenosora.connpass.com/event/300021/
での発表資料です。
okuzawats
November 29, 2023
Tweet
Share
More Decks by okuzawats
See All by okuzawats
Androidアプリのモジュール分割における:x:commonを考える
okuzawats
1
420
「Chatwork」Android版アプリを 支える単体テストの現在
okuzawats
0
380
カンファレンス参加をいかに正当化するか
okuzawats
0
310
10年モノのAndroidアプリのコード品質を改善していく、3つの取り組み
okuzawats
0
1.3k
Androidアプリ開発におけるSonarCloudの活用
okuzawats
0
1.2k
何故、UseCaseは1メソッドなのか
okuzawats
3
2.1k
例外を投げるな、値を返せ
okuzawats
9
8.1k
GitHub ActionsでAndroidアプリのテストを回しまくってたら全プロジェクトのCI/CDが完全停止する寸前だった件
okuzawats
0
640
Kotlinのifを愛でる
okuzawats
0
860
Other Decks in Programming
See All in Programming
CSC305 Lecture 17
javiergs
PRO
0
290
TUIライブラリつくってみた / i-just-make-TUI-library
kazto
1
320
関数の挙動書き換える
takatofukui
4
770
TypeScript 5.9 で使えるようになった import defer でパフォーマンス最適化を実現する
bicstone
1
1.1k
Level up your Gemini CLI - D&D Style!
palladius
1
180
tsgolintはいかにしてtypescript-goの非公開APIを呼び出しているのか
syumai
5
1.8k
大体よく分かるscala.collection.immutable.HashMap ~ Compressed Hash-Array Mapped Prefix-tree (CHAMP) ~
matsu_chara
1
210
モダンJSフレームワークのビルドプロセス 〜なぜReactは503行、Svelteは12行なのか〜
fuuki12
0
200
目的で駆動する、AI時代のアーキテクチャ設計 / purpose-driven-architecture
minodriven
11
4k
AI時代もSEOを頑張っている話
shirahama_x
0
250
TypeScriptで設計する 堅牢さとUXを両立した非同期ワークフローの実現
moeka__c
6
2.9k
dnx で実行できるコマンド、作ってみました
tomohisa
0
140
Featured
See All Featured
Done Done
chrislema
186
16k
The Language of Interfaces
destraynor
162
25k
We Have a Design System, Now What?
morganepeng
54
7.9k
Agile that works and the tools we love
rasmusluckow
331
21k
GraphQLの誤解/rethinking-graphql
sonatard
73
11k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Principles of Awesome APIs and How to Build Them.
keavy
127
17k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Designing for Performance
lara
610
69k
Balancing Empowerment & Direction
lara
5
790
A Modern Web Designer's Workflow
chriscoyier
697
190k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
359
30k
Transcript
「勉強になった」で終わらせない、ストロングスタイルの勉強会 社内勉強会のノウハウ、公開しちゃいます!LT会(2023/11/29) 奥澤 俊樹@Chatwork株式会社
自己紹介 • 奥澤 俊樹(@okuzawats) • Chatwork株式会社 ◦ 2022/09〜 • Androidアプリエンジニア
◦ モバイルアプリケーションアーキテクト ◦ Chatwork Android版アプリのアーキテクチャの改善と技術負債解消に取り組んでいます。
社内勉強会を開催した背景
何の勉強会を開催したか? 概要 「コードの読みやすさ」について学ぶ勉強会 目的 Chatwork Android版アプリは、10年を超える歴史のあるコードベースに、様々なバックグラウンドのメンバーがコミットしている中で、「コードの読みやすさ」について共通認識を育むことが今後の開発生産性の維持・向上につながると考えたため 対象 モバイルアプリ開発(特にAndroid)に関わるエンジニア(任意参加)
勉強会のきっかけ
勉強会のきっかけ
勉強会のきっかけ Chatwork Androidのリポジトリには生粋のAndroidアプリエンジニアもコミットするし、それ以外の多種多様なバックグラウンドを持ったエンジニアもコミットする。 各チーム・各人が好きなようにコードを書いてしまうと、特に他チームが書いたコードを読むための時間が増えていき、開発速度が低下していく懸念がある。 そのため、「コードの読みやすさ」についての認識を揃えた上で、コードベースの読みやすさを改善していきたい。
ここまでのまとめ コードの読みやすさに関する課題を解決し、開発速度を維持・向上していくため、「コードの読みやすさ」に関する勉強会を開催した。
社内勉強会で何をやったのか
勉強会の内容 「読みやすいコードのガイドライン」の著者・石川宗寿さんをお招きして、コードの読みやすさについての勉強会を開催しました - Chatwork Creator's Note https://creators-note.chatwork.com/entry/code-readability
勉強会の内容 石川宗寿, (2022), “読みやすいコードのガイドライン 持続的なソフトウェア開発のために”, 技術評論社
社内勉強会のスケジュール
勉強会のスケジュール - 1週間に1回 - 全4回 - 1回あたり2時間 - なるべく多くのメンバーが参加できるように配慮した結果、17:00〜19:00に開催した。 -
合計8時間
勉強会のスケジュール 前日まで 特に準備は必要なし。勉強会の中で考える時間を設けたいため。 当日 Miroを使ってリアルタイムで感想・質問を共有。 翌日 学んだこと、実践したいこと(アクション)を各自書き出して、共有。
None
None
None
勉強会開催後のふりかえり 終了後 参加者を集めて、ふりかえり。1回目〜4回目の勉強会開催後に書いた「学んだこと、実践したいこと」を思い出しながら、各自が実践していきたいことを共有する。
None
None
None
ふりかえり 1回1回の勉強会、勉強会全体でふりかえり、理解の促進と記憶の定着を図っている。 同様に、アクションの抽出も1回1回の勉強会と勉強会全体でそれぞれ行い、実践につながるようにしている。 「勉強になった」で終わらせず、組織の目標達成に繋がって、はじめてゴール。
今後の展望 実践から得られる知見を持ち寄ったり、新メンバー加入を経たりし ながら、同じテーマで勉強会自体もイテレーションしていけるとよ り実践的になると思ってます(まだ思ってるだけ)。
勉強会をやった結果
勉強会をやった結果 - コードレビューやペアプロの時に、「読みやすさ」の観点からのフィードバックが増えた(ような気がする)。自分がコードレビューする時も「読みやすさ」の観点 からレビューコメントを入れやすくなった。 - スタイルガイドの整備が重要という認識が得られ、「スタイルガイドの整備」というアクションを抽出した(WIP)。 - 大きなPull Requestがレビュー精度に与える影響を認識し、PRのサイズに気を配る用になった。Big PRには警告を出すようにした。
まとめ
まとめ - Chatwork Android版アプリに関わるチーム・メンバーが増えていく中で、開発生産性を維持・向上していくために「コードの読みやすさ」が課題になると感じ、勉 強会を開催した。 - 1回ごとに学んだことをふりかえり、記憶の定着と、アクションの抽出を図った。 - 全4回の勉強会終了後に勉強会全体をふりかえり、さらなる記憶の定着と、個人・チームのアクションの抽出を図った。 -
「勉強になった」で終わらせず、組織の目標達成につなげるような勉強会の設計を意識した。 - 勉強会もイテレーションしていきたい(今後の展望)。 - We Are Hiring! カジュアル面談で待ってます!
参考文献 - 「読みやすいコードのガイドライン」の著者・石川宗寿さんをお招きして、コードの読みやすさについての勉強会を開催しました - Chatwork Creator's Note, https://creators-note.chatwork.com/entry/code-readability (最終アクセス日:2023/11/07) -
石川宗寿, (2022), “読みやすいコードのガイドライン 持続的なソフトウェア開発のために”, 技術評論社