Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
SET活動のすすめ.pdf
urahiroshi
September 18, 2018
1
1.1k
SET活動のすすめ.pdf
urahiroshi
September 18, 2018
Tweet
Share
More Decks by urahiroshi
See All by urahiroshi
Mercari_Frontend_CircleCI.pdf
urahiroshi
2
2.4k
Node Security Platform, nsp, npm audit @roppongi.js#3
urahiroshi
1
760
Featured
See All Featured
Principles of Awesome APIs and How to Build Them.
keavy
113
15k
What the flash - Photography Introduction
edds
61
9.8k
Designing for Performance
lara
596
63k
Become a Pro
speakerdeck
PRO
3
770
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
38
12k
Support Driven Design
roundedbygravity
86
8.4k
Designing for humans not robots
tammielis
241
23k
Clear Off the Table
cherdarchuk
79
280k
Thoughts on Productivity
jonyablonski
43
2.2k
A better future with KSS
kneath
225
15k
The Pragmatic Product Professional
lauravandoore
19
2.9k
Docker and Python
trallard
27
1.5k
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!