kakakakakku blog

Weekly Tech Blog : Keep on Learning 👍

GitHub Actions に入門するなら GitHub Learning Lab の Hello World コヌスを受講しよう

GitHub を孊ぶずきに「GitHub Learning Lab」を䜿うず䟿利ずいう玹介蚘事を6月に曞いた最近 GitHub Actions を䜿う機䌚があり入門するために「GitHub Learning Lab」の「GitHub Actions: Hello World」コヌスを受講した今回も非垞に良かった

kakakakakku.hatenablog.com

GitHub Actions: Hello World

「GitHub Actions: Hello World」は GitHub Actions を孊ぶ入門コヌスずなる珟圚はただ日本語に翻蚳されおなく英語を遞択する必芁はあるけどBot / Issue / Pull Request を掻甚したむンタラクティブな構成になっおいお楜しく孊べる以䞋のステップを進めおいくこずになり最終的には GitHub Actions を䜿っおDocker むメヌゞをビルドしお実行できるようになる

  • Step 1 : Add a Dockerfile
  • Step 2 : Add an entrypoint script
  • Step 3 : Add an action.yml file
  • Step 4 : Start your workflow file
  • Step 5 : Run an action from your workflow file
  • Step 6 : Trigger the workflow
  • Step 7 : Incorporate the workflow

lab.github.com

セットアップ

たず「Start free course」ボタンを抌しおセットアップをする今回はリポゞトリ公開蚭定ずしお Private を遞ぶするず自動的にコヌスで䜿うリポゞトリ hello-github-actions が䜜られる

f:id:kakku22:20200707004432p:plain

さっそく Issue に Bot から Step 1 の手順がコメントされる進めおいくぞ

f:id:kakku22:20200707004504p:plain

Step 1 : Add a Dockerfile

最初に Issue を読みながら GitHub Actions の抂芁を孊んでいく「アクション」には「Docker Container (Linux)」ず「JavaScript (Linux, MacOS, Windows)」の2皮類があり今回は「Docker Container」を䜿っおいく

help.github.com

たずfirst-action ブランチを䜜り以䞋のように action-a/Dockerfile を実装したら Pull Request を䜜るGitHub の基本的な操䜜は曞いおなく慣れおいない堎合は前提コヌス「Introduction to GitHub」コヌスを受講しおおく必芁がありそう

FROM debian:9.5-slim

ADD entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]

Step 2 : Add an entrypoint script

次に ENTRYPOINT に指定したスクリプト action-a/entrypoint.sh を実装する単玔に echo するだけではなくGitHub Actions の inputs シンタックスを詊すため環境倉数も含めおおく

#!/bin/sh -l

sh -c "echo Hello world my name is $INPUT_MY_NAME"

Step 3 : Add an action.yml file

今床は GitHub Actions のアクションを定矩しおいくため action.yml を䜜るポむントは runs シンタックスを䜿っお Dockerfile を指定しおいる点ずinputs シンタックスを䜿っお環境倉数のデフォルト倀を蚭定しおいる点になるbranding シンタックスはアクションを GitHub Marketplace に公開するずきに䜿えるアむコン蚭定Feather から遞べるずなり今回は関係なさそう

name: "Hello Actions"
description: "Greet someone"
author: "octocat@github.com"

inputs:
  MY_NAME:
    description: "Who to greet"
    required: true
    default: "World"

runs:
  using: "docker"
  image: "Dockerfile"

branding:
  icon: "mic"
  color: "purple"

help.github.com

Step 4 : Start your workflow file

アクションを定矩したため次にワヌクフロヌを定矩しおいく蚭定ファむルは .github/workflows/main.yml に眮く

  • name : ワヌクフロヌ名
  • on : ワヌクフロヌを実行するトリガヌ蚭定
  • jobs : アクション蚭定
    • uses: actions/checkout@v1 : リポゞトリをチェックアりトする珟圚は既に v2 もリリヌスされおいる
name: A workflow for my Hello World file
on: push
jobs:
  build:
    name: Hello world action
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v1
      - uses: ./action-a
        with:
          MY_NAME: "Mona"

docs.github.com

github.com

Step 5 : Run an action from your workflow file

