tl;dr

海外記事を読みます

なぜスクラムは地獄の火の中に投げ込むべきものであるか

Giles Bowkett: Why Scrum Should Basically Just Die In A Fire

先に書いておくと自分(原著者ではない)はこのエントリにまったく共感していないのだけど、最後まで読んでしまったのでスクラムアンチパターンとして記す。

  • ストーリーポイントとプランニングポーカーについて。
    • 一番目上の人が、ストーリーポイントが何ポイントになるか決めるという風になる。
    • 制限時間を設けて長々と話が続くのを止められる仕組みがあるが、対話を尊ぶアジャイル手法においてこれは皮肉。
  • スタンドアップミーティーングについて。
    • 結局長いミーティングになってしまう、しかもマネージャだけは座っていて残りのメンバーは立っているという形。
  • アジャイルマニフェストでは動くソフトウェアを進捗の最も重要な尺度とするが、ベロシティという概念によってこれが骨抜きにされる。
    • ストーリーポイントの消化具合がエンジニアの生産性を表す数字としてマネージャに利用される。
  • そのあとアジャイルマニフェスト自体への批判もあるが省略。

具体的な話とか著者の考えについては原文を参照されたい。ここまで盛大にまずいスクラムというのもなかなかないのではないかと笑ってしまうけれど、真面目に考えてみると何がスクラムでないか、というところが見えてくると思う。手法それ単体はスクラムではなく、スクラムはマネージャが開発者を使ったり評価したりするものではない。スクラムはチーム全体で自発的に進めていくもので、それができていないのならスクラムマスター(元のエントリには scrum master という単語は一度も登場しない)の失敗だろう。そしてスクラムそれ自体を行うことを目的とせず、スクラムの一貫として定義されている手法のそれぞれを手段として吟味し、チームにあわせてカスタマイズしながら採用し、チームの仕事の達成につなげるというのが本来の目的のはずだ。Wikipediaスクラムの方法を読んでわかった気になる、などとしているとこういう失敗が起きそうに思う。チームで本を読むか、スクラムマスターがしっかりと解説することから始めていれば、こんなことにはならないのではないだろうか。

SCRUM BOOT CAMP THE BOOK

SCRUM BOOT CAMP THE BOOK

Go: チャンネルは不十分―なぜ pipelining がそれほど簡単ではないのか

Channels Are Not Enough or Why Pipelining Is Not That Easy

  • Go のチャンネルはプリミティブであり、低レイヤを構成する部品である。
  • なので、よくある並行処理はチャンネルを利用した(チャンネルの API などではなく)コード片になる。(「パターン」が存在する: Advanced Go Concurrency PatternsGo Concurrency Patterns: Pipelines and cancellation
  • これらのパターンは抽象化・ライブラリ化できてもよさそうなものけれど、Go にはジェネリクスがないので毎回同じようなコードを書くことになり、つらい。

たしかになーって思ったけど、その後に Go Is a Shop-built Jig - CocoaphonyGo はショップ製の治具(ジグ)だ - tl;dr)を読んで、なんでも綺麗に抽象化しようとする姿勢が Go のやり方に合ってないんじゃないかと思った。

Zapier におけるリモートメンバーの採用とチームビルド

From 3 to 16: How to Hire and Build a Remote Team - Zapier

Zapier は3人の創業者から世界中に散らばる16人のリモートチームにまで成長した。その採用を経ての知見と、手法について。

  • まず、どんなリモートワーカーを優秀とするか決める。
    • 自分で優先づけできるひと。
    • テキストコミュニケーションできるひと。
    • 仕事仲間以外にその人を助けてくれるひとがいる(ローカルサポートがある)こと。
  • 募集するときに、どんな仕事をして欲しいかをはっきりさせる。
    • 分からなかったら自分たちがその仕事に一週間でも就いてみるといい。
  • 採用フロー。
    • ZapierではTrelloをつかってる。Zapierの機能により、応募メールが自動的にカードになる。
      • 採用フローに入ったら誰かをその担当に割り当て、フローを停滞させないようにする。これが大事。
      • Trelloはチームメンバー全員が見られるようになっている。
    • 応募はレジュメに頼らない。
    • ビデオチャットによる面接。実際に対面しての面接はスケジュール調整が大変なのでしない。
    • 実際の業務をしてもらう。
      • そうすることでチームメンバーと多かれ少なかれやりとりをすることになる。
      • [海外の採用系エントリ読んでるとこの手のやつが多いけど、応募者の負担はどうなんだろう……]
    • 最後に、チーム全員の前でプレゼンしてもらい、皆に感想を聞く。これを通過すると採用。