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
SET活動のすすめ.pdf
Search
urahiroshi
September 18, 2018
1.6k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
SET活動のすすめ.pdf
urahiroshi
September 18, 2018
More Decks by urahiroshi
See All by urahiroshi
組織拡大でカルチャー崩壊を防ぐためにできること
urahiroshi
0
590
プロダクトのスケールによって顕在化しうるリスクをどう管理するか?
urahiroshi
9
6.8k
Mercari_Frontend_CircleCI.pdf
urahiroshi
2
2.7k
Node Security Platform, nsp, npm audit @roppongi.js#3
urahiroshi
1
1k
Featured
See All Featured
Side Projects
sachag
455
43k
The Pragmatic Product Professional
lauravandoore
37
7.3k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
380
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
370
Building the Perfect Custom Keyboard
takai
2
800
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.4k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2.1k
For a Future-Friendly Web
brad_frost
183
10k
WCS-LA-2024
lcolladotor
0
660
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
420
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.3k
Paper Plane (Part 1)
katiecoart
PRO
0
9.3k
Transcript
SET活動のすすめ Mercari Frontend SET @urahiroshi (Hiroshi Urayama)
このスライドの趣旨 - MercariのFrontendチームにはSET(Software Engineer in Test)というロールのエ ンジニアがいる - SETは、チームの生産性向上・品質向上のための取り組みを行なっている(≒カイ ゼン活動)
- SETの活動を紹介し、このような活動を取り入れる仕組みを作ることを提案する
Mercari Frontend SETがやっていること - (今日は話しません)開発環境の構築、本番環境へのフィードバック - 開発環境の運用・トラブルシューティング - ビルド・デプロイ処理の修正 -
フロントエンドチームの生産性向上・品質向上への取り組み - CI・開発プロセスの改善 - 外部ツールの導入・検証 - テスト・リファクタリング
CI・開発プロセスの改善 - CircleCI - CIのセットアップ - Lint, テスト, ビルド処理(gulp, webpack,
tsc, etc...)の確認など - 自動化されていないテストを許さない - ビルド処理がエラーにならないことを確認する - CIの高速化 - キャッシュを使う - ジョブの並列化 - 最適なDockerイメージの選択(gitなどのインストール時間を省く ) - CIのジョブ追加 - pushごとにstorybookをデプロイする - (for application) developブランチにマージされたら開発環境にデプロイする - (for package) masterブランチにマージされたら npm private registryにpublishする - (ブログも書いています : https://tech.mercari.com/entry/2018/08/20/104435)
CI・開発プロセスの改善 - GitHubの設定 - Protected branch設定 - 開発プロセスに適した設定を行う - CI通らないとマージ不可、特定のメンバーしかマージ不可、レビュー必須にするなど
- Issue, PullRequestテンプレートの作成 - Slack連携 - Issue, Pull Requestの通知
CI・開発プロセスの改善 - CIで使うnpm package作成 - Slack投稿するツール - storybookのデプロイ用にファイルをアップロードするツール - npm
publishしてgit tagつけるツール
外部ツールの導入・検証 - Sentry - エラートラッキングツール - エンドユーザーのブラウザ上で発生したエラー情報の収集、管理 - Codecov -
CIでのユニットテストカバレッジを収集・可視化するツール - 対象のディレクトリのカバレッジが下がったら Pull RequestをNGとするなど - Renovate - npm packageの自動更新ツール。 package更新用のPull Requestを作成してくれる - 運用ルール(どういう時にPull Requestをマージするかなど )も定めて開発に組み込む
テスト・リファクタリング - ユニットテストのセットアップ - テストがないプロジェクトでも、空のテストを作って CIで動かす - ユニットテストカバレッジの目標設定 (Codecov) -
自動E2Eテストの検討 - ユニットテストでカバーしきれない箇所、手動テストで毎回確認するような箇所の E2Eテスト化を検 討 - ユニットテストに比べて環境構築や実装コストも高いので注意 - リファクタリング - コードのリファクタリング - 不要コードの削除 - Node.jsやパッケージのバージョンアップ - どう検証するかを含めて考える
SET活動をするには - 「機能に対する実装やバグ修正を行わない」という制約をつけるだけ - SETというロールがなくても、個人やチームで意識的にこのような日を作っても良い のでは - 例) - (チームで)
週ごとにSET担当をローテーションする - (チームで) 月に1回は特定の日は機能に対する実装やバグ修正を行わない日にする - (個人で) 金曜日はSET活動に時間を費やす
SET活動のメリット - エンジニア自身のメリット - 視点を変えることで、これまでとは異なるアプローチの解決策を考えるようになる - 例) バグが出た時に、バグを修正することだけでなく、バグを事前に検出する方法について考 えるなど -
新しいスキルセットが身につく - スケジュール駆動開発で傷ついた心を浄化する - 組織的なメリット - 開発・運用プロセスの改善は、組織の強みになる - 開発プロセスの問題をすくい上げられる - 問題に気づいた人=対応する人ではない - 問題に気づいた時に、その対処について相談できるメンバーがいる => やるしかない!!!
宣伝 2018 10/04 (木) Mercari Tech Conf 2018やります! https://techconf.mercari.com/
Thank you!