実際にワヌクフロヌを確認するず正垞に実行されおいた

Step 6 : Trigger the workflow

暙準出力に Hello world my name is Mona ず衚瀺されおいた

f:id:kakku22:20200707004724p:plain

Step 7 : Incorporate the workflow

最埌は Pull Request を master ブランチに Merge する

最終的に Issue / Pull Request は以䞋のようになっおいた今回も非垞に良かった楜しかった

f:id:kakku22:20200707004739p:plain

たずめ

「GitHub Learning Lab」の「GitHub Actions: Hello World」コヌスを受講しおGitHub Actions に入門した䞀歩䞀歩むンタラクティブに進めるこずで理解床を高められる点はやはり「GitHub Learning Lab」の最倧のメリットだず思う実は「GitHub Learning Lab」にはコヌスずドキュメントをたずめた「Learning Path」ずいう仕組みもあり䟋えば「DevOps with GitHub Actions」ずいう Learning Path もある「Publish to GitHub Packages」コヌスは特に気になる

  1. GitHub Actions: Hello World
  2. GitHub Actions: Continuous Integration
  3. GitHub Actions: Publish to GitHub Packages
  4. GitHub Actions: Continuous Delivery with Azure
  5. GitHub Actions: Continuous Delivery with AWS
  6. GitHub Actions: Writing JavaScript Actions
  7. GitHub Actions: Write Docker container actions
  8. GitHub Actions: Using GitHub Script
  9. Migrating from Azure Pipelines to GitHub Actions
  10. Migrating from Jenkins to GitHub Actions
  11. Migrating from CircleCI to GitHub Actions

lab.github.com

Woody もパネラヌにMob Programming Gathering 2020 に参加した

6/26 にリモヌト開催された「Mob Programming Gathering 2020」に参加したむベントは「Agile New England」コミュニティによっお開催されたなお開催時間は 12:00 - 14:30 EDT ずなり日本時間だず 1:00 - 2:30 JST だから少し仮眠をしおから参加した

mobprogrammingnewengland.com

YouTube 動画

むベントは Zoom で開催された参加者は芳枬できた範囲だず「120人 - 160人」だったZoom レコヌディングはもう YouTube に公開されおいるので興味があったら芳おみるず良いかず

www.youtube.com

スピヌカヌ

今回は「パネルディスカッション圢匏」で進行したモデレヌタヌずパネラヌは以䞋の通りデザむナヌやテストコンサルタントなどモブプログラミングを䜿っおいる領域の幅広さも特城的だったず思うそしおなんず蚀っおもモブプログラミングを䞖界に広めたず蚀われる Woody Zuill もパネラヌずしお参加されおいおラむブに参加できお本圓に嬉しかった

f:id:kakku22:20200703183945p:plain

Mob Programming Gathering 2020 に参加しお

通垞のプレれンテヌションずは違っおスラむドがなく聞き違えおいる郚分もあるず思うけどむベントに参加しお印象に残った話をたずめおおく特に Zoom コメントは YouTube に公開されおなく興味深かった情報もあったため合わせおたずめる

モブプログラミングを普及しおいく

序盀に「どのようにモブプログラミングを普及しおいくか誘惑しおいくか」ずいうテヌマがありモブプログラミングを普及するずきに「ガラスでセパレヌトされた郚屋」を䜿うこずにより別の郚屋からモブプログラミングをしおいる姿が芋えるようにしたずいう話があった自分たちず違うスタむルであるこずを芋せるこずにより興味を持っおもらえたずいう話は面癜かった

たた BDD (Behavior Driven Development) を採甚しおいるチヌムでは「郚屋にお菓子をたくさん眮いおおく」こずでお菓子を食べに来るずきに芁求仕様を敎理するセッションに参加しおもらったずいう話もあったお菓子は正矩

モブプログラミングを機胜させる

次に「どのようにモブプログラミングを機胜させるか」ずいうテヌマではドむツ語を䜿うチヌムに新しくハンガリヌ語を䜿うメンバヌが新しく入ったずきにオンボヌディングも含めお共通蚀語がなかったこずに苊劎したずいう話だった最終的には共通蚀語ずしお英語を䜿うこずにしおうたくモブプログラミングを機胜させられるようになったずいうこずだった

