tuneの日記

アジャイル開発、組織変革、マネージメント、ファシリテーションについて学んだことの記録

LeSS Study LeSS本読書会 第3回

LeSS Study LeSS本読書会 第3回

第2回に引き続き、恵比寿 Redhatさんでの開催でした。 第2章の残りが対象でしたが、今回も途中の議論が盛り上がり完走できませんでした。

Q: 設計ワークショップはいつやるのか?

A: 必要なときにやる、いつやってもよい。

設計ワークショップは第2章の実際のLeSS開発事例で紹介されていた取り組みで、複数チームが関係する開発・修正がスプリントで生じた場合、事前に設計スプリントや設計ストーリーをやることなく、スプリント計画前後で関係するメンバーが集まり短期間で設計を済ませるという取り組みです。本の例ではスプリントプランニング2の後になっていましたが、設計ワークショップによって依存ストーリーやタスクの見落としなど気がつくこともあるので前にやっても良いよという話をしました。

Q: LeSSをどうやり始めたら良いのか? 導入手順は明確に規定されているのか?

A: 特に規定されていない。やりながら学ぶ。

SAFeの開発経験がある方からの質問でした。SAFeは導入手順が細かく規定されており、その通りに従っていけば悩むことがないそうです。とはいえ手順が多くて導入コーチ無しには始められない気もするのですが…

LeSSでは導入規定は特に規定されていません。ただおすすめの導入タイミングはチームメンバが増えてしまったことで2チームに分割する必要が生じた時です。他のスケーリングフレームワークよりもオーバーヘッドになる役割やセレモニーが少なく、スクラムを自然とスケールさせられます。

いきなり大規模に始めるのではなく、まずはうまくスクラムが回せる1チームを作ってからスケールさせるのが定石と何人かの方がおっしゃっていました。

Q : LeSSはうまく行くのか?

A: うまく行くよ!

「LeSSが使えると思って勉強会をやっているのか、使えるかわからないから勉強会をやっているのかどっちか」という質問でした。 実際にLeSS経験があるのは私一人だったようですが、「うまく行くよと」お答えしました。

Q: プロダクトオーナーにいつ成果物を見せるのか? スプリントレビューまで待つ?

A: いつでも、できたらなるべく早く見せる。

スクラムでやりがちな間違いとして、チームが完了させたストーリー・アイテムをスプリントレビューまでプロダクトオーナーに見せないというものがあります。できたものは早く見せた方がフィードバックがもらえるのでどんどん見せましょう。

アンチパターンとしてスプリントレビューで初めて見せると、スプリントレビューが細かな進捗確認の場や、成果物の出来栄えチェックの場になりがちです。

Q: チームは「コードでコミュニケーションをとる」と短くかかれれているが、込められている意味が大きい。

質問ではなく感想ですが、LeSSでは全チームが全コンポーネントを触り、頻繁に統合することで互いの開発が関連することを早期に検知します。コードがコンフリクトしたり、テストが通らなくなったり、設計に食い違いが生じたりなど。問題が生じたら相手の席まで歩いていき、話し合いを行います。

頻繁に統合を行うにはブランチを切らず、マスターで開発をする癖をつける必要があります。ワントランク開発 - tuneの日記で紹介した内容ですが、多くの開発では「最高のプルリクエスト」を追い求めがちです。

Q: コンフリクトしないの?

A: 特に問題になることはない。

作業に支障をきたすほどコンフリクトするのであれば実装や設計がまずい。 テストを回し終えないと次のコミットができないルールがあるのならば、テスト時間が長いなど別の問題を抱えている可能性もある。

コンフリクトしないように事前の設計やタスク分割を頑張るのではなく、細かくマスターに修正を入れ込んでいくやり方を習得したり、テストの実行時間を短くしたりして、根本的な解決を目指す。

Q: オーバーオールレトロスペクティブとは?

A: プロダクト開発全体の課題を考える場である。

チームごとの振り返りの後に行われる、複数チーム横断でプロダクト開発全体の問題を議論する場である。

私が勘違いしていたのは

  1. チームの振り返りの共有会では無い。
  2. チームの問題のエスカレーションの場では無い。

の2点です。


大規模スクラム Large-Scale Scrum(LeSS) アジャイルとスクラムを大規模に実装する方法

大規模スクラム Large-Scale Scrum(LeSS) アジャイルとスクラムを大規模に実装する方法

Peterさんとアジャイルリーダーシップについて語ろう に行ってきました

