Fun! Done! Learn! で話してきました
一番好きな付箋はベン図の外に貼られた付箋です。
先日開催されたDeveloper Summit 2019とScrum Fest Osaka で話をしてきました。
といっても、私だけで出たわけではなく
Coaches Retreat OkinawaでFun! Done! Learn!を一緒に作ったチームメンバーと話しをしてきました。
デブサミ版はこれ
speakerdeck.com
SFO版はこれ
speakerdeck.com
やりかたのフォーマットは
日本語版はこちら
qiita.com
英語版はこちら
medium.com
@yattom と計画に使ってるケースの話をしたら盛り上がったので、メモついでに書いておきます。
よくやるやりかた
(Fun! Done! Learn!を一通りやったあとにやります。)
1. 一人1個磁石を持ちます。(磁石じゃなくてドットシールでもok)
2. 今回のスプリントが自分にとってどういうスプリントだったのか、ベン図のエリアに磁石を置きます。
ここでまた話が盛り上がっても良いです。
例1)このスプリントは学びばかりであった。。。と考えてLearn!のエリアに置く。
例2)このスプリントはレビューでもいいフィードバックがもらえて学びと価値のデリバーができた。と考えてLearn!とDone!の重複エリアに置く。
3. 前回のボード(※後述)と見比べて、前回のふりかえり終了時と、何がどう違うのか話し合います。
4. 次のスプリントではどこに磁石を置きたいのか考えて、各自磁石を配置します。
例1) 次のスプリントで新しいライブラリ使いそうだから学びが多そう。と考えてLearn!のエリアに置く。
例2) 次のスプリントは目玉機能の実装に入るしリファインメントでだいたいなにやるかわかってる。と考えてFun!とDone!の重複エリアに置く。
例3) 次のスプリントは黙々とやっつけるフィーチャーが多いのでDoneの鬼になる。と考えてDone!のエリアに置く。
例4) 次のスプリントはレビューで超盛り上がりそうなイケてるフィーチャーが多い。と考えてDone!のエリアに置く。
※3.で見比べる前回のボードは、前スプリントのふりかえりで作った4.のボードです。
次のスプリントで自分たちがどういう狙いでいるのかを見えるようにするのが目的です。
ふりかえりのFun! Done! Learn!ではチームの中、自分たちについて考えて
この磁石の分布になるためにはどう進めていくと良いのか。磁石が前回ボードとずれる理由は何なのか。磁石が特定のエリアへかたよる理由は何なのか。
を話しながら進めていけると良さそうです。
Appium1.9.1でパラレルに実機テスト(iOS)を実行する方法
並列で実機テストを実行したいけどうまく動きません!
という質問が来たので、どうやったら実行できるのか調べてみました。
ちなみにAppiumのマニュアルはこちら。
Setup for Parallel Testing - Appium
まず、SeleniumをGridモードで立ち上げます。
> java -jar selenium-server-standalone-3.141.59.jar -role hub
今回は手元にiPadが2台あるので、2台持っているノードを作っていきます。
iPad-1
- wdaLocalPort:8100
- webkitDebugProxyPort:27753
iPad-2
- wdaLocalPort:8200
- webkitDebugProxyPort:27754
ポート番号は空いている任意なものにしてください。
設定ファイル的にはこんな感じになります。
{ "capabilities": [ { "platformName": "iOS", "platformVersion": "12.0", "deviceName": "iPad-1", "browserName": "Safari", "language": "ja", "maxInstances": 1, "platform": "MAC", "udid": "<<お手元のデバイスのUDIDに変えてください>>", "wdaLocalPort": 8100, "webkitDebugProxyPort": 27753 }, { "platformName": "iOS", "platformVersion": "12.0", "deviceName": "iPad-2", "browserName": "Safari", "language": "ja", "maxInstances": 1, "platform": "MAC", "udid": "<<お手元のデバイスのUDIDに変えてください>>", "wdaLocalPort": 8200, "webkitDebugProxyPort": 27754 } ], "configuration": { "cleanUpCycle":2000, "timeout":30000, "proxy": "org.openqa.grid.selenium.proxy.DefaultRemoteProxy", "url":"http://localhost:4723/wd/hub", "host": "localhost", "port": 4723, "maxSession": 10, "register": true, "registerCycle": 5000, "hubPort": 4444, "hubHost": "localhost" } }
では立ち上げていきます。
>appium ---no-reset --nodeconfig node-config.json
Selenium GridのConsoleを見に行くと2台認識しているのが見えます。
サーバー側が立ち上がったらAppiumのテストの実行準備をしましょう。
今回はruby + rspec + appium_libで実行します。
Desired Capabilitiesに wdaLocalPort
と webkitDebugProxyPort
を設定します。
並列実行する場合には、このDesired Capabilitiesを複数用意して
各ポートがそれぞれのデバイスに向いているようにします。
今回の例ですと、 8100 / 27753 と 8200 / 27754 になります。
require "rubygems" require "appium_lib" desired_caps = { caps:{ platformName: "iOS", versionNumber: "10.0", deviceName: "iPad", udid: "<<お手元のデバイスのUDIDに変えてください>>", app: "<<お手元のアプリへのパスに変えてください>>", automationName: "XCUITest", wdaLocalPort: 8100, webkitDebugProxyPort: 27753 }, appium_lib: { server_url: 'http://localhost:4723/wd/hub', wait: 10 } } RSpec.configure { |c| c.before(:each) { @driver = Appium::Driver.new(desired_caps).start_driver @driver.manage.timeouts.implicit_wait = 5 Appium.promote_appium_methods Object } c.after(:each) { @driver.quit } }
実行すれば、それぞれの端末でテストが動作します。
余談:
このページ内にwdaLocalPortの話1個も書いていないんだよね。。。
Appium周りはこういうのがよくあってつらい。
アジャイルコーチの道具箱 – 見える化の実例集 のレビューをしました
アジャイルコーチの道具箱 – 見える化の実例集
(Jimmy Janlén著、原田騎郎・吉羽龍太郎・川口恭伸・高江洲睦・佐藤竜也訳)
のレビューをしました。
とてもおもしろい本で、挿絵もユニークです。(ここ大事)
さらっと読める量ではありますが、 1ページ1実例なのでパラパラめくって読む方が良いと思います。
また、一つ一つの実例がよく考えられており、「あ、これおもしろいやってみよう」と思えるものが多く
記載されています。
前回のエントリ(KPTをゲームにする)は、原著に触発されて生まれたものではあるわけですが
オリジナル要素のある新しい見える化を思いついた方は、是非公開していただけると
良いなーと思います。
レビュアーの個人的な感想としては永瀬美穂やばい。
吉羽さんのブログ
www.ryuzee.com
日本語訳はこちらです!
leanpub.com
原著はこちらです!
leanpub.com
KPTをもっとゲームにする方法(キルストリーク方式)
面白くKPTを回す方法を思いついたのでメモ。
達成したいこと
(補足)キルストリークって何?
- FPS系のゲームにはキルストリークというのがあります。
- 敵に倒されないで、連続して敵を倒すと、倒した数に応じてスキルが使える。
- 倒せば倒すほど効果的なスキルが使えるようになります。
- これをKに当てはめたものです。
基本ルール
- チームでKPTに対し以下の目標値を設定する
- K
- 何スプリント持続してやれていたら、「意識しなくてもやれる状態」といえるか。
- T
- 基本的にKに変化してからやるのが良い気がする。
- ただし、いつまでにやる等きめたTは下記のペナルティあり方式でやるのも良いかも。
- P
- 何度か登場するようなPにつけると良い?(思案中)
- K
- 目標値は各ふりかえりで見なおしても良い気がするが、基本見直しなしが良い?
- 目標値の半分成功できなかったら見直すと良いか。
- 4連続が目標だけど2連続で終わる事が2回連続した等。
- 目標値の半分成功できなかったら見直すと良いか。
持続数の数え方
- 大きく思いついてるのは下記の方式
- 連続達成数をカウント
- 連続達成数をカウント(ペナルティあり)
- 三振方式
数え方について
連続達成数をカウント
- Kに振り返り何回分持続できたら、普通にやれるようになったかをカウントできるようにする。
- チェックでもドットシールでもなんでもok。
- このKは何回できてる状態を維持できたら、習得できたとみなすかをチームで相談する。
- Kに振り返り何回分持続できたら、普通にやれるようになったかをカウントできるようにする。
連続達成数をカウント(ペナルティあり)
- カウントをつけるところは連続達成カウント方式と同じ。
- 専用ルール
- できてないとカウントがマイナスされていく。
- マイナス何ポイントになったら罰ゲーム発動するか決めておく。
- 例:「週にペアプロを2時間やる」というKに対し
- 5ポイント連続したら成功
- -5ポイントに達したら失敗
- と成功と失敗のゴールを設定する。
- この場合の罰ゲームはチームに食事をおごる・ケーキを買ってくる等チームに対して行うものが良い。
- 例:「週にペアプロを2時間やる」というKに対し
三振方式
- たぶんKに設定する?
- やれてないとチームが思ったスプリントでストライクが1個カウント
- 3個貯まると、同じフロアの別チームやPOなどご近所さんに食事をおごる・ケーキを買う・ジュースを買う等する。
- Pに設定して、nスプリント期間中に3回同じPが出てきてほしくないと思う等に設定してもいい気がする。
Keepバーンダウン?(表現は思案中)
- 達成して自分たちのスキルにしたKeep等にポイントを振っておく(ポイント単位や数字はなんでも良い。グミでもビングミバンサーでもなんでも。)
- 達成ポイントに応じて、チームがなにか一つご褒美がもらえる等の仕組みを用意する。
WIP制限
- 欲張ってカウント対象のKを増やすかもしれないが、あまりに多くのKは逆に達成できないのでカウントするKは絞ったほうが良さそう。
- はじめはチーム人数*0.8くらいがいい?(最適値はわからない)
ここはこの方が良いのでは。ここがダサい等あると思いますが、とりあえず思いついたメモです。
CSPになりました。
CSPになれました。
伊藤さん(id:hageyahhoo)のCSP申請方法記事を見ながら半年くらい放置してたんですが
たまたま、スクラム道周りでCSP取得者が増えてきたので、波に乗ってみました。
取得方法は伊藤さんのHow to acquire CSP/「認定スクラムプロフェッショナル」の資格を取得する方法 - THE HIRO Saysを参照していただくとして…
手持ちのSEUは大体申請時に使ってしまったので、Regional Scrum Gathering® Tokyo に参加するなどしてまた貯めていかないとですね。
バッジを貼ってみた。
思い立ってCSMとCSPOのバッジを貼ってみた。
特に意味は無い…
次回の埼玉道場について
おはようございます。
多忙にターボチャージャーが付いて襲われてるいんだれです。
もう一月も終わりかけてますが
次回の埼玉道場は、2月下旬辺りに予定しています。
また、決まり次第告知します。