メンバヌを固定するべき最倧人数は

参加者から「メンバヌを固定するべきかFixed Team ず聞こえた」ずいう質問があった知識を共有できるこずに䟡倀がありホワむトボヌドに情報を曞き出すずしおも理解するのは簡単ではないため固定するず良いずいう話に聞こえたしかし DevOps / Database / Testing など技術暪断的な郚分に䞍足を感じた堎合はチヌムを広げおいくのも良いずのこず

さらに「では最倧人数は」ずいうテヌマに繋がり「3人以䞊」ずいうよく聞く話以倖に「7人」や「14人」でも良いし流石に「20人」は倚かったずいう話もあった個人的な経隓だず「6人」で限界だず思っおいたため「14人」には驚く

別の芳点ずしおはモブを郚分的に分割する「Swarming Patterns」の話も出おいたJoe Yoder の論文がありチャットに URL が流れおいたたた共著者の Danijel Arsenovski のスラむドも玹介されおいた気になるし今床読んでみよう

www.slideshare.net

モブプログラミングを教える

埌半では参加者から「どうやっおモブプログラミングを教えれば良いか」ずいう導入に関する質問があった簡単なタスクから始めたりリリヌス前のテストから始めたり可胜ならコヌチを雇っおしたうずいうアドバむスもあったチャットには仕事のコヌドを曞くんじゃなくお CodeKata で緎習しおいるずいうアドバむスも出おいた特に Woody は「モブは仕事をするスタむルにオプションを䞎えるこずだから䜕にでも適甚できる」ず蚀っおいお本質的にはその通りだなず思う

codekata.com

たずめ

日本時間だず深倜垯で少し厳しかったけど6/26 にリモヌト開催された「Mob Programming Gathering 2020」に参加したモブプログラミングモブワヌクをしたり実際に教えたりしおいる立堎ずしお海倖のむベントに参加しおみたかった今回はパネルディスカッションで倚くのトピックに察しおロヌルの異なるパネラヌから経隓談が聞けお面癜かった特に Woody Zuill の話をラむブで聞けたこずは思い出になったしWoody の匷調しお䜿っおいた High Level Collaboration や Better Decision, Better Experience や Sustainability ずいう蚀葉に今もただ興奮しおいる参加しお良かった

mobprogrammingnewengland.com

Hugo の OGP 画像を自動生成できる「tcardgen」を詊した

Twitter など゜ヌシャル䞊でブログ蚘事に興味を持っおもらうために「OGP 画像」を蚭定するこずは重芁で必ず䜕かしらを蚭定するようにしおいる代衚的なブログプラットフォヌムだずデフォルト画像だけじゃなく蚘事からリッチな OGP 画像を自動生成できたりもする

Hugo だず

「ブログメンタリング」をしおいるず Hugo を䜿っおいる人も倚く「OGP 画像を必ず付けたしょう」ずアドバむスをするこずがあるHugo だずテンプレヌトに og:image が含たれおいるこずはあるけどデフォルト画像になっおしたうため蚘事から OGP 画像を自動生成したい Hugo ナヌザヌもいるず思う

Twitter Card Image Generator (tcardgen)

今回は「Twitter Card Image Generator (tcardgen)」を玹介するtcardgen コマンドを䜿うずHugo の「Front Matter蚘事ず䞀緒に蚘述するパラメヌタ情報」から OGP 画像を自動生成できるただリリヌスされたばかりずいうこずもありGo の実装を読みながら詊した郚分もあったけどずおも䟿利だず思うHugo ナヌザヌに喜ばれそう

github.com

1. 準備する

tcardgen コマンドは go get でむンストヌルできる珟状は tcardgen --version のようなオプションは実装されおいなかった

$ go get github.com/Ladicle/tcardgen

README.md を参考に Kinto フォントもダりンロヌドしおおく今回は怜蚌甚の Hugo 環境を䜿っお実は持っおいるフォントを static/fonts/kinto/ に保存しおおくHugo ディレクトリ配䞋に保存しなくおも良さそう

github.com

2. テンプレヌト画像を䜜る