GROOVE Xさんで開催されたスクラム実験室開催のイベント、「Peterさんとアジャイルリーダーシップについて語ろう」に行ってきました。資料は後日公開されるそうですが、記憶が確かなうちに内容をまとめておきます。

講演者のPeter BeckさんはドイツのアジャイルコーチでDas SCRUMTEAMという会社の創業者とのことです。

はじめに

f:id:tune:20190327212316j:plain
顧客が本当に欲しかったもの : 出典 University of London Computer Center Newsletter No.53

顧客調整・プロジェクト運営の難しさをよく表した「顧客が本当に欲しかったもの」の絵ですが、出典は1973年に遡るそうです。アジャイルな開発に取り組む理由は顧客が本当に欲しいものを作るため。プロダクト開発では何を作るかとどう作るかについて不確かなものがいくつもありますが、アジャイル開発は両者が不確かな状態で効果がある開発手法です。

「リーダーシップ」とは何か、さらに「アジャイル」なリーダーシップとは?

リーダーシップに関するPeterさんによる定義は下記でした。

Leadership is the way to lead others to decision.

よくマネジメントや他人を導く意味で使われる言葉ですが、影響力を行使し、他の人に決断を促すことがリーダーシップだということです。この定義だとスーパーのお菓子売り場で目をウルウルさせながら親にお菓子をねだる子供もリーダーシップを発揮しているということになります。確かにストレートにお願いするのも、駄々をこねるのも、かわいさにうったえかけるのも、子供にとっては取れる選択肢の1つではあります。

アジャイルリーダーシップはAgileに言葉をくっつけて新しいものに見せかけるバズワード(Modern Agileとか、AgileHRとかかな)の一つ・・・ではありますが、Peterさんは下記のように定義していました。

Agile Leadership is the way to lead others to decision in fast changing environment.

スクラムフレームワークが提供する3つの役割とバランス

Peterさんは冒頭で

Scrum is Agile Leadership (スクラムアジャイルリーダーシップそのものである)

と言っていたのですが、その説明になります。

Scrumはプロダクトオーナー(PO)、開発チーム(Team)、スクラムマスター(SM)の3つの役割がありますが、これより多くても少なくてもスクラムは広まらなかっただろうと考察しています。それはバランスが影響しており、2つだとバランスの偏りが生じてしまい、4つ以上に増えると固定的になりアジャイルさ(俊敏さ)が失われるだろうと言っていました。

  • POの役割:注力領域を明確化する
  • Teamの役割:顧客価値を作る
  • SMの役割:アジャイルな組織への変革を促す、POが意思決定できる環境を整える。

各役割が行使できるリーダーシップと影響力

f:id:tune:20190326205938j:plain
リーダーシップと影響力

PO/Team/SMはお互いが行使できるリーダーシップを持って相互に影響を与えあい、バランスを保ちつつプロダクトを大きくしていきます。PO/Team/SMごとに行使できる行動と、影響力の大小をマッピングして話し合うワークショップを行った結果が上の写真です。普段何気なく行なっている行動が実は他者の行動や決断を促していたり、強い影響力を持つ行動が必ずしも組織の後ろ盾を必要としていなかったり、ビジョン策定や予算・リソースの配分など普段会社の業務として当たり前にやっていたことが実はこれも影響力の行使だなと気が付いたりしました。

おわりに

PO/Team/SMいずれも重要な役割ですが、SMが組織変革の担い手で「全体最適を考えなければならない」立場だということは日頃の業務改善でついつい忘れがちだと思います。

その他

Peterさんの会社で作ったLeSSポスターの出来がよかったので写真に撮らせてもらいました。英語版でも十分欲しい気持ちになりましたが、日本語訳を作って壁に貼っておきたいわかりやすさです。

f:id:tune:20190326211439j:plain
LeSSの仕組みを紹介したポスター

LeSS Study LeSS本読書会 第1回 & 第2回に行ってきました

f:id:tune:20190321134657j:plain
サインをもらいました

大規模スクラム Large-Scale Scrum(LeSS) アジャイルとスクラムを大規模に実装する方法が1月末に発売され、LeSSの勉強会「LeSS Study」が読書会として再スタートすることになったので行ってきました。アジャイルスクラム・LeSSに関して突っ込んだ議論ができるとても楽しい会なのですが、ピザ&ビールを食べながらで翌日には記憶が曖昧になってしまうのが難点です。

LeSS Study LeSS本読書会 第1回

