🚲

好む振る舞い

💡
この資料は、宮城広隆が自身が働く上で良しとする振る舞いを言語化しまとめています。 他の方に強制するものではなく、宮城と働くイメージをしやすくする用途を想定しています。

Soft Skills

プロであれ

  • エンジニアである前に社会人。約束を守る・時間を守る・気持ちよく仕事をする
  • 残業をしないしさせない。健康に、サステナブルに成果を出せる方法を考える
  • プロダクトを良くすることにベストを尽くす
  • フルサイクルでありたい。「自分の仕事じゃないから」とスルーせず、プログラミング以外も可能な限りなんでもやる

リモートワーク

  • 情報が然るべき方法で「公開・整理・配信」されている状態を目指す ref: 社内向け「透明ガイド」を公開します|sonopy@Ubie Discovery
    • フロー情報として作業はSlackに常に書き連ねる ref: Working Out Loud
    • ストック情報として知見や共有事項はドキュメント or Custom Linter(ex: sider)に昇華する
    • 意思決定は後から見返せる状態で公開する
  • 基本非同期コミュニケーションとし、タイムゾーンを気にせず進められるようにする

ミーティング

  • Google流、会議をより効率的にする秘訣とルール
    • 可能な限り短時間にする
    • 情報共有ではなく意思決定の場とする
    • 24時間前までに資料を用意し共有、認識合わせが済んだらすぐ本題に入る
    • タイムマネジメント・議事録・ネクストアクションの徹底
  • 顔を出す。所作や表情によって相手に与える情報量を増やす

コミュニケーション

Product Development

Issue driven

  • 理想から逆算する
  • ユーザーファースト

チーム開発

  • HRT
  • 検査・適応・透明性 ref: The Scrum Guide
  • Fail Fast
  • 集中状態にあるタスクがない場合、PRなどのレビューを最優先タスクとする ref: コードレビューのスピード
  • 「引き継ぎ」をなくすように働く 怪我や病気で自身が突然離脱しても業務が回る状態に保つ
    • 適切なドキュメンテーション、作業や残タスクの可視化
  • 前にことを進めようとしている人のフォロワーになる
    • チームメンバーの課題提起がスルーされないように、可能な限り反応する
  • この資料に記載していることをは自身のポリシーであり、違う意見があることを理解し受け入れる

Ops

  • You build it, You run it. ref: A Conversation with Werner Vogels
  • ランタイムやライブラリのアップデートが苦しくならないように投資する
  • トイルは山積みになり続けることが多いが、レバレッジが効く順序を検討し技術で解決していく

Engineering

開発

  • 全ての開発は理想のインターフェースから始める
  • ロジックはテストを書く、書けないなら書けるように責務を分割する
    • バグの恒久対応はテストで表現する
  • 社内フレームワークではなく主流な手段で解決し、キャッチアップと採用を容易にする
  • コーディングスタイル(インデントなど)のレビューは一切せず、linterやeditorconfigに従う
    • 人間のレビューを減らすためにlinterを積極的に整備する
  • ビッグバンリリースはせずフィーチャートグルを利用する
  • OSSやコミュニティに積極的に還元する

Git, Commit, Pull Request

  • トランクベース開発GitHub Flowを採用し、1日に複数回以上デプロイを行う
  • PRは誰がいつ見ても理解できるような粒度でコンテキストを記載する
  • 想定される質問に対して全て置き回答してからレビューを依頼する
  • commitはcherry-pickで価値を生む単位
  • コミットメッセージの言語は社内の公用語やプロダクトの利用ユーザーの言語に合わせる
    • 日本人向けのプロダクトにも関わらず英語で書くことに価値は低いと考える

SaaS

  • ビジネスのコアではない領域については、コードを書く前にSaaSでの解決を検討する 車輪の再発明はしない
  • 価値が説明できるのであれば有料でも導入できるよう交渉する