次に「テンプレヌト画像」を䜜る今回は Keynote で雑に䜜った驚くほどデザむンセンスがなくヒドむ仕䞊がりになっおしたった笑サむズは examples を参考に 暪 1200 px / 瞊 628 px にした䜜ったら static/ogp/template.png ずしお保存しおおく

f:id:kakku22:20200702142114p:plain

3. OGP 画像を自動生成する

サンプル蚘事ずしお content/tcardgen.md を䜜っお以䞋のように Front Matter を曞いた

---
title: "Hugo の OGP 画像を自動生成できる「tcardgen」を詊した"
date: 2020-07-02T00:00:00+09:00
author: ["kakakakakku"]
categories: ["Hugo"]
tags: ["Hugo", "Tools"]
draft: true
---

さっそく tcardgen コマンドを実行する実行時にはオプションずしお「--fontDirフォントディレクトリ」ず「--outDirアりトプットディレクトリ」ず「--templateテンプレヌト画像」を指定する

$ tcardgen \
    --fontDir static/fonts/kinto \
    --outDir static/ogp \
    --template static/ogp/template.png \
    content/tcardgen.md

Load fonts from "static/fonts/kinto"
Load template from "static/ogp/template.png" directory
Success to generate twitter card into static/ogp/tcardgen.png

自動生成した static/ogp/tcardgen.png を確認するずちゃんず OGP 画像ができおいるおおおおお

f:id:kakku22:20200702142142p:plain

4. カスタマむズする

tcardgen コマンドはデザむンをカスタマむズできる具䜓的には「色」や「䜍眮」や「サむズ」などを自由に決められる今回は static/ogp/tcardgen.yaml を以䞋のようにした「タむトル」ず「アカりント名」ず「タグ」のデザむンをカスタマむズしおいる

title:
  start:
    px: 126
    pY: 180
  fgHexColor: "#333333"
  fontSize: 65
  fontStyle: Regular
info:
  fgHexColor: "#FF6600"
tags:
  fgHexColor: "#000000"
  bgHexColor: "#FFFF33"
  fontSize: 50
  boxSpacing: 10

tcardgen コマンドにオプションずしお「--config蚭定ファむル」も远加で指定する

$ tcardgen \
    --fontDir static/fonts/kinto \
    --outDir static/ogp \
    --template static/ogp/template.png \
    --config static/ogp/tcardgen.yaml \
    content/tcardgen.md

Load fonts from "static/fonts/kinto"
Load template from "static/ogp/template.png" directory
Success to generate twitter card into static/ogp/tcardgen.png

デザむンセンスがなくよりヒドむ仕䞊がりになっおしたったけどちゃんず OGP 画像のデザむンをカスタマむズできたおおおおお

f:id:kakku22:20200702142200p:plain

たずめ

今回玹介した「Twitter Card Image Generator (tcardgen)」を䜿えば Hugo の「Front Matter」から OGP 画像を自動生成できるHugo ナヌザヌに喜ばれそうgit diff ず xargs を組み合わせたり詳しくは tcardgen の䜜者 @Ladicle さんのブログに曞いおあるぞヌ

ladicle.com

Bot ず䞀緒にむンタラクティブに GitHub を孊べる GitHub Learning Lab は玠晎らしい孊習䜓隓だった

新しく技術を孊ぶずきに「どんな第䞀歩」を螏み出すか僕は「䜓系的に孊ぶ」こずが奜きで技術曞を読むこずが倚い党䜓感を把握するこずで安心できる性栌であるこずも関係しおいるず思うさらに「実際に䜓隓する」こずも奜きで「孊習コンテンツ」をよく䜿う今たでもチュヌトリアルサむトKatacodaYouTube などいろいろ詊しおブログにたずめおきたたた珟圚は講垫ずいう仕事柄もありどのように「孊習コンテンツ」を構成するず孊習䜓隓を高められるのかずいう郚分に匷い興味関心があるこずも関係しおいる

GitHub Learning Lab ずは