秋葉原のクラスメソッドさんでの開催でした。 内容は「読書会の説明」、「LeSS本の説明」、「LeSS でもっと多く: 2ページ」まで予定通り進みました。

以下質疑応答でかろうじて覚えているメモです。

Q: LeSSはスクラムなのか

A: スクラムである。原則にも「Large-Scale Scrumはスクラムである」と明確にかかれている。

LeSSはスクラムをベースに新しい役割やイベント、ルールを当てはめたものではなく、1つのスクラムを複数チームでやろうとした際に考慮した方がよいアドバイス集のようなイメージです。

Q : LeSSを構成する原理・原則が多いのではないか?

A: 確かにそうかも。

「透明性」や「顧客中心」などスクラムと重複しているものもある。 「LeSSはスクラムである」ならば、スクラムの原理原則をベースとして、LeSS固有の追加事項だけに記述を留めたほうが良いのかもしれない。

Q: システム思考ってどんなもの? 勉強にいい本ある?

A: 相互に作用する要素・関係性を整理し、どこを起点に改善を図っているかを考えるやり方。

例えばプロジェクトが遅延すると追加要員が送られる。開発メンバが増えるとコミュニケーションコストが増えさらにプロジェクトは遅延する。プロジェクトが遅延すると追加要員が送られ…といったよくある事象を関係で整理し、改善点を検討する。

LeSS Study LeSS本読書会 第2回

恵比寿 Redhatさんでの開催でした。 第2章が対象でしたが、途中の議論が盛り上がりスプリントプランニングぐらいしか話していません。

Q: スプリントプランニング1に代表者しか来ないとあるけど、残りの人は何しているの?

A: 対して長くないから気にしなくても大丈夫。

1チームスクラムのプランニングと異なり、LeSSのスプリントプランニング1はどのチームが何のストーリを担当するかを「ざっくりと」決めるものなので短いです。プロダクトオーナーがバックログを付箋に書いて持ってきて、チーム代表者の前にがさっと置き、代表者が好き好きに好きなものを持っていくぐらいのイメージです。事前にプロダクトバックログリファインメントでどんなストーリーが来るのか確認しているのでここで長い議論になることはないのだと思います。

Q: スプリントプランニング1でバックログの優先順位を考慮しなくて良いのか?

A: チームにストーリーの分配が終わった後で優先順位が高いものが残った場合、プロダクトオーナーがチームと交渉すれば良い。「このストーリーと交換できないか」とか。

Q: 書籍では「預託チーム」「取引チーム」「非デリバティブチーム」となっているが、チーム分けはどうするのか?

A: 顧客視点の機能で分けるフィーチャーチームが基本。コンポーネントチームではない。

とはいえ書籍のチーム名はコンポーネントチームに見えなくもない。「預託コンポーネント」とかありそう。 実際の現場では機能と関係がないチーム名をつけ、「預託に強いチーム」「取引に強いチーム」といった認識を裏で持っておくぐらいで良いが、書籍での説明のしやすさのため今の形に落ち着いているのかもしれない。

スクラムマスターは保育園の先生に似ているという話もあるので、「うさぎさんチーム」「くまさんチーム」といった名前でも良いかもしれない。

Q: 単一チームでプロダクトバックログリファインメント(PBR)したストーリーを別チームに割り振ってもいいの?

A: ダメじゃないけど、どのチームが担当しても良いストーリーは複数チームでPBRした方が良い。

「複数チームPBR」は、A・B・Cの3チームがあった時、3チームで順繰りに見積もりを行なって結果をまとめるということではない。A・B・Cのメンバをごちゃ混ぜにし、3グループに分け、3グループに見積もり対象のストーリーを1/3ずつ分け、それで見積もりを行う方式である。したがって見積もりに要する時間は単一チームに見積もらせる時と変わらない。

複数チームPBRを行う利点として、チーム横断で議論できることで観点の見落としが減り、ストーリーポイントなどの見積もりも自然と揃ってくることがある。また実際にチームがストーリーに着手した際も誰かしらストーリーの詳細を把握している人がチームにいることが期待できる。

Q: スプリントプランニング1でチームに自由に取らせると偏りが出て、得意なものばかりやるのでは?

A: あるチームが優先順位の高いストーリーばかりを担当するなど、スプリントを始めるにあたって課題がある場合、プロダクトオーナー・他チームとストーリーの交換など調整をすることになる。この時に「得意じゃないけど、担当できる」ストーリーが割り当てられることになるので、スプリントを長く続けていると偏りは出にくくなる。

