2015/11/20(木) 「TypeScript速習会@Wantedly」に参加してきました。
connpass
http://wantedly.connpass.com/event/22954/場所はJR目黒駅から徒歩15分くらいにあるWantedly白金台オフィスです。
参加者は社外の方が8名くらい? + 社員の方15名くらいでしょうか。
会社でも、あと個人的にも、必要に迫られてAngularJSを触っているのですが、TypeScriptでコードを書こうという動きがあります。
そんなわけで、どっかで勉強するキッカケが欲しいなぁ、と思っていた矢先、この勉強会をタイムラインで見かけて参加することにしたのでした。
なので私、TypeScriptはこの日が初、という超初心者なのです。
この日は残業もそこそこにして会場に向かったのですが、cpnnpass募集ページの地図が間違っていて、
- 募集ページ上に表示されている地図をPCから見ると、正しい場所(旧クックパッドさんと同じビル)を表示している
- 募集ページ上に表示されている地図をクリックすると、5丁目なのに3丁目の旧オフィスを表示する (笑
という仕様にハメられ、旧オフィスに最初行ってしまったのでした。(スマホから地図を見ると、後者の表示になるので)
ただ、会社を出る前にPCから地図を確認したときに、「あ、ここは旧クックパッドさんと同じトコか」と確認していたので、
スマホで表示される地図がおかしいのだな、とその場で気づき、なんとか開始時間前に到着できました。
ちなみに懇親会で社外からの参加者さんと会話したら、みなさんも間違って旧オフィスへ行ったそうで (笑
TypeScript速習会上記をベースに講義&ハンズオン形式で進めていきました。
まず環境構築ですが、TypeScript用のエディタとして最初はEclipseプラグインの
TypEcs を試してみました。
ただ、動作がちょっと不安定だったこともあり、
Visual Studio Codeに乗り換えました。
TypeScript開発元のMicrosoftということもあり、中々快適です。
まず、型推論が働きます。型をウリにしているTypeScript、この機能はとてもありがたいですね。

当然、コード補完も効きます。かなり快適にコーディングできます。デフォルトで色も付きます。

エディタの左ペインはエクスプローラ風味。エディタ上でファイル操作も完結します。

あと、ソースコードの変更を検知してコンパイルしてくれる仕組みを導入しました。
npm run tsc (tsc -w)で起動します。

こんなカンジでソースコードの変更を検知してコンパイルしてくれます。
あと、複数のTSファイルをコンパイルした結果をbundle.jsとしてバンドルしてくれる watchify というツールも使いました。
こちらもリアルタイムで更新を検知してくれます。

こんなカンジでエラーも検出して知らせてくれます。
watchifyがbundle.jsに集約してくれるので、HTMLからは bundle.js のみをsrcタグで取り込めばよい、というわけです。
そんなわけで環境構築を行い、スライドに沿ってハンズオン形式で進めていきました。
ハンズオンのお題は「Canvas要素を使ったお絵かき」でした。最終形の成果物はこんなカンジ。

無事、最後の課題まで動作させることができました。
ちなみにスライドにはありませんが、最後の課題を動作させるためには「npm install lodash --save」が必要です。
★感想:勉強会のタイトルに「速習会」とあるように、この日は速習を意識した進行で、なかなか付いて行くのが大変でした・・・
ただ、Browserifyとか使ってソースコードの変更を検知してコンパイル&バンドルしたり、HTML5のCanvasを使った題材を作ってみたりと、中々濃い構成で学びが多く、結果的には良かったと思います。
勉強会終了後はそのまま会場で懇親会でしたが、ピザとビールも潤沢で、みなさんといろいろ意見交換しながら美味しくいただきました。
ビールがハイネケンの瓶だったんですが、ラッパ飲みで2本戴きました(笑
Wantedlyの皆様、講師の @seanchas_t さん、ありがとーございました。
2015/11/14(土) JJUG 「JavaOne 2015 報告会 @ 東京」に参加してきました。
DoorKeeper
https://jjug.doorkeeper.jp/events/33374Togetter
http://togetter.com/li/900025場所は日本オラクルです。
参加者は250人くらいでしょうか。13Fの、あの大広間が満席でした。
以下、個人メモ。
Opening & JavaOne 2015 over all伊藤 敬さん (日本オラクル)
<<スライドが公開されたらココに貼る>>
- 9000人くらいの参加者で、去年より微増だった。
- JavaOne4Kidsという小学3年生〜中学〜高校までの人向けのセッションが合って、450人ものKidsが参加した。
- 内容はJava、WEB、IoTなど。社会人レベルのコードを書く人がけっこういたのが印象的。
- 今年のJava Oneは、日本人の登壇者は10名くらいいた。
- Java SEは、特に目新しい紹介はなかった。
- Java MEは、この後に大山さんが話してくれる。来年9月にJava ME 9が出る。
- Java EEは、2017年半ばにJava EE 8のGAが出る。
Impressions of JavaOne & Java trends鈴木 雄介さん (JJUG)
カナリアリリース、ダークカナリアリリース、Chaos Monkeyといったキーワードが興味深かったですね。
---
全体的な感想と技術トレンドを話す。
Java One感想- 大きなアップデートなし。
- 来年にJava SE 9が、再来年にJava EE 8が出る。
- 今年は20周年頼りだった。20週年がなければ寂しいイベントだった。
- 大きな盛り上がりはなかった。
スコット・マクネリ- キーノートの最後に登場。Sunの創業者で60歳を過ぎてる。かなりやんちゃ。
- 「Javaプログラマにとって最悪な12のコト」という紹介で、4個でOracleをディスってた。
ORACLEとJava- ORACLEがSUNを買収してから、Javaの7, 8, 9が順調に進んでいる。SUNは予定外が楽しい会社だった。
技術トレンド- DevOps & Microservices
- Javaそのものが重要なのではない。Javaは基盤。
- Javaというワードが一回も出てこないセッションがあった。
- Javaプログラミングができればよい、という時代ではなく、ITサービス運用が重要な時代となってきた。
Microservice Architecture- サービスによってサービスを組み立てる。ボトムアップ。
- それに対して、SOAはトップダウン。
先端Webサービス系企業の取り組みが共有され、広がりつつある- Netflix, Twitter, ・・・
- 宗教的な理由により、AmazonとGoogleの社員はJava Oneに出れない、というのがあります(笑
カナリアリリース- ブルー・グリーンデプロイ、A/Bテスト
- 現行システムを動かしたまま隣に追加サーバ群を置いて2倍にし、新バージョンのアプリにアクセスを振っていく。
- トラブルがあったら旧システム側にロールバックする。
ダークカナリアリリース- 開発者にしか見えないリリースを、いきなり本番環境にする。
- Microserviceだと、サービスを動かそうとすると周辺サービスがいないと動作しない。
- 本番環境ならそれら周辺サービスがセットアップ済みなので、そっちのほうが楽で便利。
- 開発者しかアクセスできないようにした「本番環境」でテストするという思想。
Chaos Monkey- ランダムにサーバをダウンさせるOSS。
- 実際にAWSのインスタンスをダウンさせるのを日中にランダムにやってくれるOSS。
- わざとデータセンターをダウンさせることで、アクセスが別のデータセンターに逃げていく。
- 全体的なサービス品質を高めるために、部分的な品質劣化を許容する。
- 不運なユーザは存在するが、サービスがダウンするような事態にはならない。
- エンタープライズの発想とは異なる。
- Netflixだと、動画の瞬断は影響度が小さいのでこれが出来た。瞬断が生死に関わる医療システムとかでは真似できない。
品質モデル- ソフトウェアデザインの重要なポイントが変化している。
- 外部品質は、ふるまいの品質。
- 内部品質は、ソフトウェアがちゃんと動く、ドキュメントがちゃんとある、といった品質。
- 昔は「構造」、つまり内部品質が重要な時代があった。UMLをきちんと書きましょう、とか、デザインパターンとか。
- そのあとプロセス品質が重要な時代がきた。アジャイルとかユニットテストとか。
- 今は利用時品質に近いところまで制御できるところまできた。サービスを維持することが重要。
サマリ- 来年のJavaOneに注目。Java9リリース。
- Javaだけではないトレンドにも注目
- プログラミングだけでなくサービスにも目を向けましょう。
Java SE Update久保田 祐史さん (NTT)
Project Jigsawの紹介が興味深かったですね。全然知らなかったので・・・
---
何が大きく変わるか- JDK 9 ・・・ Module導入 (Project Jigsaw)
- JDK 10+ ・・・ HW, OSへの最適化
jshell- スクリプト言語みたいに、コンソール上でコードを書いてすぐ実行できるようになる。
Java.Doc.NextMilling Project Coin- アンダースコア "_" 一文字の命名が禁止になる。
Project Jigsaw- Jar Hellをなくすためにモジュール化の概念を取り入れた。
- モジュール -> パッケージ -> クラス -> フィールド&メソッド、という階層の最上位に位置し、パッケージより上のグルーピングを作る。
- パッケージのコンテナとしてモジュールを導入する。
- アクセス修飾子で、publicの種類が増える。API開発者にはより細かくアクセスを制限できるようになった。
Jigsawの考え方- jigsawはjetpackではなくシートベルト。
Java SE 講演から伊藤 博志さん (ゴールドマン・サックス)
<資料が公開されたらココに貼る>>
GS Collections- 「Eclipse Collection by example」という題目で発表したJava Oneの再演。
- GS CollectionsというOSSをゴールドマン・サックスで開発している。
- ただ、ソースコードはSubversionで内部で管理されていて、公開するときだけGitHubにリリースしている状況。
- この状況を変えたかった。
- GS Collections 7.0をEclipse Collections 7.0に移管することとなり、これによりコントリビューションを受け入れる体制ができる。
- Eclipse CollectionsはJava 5まで使える。
Map- JDKのHashSetはHashMapをラップしてるだけでひどい実装。メモリ効率が悪い。
- Eclipse Collectionsのmapはそれより6倍くらいメモリ効率が良い。
Hobson's Choice- JDKは選択肢が与えられているように見せかけていて、実は選択肢がない状況にある。
- いろんな場面でMapを使わざるを得ない状況というのが多い。
Java ME & IoT大山 弘樹 (Javaカンファレンス)
<資料が公開されたらココに貼る>
Java ME Embededは8.2が出る。
Java SE Embededは死・・・
そのくらいしか発表ネタが無い。組み込みなので、あんまり急にJavaが進化しても困る。
今日の発表、3分でオワタ。あとはJava Oneの話します(笑
Java Oneで各セッションの出口に置いてある投票機器がRaspberyy Pi2だった。ガムテープで固定した酷い手作りw
Java Oneで唯一のIoTのセッションを聞きに行ったら中止だった・・・
救いは、すぐ隣のセッションで「James Goslingの私生活を同僚が暴露する」という面白いセッションがあったこと。
Java EE Update ~その1~上妻 宜人さん
Servlet 4.0、JAX-RS 2.1、JMS 2.1、JPA 2.2などの最新仕様のお話です。
個人的にはRESTまわりを仕事で使ってるので、JAX-RSには興味あります。
あと、WildFly Swamというの、初めて知りました。Spring Bootは個人的に使ってますが、それに近い思想のようです。
Java EE Update ~その2~大中 浩行さん (グロースエクスパートナーズ)
せとあずさんとはお知り合いなので登壇前にお話してました。
Java Oneの時は、サンフランシスコに2週間ほど滞在してたそうです。裏山氏!
個人的には、MVC 1.0の話がとても興味ありました。
現在、弊社もStruts1ベースの開発フレームワークを刷新している最中で、RESTベースのアーキテクチャを模索しているところなのです。
Speaker Panel: How to be a speaker at JavaOne?モデレータ: 伊藤 敬さん (日本オラクル)
パネル: 寺田 佳央さん, 谷本 心さん, 伊藤 博志さん
Q1. Java Oneで講演してみてどうでしたか?谷本さんJava Oneは2回目の登壇だった。今回は自腹だったので高価だった・・・。
Javaのコミュニティが活発になるのに貢献できていいかなぁと思っている。
初参加の時は英語が通じるのか、恐怖があった。
自分が話したいテーマじゃなくて、受かるテーマを選んでCall for Papers(CfP)を出したので難しさがあった。
テーマは「ログの可視化」。他の人がやらなそうで面白そうなネタにした。
伊藤さんJava Oneは今回が初めて。発表はEclipse Collectionsのツテで、9月に決まったばかり。勢いのみで行った感じ。
寺田さんJava Oneは今回2回目。
今回もどうしても行きたかったので、自腹で飛行機とホテルを取った。
Java Oneのチケットは15万円くらい。去年まではオラクルの社員だったので、無料で入れた。
今年は他の人のセッションに乗っかる形で、タダで参加することができた。
Java関係の知り合いが発表するということで、「なんでもするから連名で登録して」とお願いした。
1セッションで2−3人登録できるの知ってたので、それを利用した。
相方に紹介したネタが面白かったということで、当日、セッション開始の10分前に、登壇してしゃべることが決まった。
ぶっつけなので、日本語のスライドを使った。会場は500名くらい。
ぶっつけ本番だったけど、終わったあと、多くの聴講者が「よかったよ」と言ってくれた。
1回目の時はめちゃくちゃ緊張した。
Java Oneは、セッションが面白くないと聴講者はみんなすぐ去っていく。
登壇中にみんないなくなっちゃったらどうしようと不安だった。
今年は気楽にやって、準備してなかったので日本のときのようにしゃべれた。
谷本さん自分の英語が伝わるのか、怖かった。でもちゃんと準備すれば聞いてもらえる。
寺田さんプレゼンの作りを日本と変えた。
日本だと、面白いネタが後ろの方まで出てこなくても、聴講者は最後まで聞いてくれる。
アメリカは最初の方でつまらないと部屋から出ていかれる。
Javaのスペックリードのセッションでも、つまらなかったらみんな帰っちゃう。
なので、「後で紹介するデモがとても面白いから、そこまでは絶対聞いてね」と最初に断ってから始めた。
伊藤さん日本はみんな真面目に聞いてくれるが、無反応なので、心の中で何を思ってるのかが分からないところがある。
良い手応えがあってもディスられてたり、その反対だったり。
アメリカは、すごい興味もってくれてる、とか、講演中でも聴講者のリアクションで反応がすぐわかる。
谷本さん資料の作りは日本でもアメリカでも、あまり変えない。
日本だと、最初で掴みを失敗すると、聴講者は聞いてるふりして聞いてないようなことになる。
なので日本では、最初に共感を先に持ってくるようにしている。わざとスベって、心をザワザワさせる。全部計算通り(笑
アメリカでは、最初にデモとか、本質を最初に持ってくるような構成にした。
Q2.今後、どんな人にJava Oneで講演してもらいたいと思うか。谷本さんJJUG CCCとかで登壇してる人は、Java Oneに行けばいい。
技術レベルは日本のほうが高い部分もある。
世界で活躍するとコミュニティが盛り上がるので、コミュニティで活動している人は是非Java Oneで講演してほしい。
子供がスピーカーするのを見てみたい。
寺田さん今日来てる人はJJUG CCCとか、日本でしゃべってほしい。それで、JJUG CCCとかでしゃべったら、次は海外にも行って欲しい。
あと、事例を持ってる人は、世界でしゃべってほしい。事例はCfPで受かる可能性が高い。
伊藤さんJava Oneの初日に各国のJUGコミュニティの集まりがあった。
Java Oneでの日本のツイートで4位だったが、全体を合わせると1位だと思った。
JJUGの幹事さんとか、Java Oneとかで話してみたらどうかと思った。
谷本さん日本は個人ってイメージがあるので、確かにコミュニティで行ければ良いですね。
ブラジルとかコミュニティが凄い。
Q3.あなたが習得した「Java Oneのスピーカーになるための極意」を教えてください。寺田さん会社とかで事例を持っていれば、ノウハウを紹介するようなCfPを出せば通りやすいのでは。
LambdaとかGigsawとかMVCとか、単品のテクノロジーをしゃべろうとすると、本家のしゃべる人が他にいるので勝つのは難しい。
それよりも、トラブルシューティングとかのが通りやすいのでは。
伊藤さんテクノロジーのプレゼンなら、使ってる用語は基本英語。会話よりプレゼンのほうが英語は楽。事前に準備できるので。
寺田さんアメリカだと、講演中に英語で質問がぼんぼん飛んでくるのは怖い。
谷本さん質問がある方は、Twitterで質問してください、と事前に断っておいた。
講演中に1人手を上げて質問しようとしているのが見えたが、見えてないふりをした(笑
伊藤さん英語を頑張るより、アメリカは日本より技術で凄いということもないので、しっかりと説明できるプレゼンが大事だと思っている。
スキルを気にするよりはマインド。チャンスがきたら行っちゃえ、的なマインドが大事。
谷本さんまず仕事を頑張れ。それでそのネタを話せ。
普段から話すことを心がけていれば、そのぐらいの差しかない。
趣味の範囲で話そうとしても、意味がなかったり面白くなかったりする。実際に仕事で使った痛みがないから聴衆に響かない。
なんらかの箔をつけないといけない。JJUGの幹事、とか、過去のJJUGとかのスピーカーの経歴、とかをCfPでアピールする。
寺田さんコンテンツ選ぶ側はORACLEの人だけでなく、コンテンツ委員会みたいのがある。
Javaに精通した人が選ぶので、流行りとか、為になりそう、というのを題目にして、ちゃんとリファレンスを付ける。
桜庭さんCfPを締め切り間際に出すとだいたい落ちる。
締め切りが終わってから登壇者を選ぶのではないので、なるべく早くCfPを出したほうがいいのは絶対。
寺田さん参加者は、参加するセッションの選択もちゃんとしないといけない。
ハズレのセッションとかも結構ある。
谷本さんCfPを出す時に、過去の発表の動画が明確に求められた。それでプレゼンスタイルをチェックされる。
なので、日本語でセッションしたときの動画を提出した。楽しそうに話してる動画を出した。
ぼそぼそとしゃべる人は、動画で落選するはず。
Q4.
Java Oneでスピーカーをやったらこんなメリットあった!というのがあれば教えて下さい。
伊藤さん
スピーカータグを貰えた。(首に掛けるやつ)
寺田さん
チケットが無料になる。あと、スピーカー専用の待機ルームがある。
谷本さん
転職しやすくなる。Java Oneに登壇してから、「転職しませんか」という案内が週に10通くらいくるようになった。
でも、登壇して会社の顔になると、転職するのは大変だと思う。
Q5.
来年スピーカーになりたい、と思っている皆さんに最後一言おねがいします。
谷本さん
以前私が登壇スルことになった時、山本ゆうすけさんが、「俺も出せばよかった」と言っていた。
なので「行きたい!」と思ったら、まずCfPを出すべき。とにかく出す。
私はCfPは2本提出した。日本の素晴らしさをアメリカの人々にアピールしたい。
寺田さん
山本さんはCfPを4本出していた。
伊藤さん
仕事を頑張るのやっぱ重要。
今年から登壇し始めたが、これまでの仕事で積み重ねてきた経験と自信があったから出来た。
なので仕事の普段の積み重ねは大事。
チャンスがきたらやってみよう、というアンテナが大事。
おわりに.
最後にパネラーのみなさんから一言。
寺田さん
Java OneやJJUGに関わらず、日本の技術者は優秀だと思う。
なので日本の技術者のパワーを世界に知ってもらうため、そしてコミュニティが更に広がっていくためにも、壇上に立って、自分の経験値とかを発表してほしい。
そうすればコミュニティも更に盛り上がるし、世界へも、日本はこんなに凄いんだ、と見せられるので、聞いてるだけでなく、登壇者側に立つように意識してほしい。
Javaの発展のために。
谷本さん
ポイントは2つ。
・コミュニティ盛り上げていきましょう
・仕事、頑張れ。
コミュニティとか勉強会に参加すると、それだけで勉強した気になる。
でも、一番成長するのは仕事。
勉強会とかでキッカケを得て、良い仕事に繋げる。
それが周りも発展させて自分も成長する道。
最近はJavaもエンジニアの平均年齢が下がってきているので、そーゆうのもで盛り上げていければと思う。
おまけ参加者さんのツイートより。素晴らしい~
★感想:こーゆう最新の情報を聞くとワクワクしますね。
最近、私も会社でJavaでコード書いたり、次期フレームワーク開発の仕事に関わったりと、テクニカルな仕事が増えてきました。
仕事のベースは常にJavaなので、こーゆうイベントで得られる情報はとても貴重です。
懇親会も参加したかったけど、今日は用事があったので不参加。懇親会も盛り上がったようで。
月末のJJUG CCCも楽しみです。
関係者の皆様、ありがとーございました。
2015/11/7(土) 「第3回 多摩川・季節のめぐみマラソン」に参加してきました。
公式サイト
http://tamagawa-kisetsu-megumi.net/場所はJR鹿島田駅から徒歩で15分くらいにある川崎・古市場陸上競技場です。
種目はハーフマラソン(約21km)です。
実は私、これが初ハーフです。
今まではフルマラソン(42.195km)しか走ったことがありませんでした。(珍しいパターンかもしれない・・・)
12月に
湘南国際マラソン、1月に
館山若潮マラソンと、本命のフルマラソンが2ヶ月続くので、その足作りにと今回エントリーしたのでした。
まず、朝起きて体重を測ってみる。
過去最高・・・。もう笑うしかない。
つーか、この日走ったランナーの中で、最重量TOP3には入ってると思う。俺より重そうな人、見なかったし・・・
会場は多摩川沿いにある川崎・古市場陸上競技場です。
自宅からはDoor to Doorで40分くらい。会場に到着して、土手の上から写真1枚。

参加者は総勢1500人弱くらいかな。こぢんまりしたアットホームな大会です。
この日はうっすら雲がかかるくらいの天候で、マラソン日和と言えるでしょう。
むしろ走ってる真っ最中の正午くらいには最高21℃くらいまで上がってたらしく、かなり暑さを感じました。
出走準備をしていると、ちょうど親子ラン(3km)&ミニマラソン(3km)の部が始まるところだったので写真1枚。
スタート&ゴール地点です。

親子ラン(3km)&ミニマラソン(3km)の先頭を走るのは、ゲストランナー、ものまねアスリート芸人・M高史さんでした。
この日も公務員ランナーの川内優輝選手のものまね(笑
マラソン終了後にブログを書いてくださったようです ↓
親子ラン(3km)&ミニマラソン(3km)、10kmの部と続いて、10時5分からハーフマラソンの部。
コースはこんなカンジ。コースを全4往復(周回)ということで、3往復目、4往復目は心が折れます・・・

Googleマップで見るとこんな感じ。この一本線を往復すると約5kmで、×4周します。

前述したとおり、この日の川崎近辺の最高気温は21℃だったようで、走ってるとクソ暑かった・・・
多摩川の土手なので遮蔽物は一切無く、直射日光が直撃します。
飲料水を入れた小さいプラスチック容器を持って走りましたが、給水の心配が減って、持ってって正解だった。
そんなこんなで、トップランナー達に抜かされまくり、周回遅れに心が折れながらもなんとか走ります。
4周目にもなると、
「私、頑張ったよね。もうゴールしていいよね・・・」 という声が脳内にリフレインし始めます・・・
そして、ゴール~

ゴール後、大の字でバタリ。2時間32分でした。めちゃ遅いけど、体重が重いので気にしない!
更衣室のテントで着替え、参加賞を受け取ります。こちら。

大会タイトルにある「季節のめぐみマラソン」の「季節のめぐみ」、ということで野菜セット。
じゃがいも、にんじん、たまねぎ~。一人暮らしなんだけど、料理どうしようかな・・・
マラソンを終え帰宅する身体に、野菜セットの重さが身に染みました・・・
★感想:ハーフはフルの半分の距離だから、と舐めてかかってたんですが、ハーフはハーフなりの辛さがありますね。
あと、周回コース。これは心が折れます・・・
4周目にもなると、制限時間まで歩いてもゴールできるや、と思い始め、身体がセーブし始めちゃいます。
というか、ハーフでの辛みを知った今、フルを走れる気がしないw
来月と再来月のフル対策のためのハーフだったはずなのに、これ如何に。
でもやっぱ、身体へのダメージはフルとハーフでは段違いですね。
ハーフの翌日、このブログ書いてる最中ですが、筋肉痛はほとんど無いです。(もう歳なので明後日来るかもしれないけど!
ちなみにフル走った後だと、階段の上がり降りさえ一苦労w
そして次は12月の湘南国際マラソンに向けて、去年のリベンジを果たすべくまたランニングに励んでいこうと思うのでした。
2015/10/29(木) スクラム&ユーザーストーリーマッピング勉強会
「第2回 認定スクラムプロフェッショナルと学ぶ!ユーザーストーリーマッピング入門」に参加してきました。
connpass
http://asoview-tech.connpass.com/event/21702/書籍「ユーザーストーリーマッピング」監訳者の川口さんを招いての勉強会なのです。
Jeff Patton
オライリージャパン
売り上げランキング: 25,819
場所はアソビュー株式会社さんです。
参加者は40人くらいでしょうか。
川口さんの「ユーザーストーリーマッピング」の話は、9月にあった
XP祭りでも聞きました。
今回はワークショップもあるということで、とても楽しみでした。
以下、メモ。
川口恭伸氏 講演「ユーザーストーリーマッピング入門」この日のスライドはまだ公開されてないようですが、このスライドとほぼ同じでした。
■ 参加者の立ち位置- スクラムを知っている 7割
- スクラムをやっている 3割
■ 書籍「ユーザーストリーマッピング」■ Agile Practice- 「アジャイル」と一口にいっても、種類はいろいろある。
- 2001年のアジャイルマニフェストが唯一の定義。
- 十数人が集まって名前を「アジャイル」と決めた。
- 「アジャイル」という実体はなくて、宣言だけがある。
- Scrumはスモールチームで開発する上での"OS"にあたる。
- プルリクベースでのレビューを推進している。このあたりを新人には教えている。
■ Passion + Skills + Small Team- Passion: 情熱。これはあまり教えられないけど、必要。
- Skills: 価値を届けるために実装して、初めてHappyになる。
- Small Team: チーム大きいとうまく動かないというのが見えてきた。コミュニケーションロスが発生するし、部署間の話し合いも長くなるし。
- この3つでほぼアジャイルを説明できた気になっている。
- 会社に入ってくる人たちはPassionはある程度もってるはず。これは教えられない。
- 会社に入ってきた人に学んでもらうのは、SkillsとSmall Teamでの働き方。この2つを教える。
■ Passionate Product Owner- CSPのコース紹介ページでJeff Pattonが書いた言葉。彼はPassionを重視している。
- 彼はPassionに溢れすぎている・・・。
- 日本に来て2日間のCSP研修の講師を担当したときも、いつも18時に終わらなかった。
■ いいこと思いついた!- ビジネスというのは、Passionに溢れている人が大体思いつく。
- ここは、"思いつかない人"にとってはどうしょうもない。なので今日は話のスコープ外にする。
■ Idea + ??? + Happy- じゃあ、真ん中の???はどーするのが良いかが、ユーザーストーリーマッピングが描いている部分。
■ スクラムプロセスフレームワーク- Jeff Pattonが書いた図である。
- POが要望をまとめ、PBLに落とす。PBIの優先順位付けをする。
- PBLはPOが責任を持つ。開発チームがうまく価値を届けられるように順番を付けるのがPO。
- まずはPBLの、上からどのくらいまでできそうかを見積もり、予測をする。
- SBLが作業リスト。タスクに細かく割っていく。
- 2週間のうち、初日と最後はミーティングやレビューであまり作業に使えないので、実質は8日。
- なので1日が終わると、12.5%が終わってないといけないことになる。
- 最初のスプリントは2週間で終わらない。見積もりが外れる。
- 最初のスプリントは、スクラムやったことないんだからしょうがない。
- チーム力が上がってくるとPOに負担がくる。POがスプリントプランニングまでにPBLを作れなくなる。
- POが間に合わなくなると、「とりあえずこれ作っといて」みたいな依頼が出てくる。
■ アウトプット、成果、インパクト- アウトプットだけじゃ価値を提供できない。アウトプットを成果につなげ、インパクトを与えることが大事。
- 最小限の仕事(アウトプット)で最大限のインパクトを目指したい。
- 「生産性を上げてバックログをたくさんこなせるようになった」というのは正しく評価できているとは言えない。
- どうやったら成果を少ない工数で確認できるか、がポイント。
- これがユーザーストーリーマッピングの全体に流れる前提意識。
■ 3つの立場- PO (value): 投資効果を見る人
- SMEs (usable): 問題領域をよく知っている人
- 開発チーム (feasible)
- この3つが必要。3つが揃って、インパクトあるソフトウェアが初めて作れる。
- アジャイルを始めたい、という依頼を受けるとき、大体、3つのうち1つか揃っていない。
■ ケーキの話- Jeff Pattonがこの話するとバカ受けする。
- さよならアリシア: 電話でケーキの要望として「★を5つ入れて」などを伝えたが、出来上がったケーキが想定外だった例。
- ナッツアレルギー: 誕生日ケーキを注文する電話で「ナッツアレルギーなので(気をつけて)」と伝えたら、そのまま印字された例。
- 「言った、言わない問題」というのがあるが、大抵は「言ったんだけど、正しく伝わってない」ことが原因。
- 電話で伝えた人、電話を受けた人、ケーキを作る人、3人がいて、それぞれ違うこと考える。
- なので、ケーキを食べる人がナッツアレルギーなんだ、ということが伝わらない。
- 3人とも、ナッツアレルギー、という単語では一致しているが、理解が違う。
- このような誤解を、なるべく時間をかけずに防ぎたい。
- 全員同席して、なるべくグラフィカルに共有して、すばやくアップデートしていくのがユーザーストーリーマッピングのポイント。
■ ユーザーストーリー- Connextra社さんが決めたユーザーストーリーのフォーマット「○○として○○したい、なぜなら○○だから」は、「Connextraフォーマット」と呼ばれている。
- このフォーマットでポイントは「○○として」の、誰の部分。ユーザーは誰なのか?ここをしっかり明らかにする。
- 「○○として」の部分に「ユーザーとして」と書かないようにすること。具体的に誰なのかを分析して書くこと。
■ Ron Jefferies の 3C- 「カード」と「会話」と「確認」。
- カード: なるべくたくさんカードを書いて、取捨選択は後でできるようにしましょう。
- 会話: カードに書けることは限られているので、わからないことは「会話」で補完する。
- 確認: 全部書いて渡すのではなく、まずカードを書いて、相手と調整しながら明らかにしていく。最終的に、受入基準を使って合意の記録を残す。
■
バックログができればOK?- ユーザーストーリーはバックログに積まれていれば最低限、OK。でも、これが難しい。
■ Product Backlog- 意外と困るポイントは、ユーザーストーリーの優先順位が変わっていくとバックログで迷子になること。
- チームの外側にいる人にとってはバックログしか目に見えないので、プロジェクトの全体像がわからなくなりがち。
- バックログは図示する方法がない。バックログだけだと、予算が取れない。
- 営業は、「いつどんな機能を売り込めばいいのか?」が分からないので「もっと大きい全体計画がほしい」となる。
- じゃあ、どうしましょうか・・・?
■ ユーザーストーリーマップ- Product Backlogを補うために、もう1枚マップを作る。これがユーザーストーリーマップ。
- ユーザーストーリーマップの一番上のレーンに、ユーザがどういうことをしたいか、を機能の時系列順に並べる。
- それに対して「どういう機能を実装するか」、がその下のレーンに来る。こうやって二次元で表す。
- それだけじゃなくて、上が優先度が高く、下が優先度が低く、左が時系列で前で、右が時系列で後、というのが全国共通。
- 縦に並べるカードは、主要なカード、あるいは最低限必要なカードが上にくる。
- 一番上と次のレーンの間に線を入れる。これがリリースのライン。
- 3ヶ月のリリースまでに何を出さないといけないかを確認できるようになってる。
- ログイン機能は最初には作らないけど、それはリリースまでには作らないといけない。なので一番上のレーンには入れる。
- ユーザーストーリーマップというのはこれだけで、あとは魔法なんてない。二次元で整理するのがポイント。
- 管理するだけなら他にも手法があるけど、ユーザーストーリーマップは割りと粒度の揃いが良い。
- プログラムを書かない人も入って、一緒に議論できる粒度で書く。作る人と要求を出す人が一緒に議論する。
■ 実例とジャーニーを使ったマップ- ユーザを旅行者に見立てる。時系列で考えていく。
- 機能の羅列だけじゃなく、時系列の要素を入れる。
■ Q&A
Q1.
実例とジャーニーを使ったマップは、何人くらいでやるのか?
A1.
テーブルでやるとすると5~6人くらいが適切かもしれないが、30人くらいでやってるのもある。人数に定義はない。
---
Q2.
プロダクトバックログだけでは予算が取りづらい、という話があったが、それについて。
A2.
スプリントバックログは、3スプリント分くらいは詳細に見積もる。2週間スプリントだと、1ヶ月半分くらい。
これだと四半期といった予算期間とは、ほど遠い。
四半期単位での予算なら、その単位で計画せざるを得ないので、正確性は保証できないが「最大限の努力」でそれをやる。
---
Q3.
良いストーリーの条件に「独立性」というのがあるが、時系列の要素を入れると独立性は保てるのか?
A3.
スクラムではストーリーの独立性が言われる。良いストーリーの前提条件である「INVEST」の"I"。Independent。
技術面ではストーリーは独立させる必要があるが、お客さんにとっては、やはり、ストーリーには依存があるのが自然。
TIPS.
- ユーザーストーリーマップは「全体像」を、プロダクトバックログは「作る順番」を表現する。
- ユーザーストーリーマップの一番上のレーンのストーリーの中で、順位付けしたものをプロダクトバックログに積む
- プロダクトバックログの順序が変わっても、ユーザーストーリーマップの時系列の順序は変わらない。
- 壁は2面を使う。ユーザーストーリーマップとユーザーストーリーマップ。
ワークショップ
参加者を5~6人ずつに分け、6チーム作ってチーム毎にユーザーストーリーマップを作るワークショップをやりました。
手順は大体こんなカンジ。
1.「今日、朝起きてから家を出るまでにやったこと」を、できるだけたくさん、黄色の付箋に書き出す。(各自)
2.チームで、付箋を時系列に並べる。似てる付箋はグルーピングして寄せる。ほぼ同時に行われるものは縦に並べる。

3.ひとまとまりの付箋の集まりに、青い付箋でラベルを付ける。

左から右へ時系列に並べたストーリーの並びを「ナラティブフロー」と言う。
ひとまとまりの付箋に付けるラベル名をチームで合意し、共有する。
「あれ」、「それ」といった位置記憶で会話できるようになるのがポイント。
4.テープでリリースを2つに分ける。(模造紙の真ん中にテープを引いて、上半分と下半分のレーンに分ける)
上半分のレーンには、朝起きて家を出るまでに5分しかない場合にやること、を挙げる。残りは下のレーンへ。
4.で、最小限の場合はどこまでやるか、というのを考えました。
これはMVP(Minimum Viable Product)を残して、アウトプットの最小限とするというやつですね。
---
青い付箋でラベル付けをする際、グルーピングされた付箋の時系列情報が失われがちです。
そうならないよう、ラベル(青の付箋)の下に、各ストーリー(黄色の付箋)を時系列順に横一列で並べると良いそうです。
情報はなるべく落とさないようにすべき、とのこと。
あと、ユーザーストーリーマップのポイントは、「参加者が0.5秒で見てわかるように」だそうです。
最後に、チーム毎に成果を発表し、共有していきました。
懇親会
ワークショップ終了後、その場で懇親会です。
アソビュー株式会社さん提供(なんと無料!)のビールと軽食を戴きながら、みんなでワイワイ。
この日の参加者に、去年11月のスクラムマスター研修(CSM)を一緒に受講した方がいらっしゃったので、いろいろ会話しました。
俺も嬉しかった!
懇親会の最後には、川口さんから「ユーザーストーリーマッピング」×2冊、「Fearless Change」×1冊のプレゼントということでジャンケン大会になりました。
そして「Fearless Change」の方は最後の2人まで勝ち残って、決勝戦のジャンケン相手は、まさかのCSM同期の彼(笑
・・・負けました。今度、別のアジャイル勉強会で会ったら、読後の感想聞かせてね!
★感想:
この日のイベントに参加して、ユーザーストーリーマップの利点は、「時系列情報」と「全体像の俯瞰」という2点だと思いました。
そして、これは使えるなぁ、と思った。
バックログに載ってるバラバラのストーリーからは読み取れない情報をうまく補完していると思います。
読書会とかでいろんな人と議論できるといいなあ、と思ったので懇親会の終了後、川口さんに聞いてみたところ、読書会開催の話も出ている、とのことでした。
もし開催されるなら、是非参加して理解を深めたいですね。(書籍、まだ買ってない・・・)
川口さん、会場提供のアソビューさん、CSM同期のすーくん、関係者の皆様ありがとーございました。
-->