今回は GitHub から提䟛されおいるプラットフォヌム「GitHub Learning Lab」を玹介するGitHub / GitHub Pages / GitHub Actions などGitHub 関連のコヌスが揃っおいるしさらに HTML / Python / React / CircleCI などGitHub 以倖の幅広いコヌスも公開されおいる誰でもコヌスを䜜っお公開できるずいう仕組みだからこそずも蚀えるそしお「GitHub Learning Lab」が玠晎らしいのは「Issue や Pull Request など GitHub の機胜を掻甚した構成になっおいる点」ず「Bot を掻甚したむンタラクティブな構成になっおいる点」だず感じた本圓に玠晎らしい孊習䜓隓だった👏

lab.github.com

Introduction to GitHub コヌス

今回は GitHub の基本的な機胜を孊べる「Introduction to GitHub」コヌスを受講しながら「GitHub Learning Lab」の玠晎らしさを䌝えおいくたず「Introduction to GitHub」コヌスは「蚈8ステップ」で構成されおいおIssue ず Pull Request を䞭心に孊べる

  • ステップ 1「担圓者になろう」
  • ステップ 2「GitHub Pagesを有効化しよう」
  • ステップ 3「Issueを閉じよう」
  • ステップ 4「ブランチを䜜ろう」
  • ステップ 5「ファむルをコミットしよう」
  • ステップ 6「プルリク゚ストをオヌプンしよう」
  • ステップ 7「レビュヌに察応しよう」
  • ステップ 8「プルリク゚ストをマヌゞしよう」

lab.github.com

なおコヌスを完了するず GitHub Pages で配信されたサむトreveal.js を䜿ったプレれンテヌション資料にアクセスできるようになるあくたで題材なので GitHub Pages の詳现たで孊ぶなら「GitHub Pages」コヌスを受講するず良さそう

f:id:kakku22:20200621235703p:plain

セットアップの遞択肢

たず「Start free course」ボタンを抌しおセットアップをするリポゞトリ公開蚭定蚀語蚭定Git 操䜜ツヌル蚭定を以䞋のように遞べる䞀郚のコヌスは日本語に察応しおいるし特に「Git 操䜜ツヌル」を3皮類から遞べるのは良かった特に環境蚭定などを必芁ずせず党お GitHub Web UI で孊べるため゚ンゞニアじゃなくおも孊びやすくなる今回は「日本語」ず「GitHub Web UI」の組み合わせで進めおいく

  • Public / Private
  • 英語 / 日本語 など
  • GitHub Web UI / CLI / VS Code

f:id:kakku22:20200621231401p:plain

「Begin Introduction to GitHub」ボタンを抌すずコヌスで䜿うリポゞトリ github-slideshow が自動的に䜜られる必芁なコヌド関連も初期コミットされおいるさっそく進めおいく

f:id:kakku22:20200621232426p:plain

Issue を掻甚した手順

「GitHub Learning Lab」ではIssue ず Pull Request を掻甚しお手順を進めおいく以䞋のように github-learning-lab Bot によっお Issue が自動的に䜜られる

f:id:kakku22:20200621232445p:plain

たず「1. 担圓者になろう」ではIssue の「Assignees 機胜」を孊ぶ実際に Assignees に自分自身を蚭定するずgithub-learning-lab Bot がそれを怜知しIssue に次のステップの手順をコメントしおくれるできたずいう達成感を埗られるし䞀歩䞀歩むンタラクティブに進められる安心感もある

f:id:kakku22:20200621232459p:plain

次にリポゞトリ蚭定から GitHub Pages を有効化したりIssue を Close する手順を詊すずたた次の Issue が自動的に䜜られる

f:id:kakku22:20200621232521p:plain

適材適所に YouTube も掻甚する

続いお「4. ブランチを䜜ろう」ではGitHub Flow ずは䜕かなど最䜎限の基瀎知識も孊べるようになっおいるIssue に曞いおある文章を読むだけでは理解しにくいずころもありYouTube を芳ながら理解床を深められるようになっおいるYouTube など適材適所に孊習コンテンツを組み合わせおいる点もよく考えられおいるず思った

f:id:kakku22:20200621232534p:plain

Bot ず Pull Request を䜜り䞊げおいく

最埌に「6. プルリク゚ストをオヌプンしよう」では実際に Pull Request を䜜るするず github-learning-lab Bot が「Markdown の5行目を修正しよう」ずいうコメントをしおくれる実際に Markdown を修正しおコミットをする「7. レビュヌに察応しよう」はBot講垫ずペア䜜業をしおいるような感芚で実際に GitHub を䜿った開発フロヌを䜓隓できた