Q: スプリントプランニング2は共有スペースで行うの?

A: その通り。複数チームで行う時は広い場所で行う。大きい会議室、食堂など。

計画時に他チームと調整が必要になった時にすぐに話せるようにするため。 リモートサイトのチームがあるときはスプリントプランニング2の時はテレビ会議を繋ぎっぱなしにし、部屋のある一角に移動したらすぐに話し始められるようにする。


大規模スクラム Large-Scale Scrum(LeSS) アジャイルとスクラムを大規模に実装する方法

大規模スクラム Large-Scale Scrum(LeSS) アジャイルとスクラムを大規模に実装する方法

awesome-agile-workshopを作っています

github.com

はじめに

少し前に流行った便利なライブラリなどをまとめる "awesome-XXX"のノリで、アジャイル開発、スクラム開発、チーム開発で使えそうなアクティビティ・ワークショップの情報をまとめてみました。日々いろんな取り組みの情報が流れてきますが、忘れてしまいがちなので。

漏れてるもの、もっと良い情報源などありましたらPull Requestお待ちしています。

変革の軌跡【世界で戦える会社に変わる"アジャイル・DevOps"導入の原則】

変革の軌跡【世界で戦える会社に変わる

変革の軌跡【世界で戦える会社に変わる"アジャイル・DevOps"導入の原則】

だいぶ前に読んでいた本ですが、まとめてみました。

この本はどんな本か?

HPのプリンタでのファームウェア開発における事例をもとに、巨大な組織でハードウェアが絡む製品開発をアジャイルに進めるやり方を紹介した本です。

他のアジャイル本と比較して上位の経営幹部向けだと感じました。DeoOpsなど実践に関する説明は少ないです。

大組織におけるソフトウェア開発の変革

既存の大組織の多くがソフトウェア開発・デリバリーに苦しんでいる。 その結果、市場で競争したり、ソフトウェアでイノベーションを起こすことが困難になってきている。

大企業でソフトウェア開発を変革するには、チーム同士が協力し価値を生み出す仕組みづくりをまず考える。 それぞれのチームの働き方はその次である。

経営幹部が主導する

単にアジャイルに取り組むことを目的にしない。

エンタープライズレベルの継続的改善プロセスは経営幹部が作る必要がる。 なぜならば組織内のリソースを割り当てられる唯一の存在であり、バリューチェーンの端から橋までを見ることができるからである。

経営幹部はエンタープライズレベルで計画を推進し、進捗を把握できる戦略的な目標を設定する。

  • 通常4〜7個の上位目標
  • 測定可能な小項目

経営幹部は組織全体と共同して目標を設定し、この目標が重要であり達成可能だと全員が感じられるようにする。

アジャイルに取り組むための「正しい方法」を決めてしまうと、次にその正しい方法を全員に教えなければと思い始めてしまう。 リーダーとして、可能な限り目標ととともにフレームワークを提供し、仕事の進め方に関しては最大限の裁量をチームに与えることが重要である。 これによってチームは仕事により興味を覚え、結果に対するオーナーシップを高めることになる。

ビジネス目標を設定し、継続的改善プロセスを実施し続けることで、経営幹部やマネージャーを巻き込み、彼らに変革をリードさせる。 組織全体にわたる計画プロセスやデリバリープロセスの改善に注力する。

頻繁に結合する文化を作る

ブランチを切らず、全員がメインブランチで開発を進める。これにより頻繁な統合を促すことができる。 メインブランチで開発するにはテクニックが必要である。

  • 既存のコードを壊す変更を実装しない。
  • 既存の機能を壊すことなく、コードの大規模なリファクタリングを可能にする。
  • フィーチャーフラグなどを導入し、新しいコードをコミットしつつ、システムの他の部分からは使わせない。
  • 既存の機能を壊さずにデータベースのスキーマを変更する。

自動テストなどを拡充し、メインブランチは常に安定する状態を保たなければならない。

  • コードをコミットする際、自動化された受入テストに合格するまでその場を離れてはいけない
  • 壊れたビルドに続けてコードをコミットしてはならない。

アジャイルに開発された戦闘機 SAAB社グリペンについて

f:id:tune:20130924141653j:plain

はじめに

アジャイル開発、スクラム開発の研修資料で「戦闘機だってアジャイルに作れる」という事例紹介で、よく引用されている気がするのですが、なかなかまとまった情報が見つからないのでここにまとめておきます。

