Upgrade to Pro — share decks privately, control downloads, hide ads and more …

突撃となりのプロジェクト / EC Tech Talk

hrysd
May 26, 2022
970

突撃となりのプロジェクト / EC Tech Talk

hrysd

May 26, 2022
Tweet

Transcript

  1. 突撃となりのプロジェクト hrysd / GMO PEPABO inc. 2022.05.26 EC Tech Talk

    -カラーミーショップとSTORESを支えるチームづくりと開発の裏側- 1
  2. 自己紹介 2 - @hrysd - EC 事業部 DX チーム所属 -

    事業部を横断したアプリケーションの改善等に従事 - 最近は LeetCode の問題を一日一問解くのを習慣にしてます よしだ ひろし
  3. プロジェクトを進めていく 11 新しいメンバーが仕事に取り組んでいけるように - ドキュメント・仕様をまとめる - 何が決まっていて、何を決める必要があるのか - ゴールとの差分がわかる -

    ストーリーにやることを実現・解決したいことを明記 - 〜〜を修正、だけではなく何をここでしたいのか - ハイコンテクストな説明をやめる - ストーリーの整理 - 次に何に、どの順で取り組めばいいのか
  4. 新しいメンバーを受け入れる 15 新しいメンバーが来てくれた - 質問いつでも受けてます - する側 - こんなに、こんなこと質問して平気かな? -

    うける側 - 質問来ないから問題なく取り組めている(?) - 今、XXXX をやっているので後で答えます - “フロー状態” の乱れ - https://ja.wikisource.org/wiki/プログラマが知るべき 97のこと/ペアプログラミングと「フロー」
  5. 新しいメンバーを受け入れる 17 どうやっているか - 詳細を考えリストアップ - 項目ごとに休憩、ドライバー、ナビゲーターの交換 - 対面、リモート問わず実施 -

    Visual Studio Code の Live Share - お互いの環境に左右されない - 一日に 3 時間程度 - 作業のログを取る - 話ながら手を動かす都合、ログを残しづらい - 雑談・意思決定のふりかえりに - 土地を耕す - 種を植える - 水やり - 収穫
  6. プロジェクトのリリース 19 大きめな機能の開発 - 機能開発において避けては通れないのはリリース - チームではトランクベースで開発を行なっている - 開発したものは都度本番環境にリリースしている -

    公開範囲の制限にはフィーチャートグルを利用 - トピックブランチ、まとめブランチは作らない - 他の開発との衝突を避ける - レビュー負荷の軽減 - リリースの範囲を狭め、影響範囲を狭く
  7. プロジェクトのリリース 24 他の問題点 - 動作環境の変更・設定の変更に、デプロイが必要になる - リリース作業 - 問題発生時の切り戻し作業 -

    も同様 - チーム外のメンバー、エンジニア以外のメンバーの対応が難しい - コードベースの編集が必要であるため、誰もが対応できるとは言い難い - QA チームといった別チームが自ら動作環境を用意するということも難しい - どこの環境で、どのユーザを使ってください
  8. プロジェクトのリリース 25 解決するために - Unleash - フィーチャトグルを管理するサービス - https://github.com/Unleash/unleash -

    https://www.getunleash.io - 特定のユーザ、段階的なリリースと柔軟な設定が可能 - 各種言語向けの SDK (Ruby, JavaScript, Go, PHP…)
  9. プロジェクトのリリース 26 解決するために - プロジェクトに導入中 - Web UI があるため、アクセスできるメンバー全員がフィーチャトグルを設定できる -

    設定の仕方はドキュメントを用意しエンジニア以外もできるように - フィーチャートグルの設定次第では本番環境でも動作確認できる - Web UI を操作するだけのため、デプロイを伴わない - トランクベースの開発と相性が良い - 誰でもリリース・切り戻しが可能に