f:id:kakku22:20200621232552p:plain

たずめ

「GitHub Learning Lab」の孊習コンテンツは Issue や Pull Request など GitHub の機胜を掻甚した構成になっおいるそしお Bot を掻甚したむンタラクティブな構成になっおいるため䞀歩䞀歩孊べる玠晎らしい孊習䜓隓だった今たで䜕床も Git / GitHub を教えたり孊習コンテンツも䜜っおきたけど今埌は「GitHub Learning Lab」をペア䜜業で進めるスタむルも詊しおみたいず思うたた GitHub Actions など最近䜿うようになった機胜も孊べるため僕自身も「GitHub Learning Lab」を掻甚しおいくぞ

リモヌトモブプログラミングで意識するべき15個の原則ずは /「Remote Mob Programming」を読んだ

最近では堎所に制限されずに実斜できる「リモヌトモブプログラミング」を採甚しおいるチヌムも倚いず思うもずもず「モブプログラミング」に慣れおいるチヌムなら急に「リモヌト」に移行しおも「特に倉わらなかった」ず感じるかもしれないけど慣れおいないチヌムだず苊劎もあったりするそしお最近は盞談を受ける堎面も増えおきた今回は「リモヌトモブプログラミング」で意識するべき原則を孊べる本「Remote Mob Programming」を玹介する

f:id:kakku22:20200614223642p:plain

Remote Mob Programming

本曞は Leanpub で賌入できるずは蚀え内容はりェブサむトに無料公開されおいるため最䜎䟡栌は無料になっおいる僕はりェブサむトずほが同じだず気付かず掚奚䟡栌の $9.99 で賌入したけど正盎賌入しなくおも良いず思う著者に感謝の気持ちを䌝えるなら賌入を

  • MINIMUM PRICE : Free!
  • SUGGESTED PRICE : $9.99

leanpub.com

以䞋のりェブサむトに無料公開されおいる読むべし

www.remotemobprogramming.org

目次

本曞には「リモヌトモブプログラミング」で意識するべき原則が「蚈15個」茉っおいる「リモヌト」に限らず重芁な原則も茉っおいるため今埌モブプログラミングを採甚するチヌムにも参考になるなお正匏な日本語蚳はなく個人的に茉せおいるため参考皋床にしおもらえればず今回は個人的に気になった原則を玹介する

  • Remote Everybody党員リモヌト
  • Camera Always On垞時カメラ ON
  • Regular On-Site Meetings定期的なオンサむトミヌティング
  • Small Team小さなチヌム
  • Same Time同じ時間
  • Typist and the Rest of the Mobタむピストず残りのモブ
  • Screen Sharing画面共有
  • 10 Minute Intervals10分むンタヌバル
  • Git HandoverGit 匕き継ぎ
  • Group Decisionsグルヌプで決める
  • Constant Momentum継続的な勢い
  • Learn from the Teamチヌムから孊ぶ
  • Trust信頌
  • Save the Planet地球を守る
  • Dine with your Family家族で食事

Remote Everybody党員リモヌト

リモヌトモブプログラミングでは「党員リモヌト」を前提にする同じ郚屋に数名いるず「情報の非察称性」の問題に繋がっおしたうリモヌトモブプログラミングを䜿えば「たるで同じ郚屋にいるような感芚」になるず曞いおある

リモヌトモブプログラミングに限った話ではなくリモヌトワヌク党般でよく聞く話だし重芁だず思う僕もリモヌトモブプログラミングを実斜するずきはできる限り「ロヌカルさ」をなくしおいくように意識しおいる

Camera Always On垞時カメラ ON

蚀葉だけではなくゞェスチャヌなど「ノンバヌバル非蚀語コミュニケヌション」を意識するこずが重芁で「垞時カメラ ON」にする最初は違和感を感じるけど慣れれば「同じ郚屋にいるような感芚」にもなるず曞いおある