SAAB社・グリペンについて

グリペンの特徴

  • 戦闘機が帰還したのち、システムをシャットダウンしてから再始動、再び滑走路へ出ていくまでの時間「ターンアラウンドタイム」が10分。
    • F-15F-16では、おおむね2時間から3時間
  • 機体は可能な限りシンプルに、かつ必要な機器が最低限となるよう、設計時から配慮されている。
    • 1名の監督者と5名の整備員でターンアラウンド中の整備ができる。
    • 設備の整った航空基地だけでなく、高速道路を流用した臨時飛行場でも上記対応が可能。
  • 製造単価から燃料、廃棄に至るまでに必要な経費「ライフサイクルコスト」が1機あたり約100億円と安い。
    • 航空自衛隊が擁する三菱F-2戦闘機のライフサイクルコストは1機あたり370億円

SAAB社におけるアジャイル開発

モジュールごとにチーム開発

ソフトウェア開発におけるオブジェクト思考的な考えを取り入れ、コクピット・機体・エンジンなどの単位でチームを組織している。

スクラムの適用

スプリントは3週間区切り、全チームがタイミングを揃えている。

デイリースクラムは4096人が開発に従事し、毎日Scrum of Scrumsで1時間内に情報共有を終える。

  • 7:30 Daily Scrum
  • 7:45 Scrum of Scrums
  • 8:00 Scrum of Scrum of Scrums
  • 8:15 Scrum of Scrum of Scrum of Scrums
  • 8:30 Executive Action Team

その他

会社の誰もがいつでも現在の3Dモデル、ソフトウェアにアクセスすることができる。またこれらを元にしたフライトシミュレータを使うことができる。

情報源

Agile In Military Hardware - How the SAAB Gripen became the world’s most cost effective military aircraft

Owning the Sky with Agile

trafficnews.jp

Engineering Manager Meetup #4で「1つの大きなプロダクトをみんなで作る」を話してきました #em_meetup

はじめに

昨年からSlackに参加していたEngineering ManagerコミュニティでMeetupがあるというので参加 & 発表してきました。 開催してくださった ohbaryeさん、素敵な会場を提供いただいたRettyさん、発表にコメントいただいたみなさま、どうもありがとうございました。

engineering-manager-meetup.connpass.com

Twitterでいただいたコメント

機能別チーム、技術負債返却チーム

みる範囲が明確になるのはメリットだけど、コードが別れて独自進化を遂げていくのが問題なんですよね。

みんなで立ち止まって一斉に負債返却するとまだいいんですけどね。短期で終えないと難しいと思っています。

あるあるなんですね!

コンポーネントチームの問題点

あるあるです、でもコンポーネントチームやめられないプロジェクトが多いなーと感じています。

フィーチャーチームについて

勉強会で紹介したサイトは下記です。「Googleで"フィーチャーチーム"と検索し、1番目に出てくるサイトに全て書いてあります。」

featureteamprimer.org

そうなんです!私も研修受けた後に知ってびっくりしました。

チーム名の決め方

ぜひ試してみてください!

テーマを持たせて決めるのも面白いですね!

自分たちで決めると愛着湧くみたいですよ。

コンポーネントに監督者を置く

監督者を置いて、監督者を中心にチームを作っちゃうからコンポーネントチームができるのかなと思っています。

技術を見れる人がたくさんいるならコミュニティー感を出すために「メンター」がいいと思います。 「コードオーナー」は意味があまりブレないので、コンポーネントみれる人が少ない時はおすすめです。

LeSS/LeSS本について

ググりにくい単語です。"less agile"とか"less scrum"とするといい感じです。

売れてる気がする!

その他

学びは多かったです。ただ実は「組織変更」はしていません。組織は既存のまま、プロジェクト体制だけLeSSでいろいろいじってます。組織を作ってプロジェクト体制を整える会社が多いですが、うまくいくプロジェクト体制を作ってから組織を後から直す方が楽じゃないかと思っています。

実は私も行ったことがありません。本が出て読書会がリブートするという話もあるので期待しています。

SAFeもアジャイル開発をスケーリングさせる手法ですがアプローチが異なります。LeSSは調整役をできる限り置かないアプローチですが、SAFeは調整役を積極的に置く仕組みです。

バックログアイテムに重い責任を伴うものが紛れていると、ババを引いたチームが出てきてしまうことはありえますね。 いいお題として対策を考えてみることにします。

こちらこそありがとうございました!