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

個人から始める開発生産性向上

Aki Takami
November 29, 2023

 個人から始める開発生産性向上

Aki Takami

November 29, 2023
Tweet

Other Decks in Programming

Transcript

  1. 個⼈から始める開発⽣産性向上
    サイボウズ株式会社 ⽣産性向上チーム
    ⾼⾒ 諒
    1

    View full-size slide

  2. ⾃⼰紹介
    ▌⾼⾒ 諒 / たかみ あき / たかみん
    ▌𝕏: @takamin_55
    ▌2023年4⽉ サイボウズ ⽣産性向上チームにジョイン
    n Fourkeys 計測&可視化基盤を開発中
    ▌趣味
    n グルメバーガー / ダーツ / チェス / 旅⾏
    2

    View full-size slide

  3. 開発⽣産性向上の取り組み、難しすぎ...︖
    ▌開発⽣産性向上の取り組みは話の規模が⼤きい。難しそう
    n 開発フロー 変えてみた
    n チーム体制 変えてみた
    n デプロイ ⾃動化してみた

    ▌個⼈でできる開発⽣産性向上から1歩ずつ始めませんか︕という話
    3

    View full-size slide

  4. 個⼈レベルの開発⽣産性
    ▌SPACE フレームワーク
    n 満⾜感
    n 効率性
    n フロー(集中環境)
    ▌「良い環境」を作っていこう
    n ⾯倒な作業をなくす
    n やりたいことが中断されない状況を作る 4

    View full-size slide

  5. どうやって?
    5
    普段の業務で⾯倒な部分を⾒つけて改善していこう︕

    View full-size slide

  6. そんなことは分かっている
    ▌⾯倒な部分を改善するスタンスは正しい。できるなら良い
    ▌“⾯倒” ← 感覚主導 / 閃き依存
    n 慣れて⾯倒だと感じない
    n そもそも⾯倒の感度が低い(私)
    ▌⾯倒な部分を⾒つける具体的・再現性のある⼿法を考えてみた
    n ⾯倒感度もあがって次に繋がる 7

    View full-size slide

  7. どうやって?
    8
    それは「区切る」こと︕
    区切って注⽬する領域を絞り、改善箇所を⾒つけやすくする
    1. 区切る
    2. 改善できそうな箇所を⾒つける
    3. 改善する

    View full-size slide

  8. 1. 区切る
    ▌⾊々な観点で⾃分の普段の業務を区切り、中⾝を洗い出す
    n ツール/アプリで区切る
    n どんなツールやアプリを使って何をしている︖
    n 時間で区切る
    n ◯時から✗時の間、何をしている︖
    n タスクで区切る
    n 最近、どんなタスクをしている︖
    9

    View full-size slide

  9. ツール/アプリで区切ってみた例
    ▌Visual Studio Code
    o どんなことをしたか
    o コードを書く、ファイルを開く、検索&置換、⼀⾏削除...
    ▌Microsoft Edge
    ▌Linear
    ▌Confluence, Obsidian, Slack, Git, GitHub, AWS
    ▌... 10

    View full-size slide

  10. 時間で区切ってみた例
    ▌14時から15時
    o 週次のミーティング
    § Zoomに繋いで
    § アジェンダ通りに先週の進捗を振り返って
    § 全体計画を振り返って
    § 今週の⽬標を⽴てて
    § …
    11

    View full-size slide

  11. タスクで区切ってみた例
    ▌パーサーの作成タスク
    o 機能の洗い出して
    o Linearでタスク管理して
    o APIの設計をして
    o GitHub上のPRでコードレビューをして
    o Dockerイメージのビルド & プッシュ & デプロイをして
    o Terraformをapplyしてリソースを作成して
    o … 12

    View full-size slide

  12. 2. 改善できそうな箇所を⾒つける
    ▌「そういえば...」がおすすめキーワード
    o そういえば、コミットメッセージにIssue番号を書く作業が⼿間だなぁ
    o そういえば、Dockerのイメージビルド遅いなぁ
    o そういえば、毎回クリック操作で事を進めるのが⾯倒だなぁ
    13

    View full-size slide

  13. 3. 改善する 事例1
    ▌コミットメッセージの半⾃動化
    o ⾯倒︓コミットメッセージに「Issue番号」を毎回書くのが⾯倒
    o 改善︓Issue番号がある状態で書き始められるコマンドを作ってみた
    § "-e" なし
    § "-e" あり
    14

    View full-size slide

  14. 3. 改善する 事例2
    ▌イメージビルドの⾃動化 & ⾼速化
    o ⾯倒︓モブ中のビルド待ちの無⾔時間がもったいない
    o 改善︓イメージビルドを⾃動化し、その後キャッシュも⼊れ⾼速化した
    § GitHub Actions
    o docker/setup-buildx-action
    o docker/build-push-action
    15

    View full-size slide

  15. 3. 改善する 事例3
    ▌LinearのIssue(タスク)を開く
    o ⾯倒︓今やっているIssueを探して開くのが⾯倒
    o 改善︓shell, Raycastなどから簡単に開けるようにした
    § Issue番号からタスクを開く
    § ステータスが "Doing" のIssueを開く
    16
    開く

    View full-size slide

  16. 3. 改善する 事例4
    ▌ウィンドウをいい感じに配置する
    o ⾯倒︓ブラウザやアプリのウィンドウを配置するのが⾯倒
    o 改善︓Raycastのaliasを使って簡単に配置できるようにした
    17

    View full-size slide

  17. 3. 改善する 事例5
    ▌ショートカット / エイリアス / ホットキーで楽に作業する
    o ⾯倒︓マウス作業が挟まるのが⾯倒
    o 改善︓よく⾏う操作はコマンドで完結するようにする
    § VSCode
    o `ctrl + cmd + →` で開いているファイルを右に画⾯分割する
    § git clone したリポジトリを⼀覧で出し、選択してそこへ移動する
    o alias cdrepo='cd $(ghq root)/$(ghq list | peco)'
    18

    View full-size slide

  18. ⼩さな⽣産性向上でもOK
    ▌⼩さな⽣産性向上でも
    o 積み重なれば⼤きな改善になる
    o 改善による達成感 → 次の改善へと繋がる
    o 新しい技術に触れる機会になる可能性を秘めている
    o 影響範囲を個⼈、⾃チーム、他チーム...と⼤きくしていく準備になる
    19

    View full-size slide

  19. まとめ
    ▌個⼈でできる開発⽣産性向上から1歩ずつ始めよう
    n ⼩さくてもOK。良いことたくさん
    ▌⾯倒な作業を効率化し、中断のない環境(フロー)を作ろう
    n SPACEフレームワークより
    ▌⾯倒な作業は「区切る」ことで⾒つけよう
    n 再現性アリ。⾯倒感度も上がるかも
    20

    View full-size slide

  20. おまけ
    ▌1. RescueTime
    n PCを監視して何に時間を使っているかを⾃動的に洗い出してくれる
    n 社内セキュリティと相談
    ▌2. 新しいショートカットを覚える時は1⽇最⼤2個がおすすめ(体感)
    21

    View full-size slide

  21. 引⽤
    ▌The SPACE of Developer Productivity - ACM Queue
    22

    View full-size slide