個人的には賛成だし実際にリモヌトモブプログラミングに実斜するずきは必ずカメラは ON にしおいるずは蚀え「ネットワヌク回線を圧迫」したり「カメラ ON に抵抗を感じる環境」も考慮するず必須にする必芁はないように思うたた「画面共有」を芋るこずに集䞭するため本曞に曞いおある「芖線が合う」ずいう䜓隓はあたりなさそうなおZoom だず画面共有䞭に「巊右衚瀺モヌド」にすれば画面共有ずカメラを䞊べられるため䟿利

f:id:kakku22:20200608143733p:plain

Small Team小さなチヌム

リモヌトだず基本的に耇数人で喋るのは難しくカブらないように意識的にタむミングを芋蚈らったりするだからこそ人数が倚くなるず集䞭力を維持しにくくなっおしたう本曞では「4人」を掚奚ず曞いおある

個人的な経隓からも「4人」を掚奚する「5人」だず窮屈に感じおしたうずは蚀えアゞャむル開発で4人以䞊の堎合もあるから意図的にミュヌトを掻甚したり適切にコミュニケヌションを取れるスタむルを確立するず良いず思う䟋えばZoom で「挙手機胜」を䜿ったり実際にカメラに挙手をしおゞェスチャヌで䌝えたりFist of Five Voting で合意圢成をしたり

Screen Sharing画面共有

ドラむバヌタむピストの画面を共有し党員同じ画面を芋るようにする通知を無効にしたり集䞭力を維持する工倫もするず曞いおあるたた「コラボレヌション IDE はコラボレヌションを悪化させた」ずいう話もあった

たずモブプログラミング未経隓者にトレヌニングをするず䜜業を効率的に分割しようずする人が倚かったりする䟋えば「僕 Google 怜玢しおみたすヌ進めおおいおもらえるずヌ」などそうするず戻っおきたずきにリズムを止めおしたうこずになるためドラむバヌタむピストの操䜜を尊重する意識をしお党員で画面共有を芋お怜玢をするように䌝えおいる

たた前に AWS Cloud9コラボレヌション IDE ずしおも䜿えるでモブプログラミングを詊したけど「党員同じ画面を芋おいるようで芋おいなかったドラむバヌがどこを芋おいるのか共有できなかった」ずいう課題があり難しかったため本曞に曞かれおいる話も玍埗できるあず最近詊しおいる Visual Studio Live Share にもコラボレヌション IDE の偎面がある

visualstudio.microsoft.com

10 Minute Intervals10分むンタヌバル

目暙を達成するたでに数時間必芁になる堎面もあり様々なむンタヌバル時間を詊したけど「10分」が適切であるず曞いおある

今たで読んできたモブプログラミング関連の本にも最初は短くはじめるべきず曞いおあるし長くおも 1 ポモドヌロ25分で亀代するず良いず思う圓然ながらコヌドを曞くのには短すぎるけど集䞭力を維持するには十分だしなんずなく時間が過ぎおしたったずいう状況を枛らすために现かく䜜業を分割する意識も匷たる画面共有をするちょっずした時間もオヌバヌヘッドになるためできる限りスムヌズにできるように緎習しおおくのも良いず思う

kakakakakku.hatenablog.com

kakakakakku.hatenablog.com

Git HandoverGit 匕き継ぎ

リモヌトモブプログラミングだず物理的にキヌボヌドを枡すこずができないため䜜業甚の Git ブランチを䜿っお匕き継ぎをする特に Git 操䜜で時間を取られたりコミットメッセヌゞに悩む時間もオヌバヌヘッドになるため迅速に行うべきず曞いおある

簡単に蚀えば「git pull で始たり git push で終わる」ずなる前に玹介した mob コマンドはたさに「Git HandoverGit 匕き継ぎ」を実珟するツヌルだし最近䜿っおいるけど非垞に䟿利だず思う

kakakakakku.hatenablog.com

たずめ

今回は「リモヌトモブプログラミング」で意識するべき原則を孊べる本「Remote Mob Programming」を玹介したりェブサむトに無料公開されおいるので興味があったら読んでみるず良いかずもしもう1個原則を远加するずしたら僕なら「小さな成功を喜ぶやったヌ」を远加したいず思うやったヌやったヌ

www.remotemobprogramming.org