テスト駆動開発(社内講演)

f:id:nemorine:20180921080921j:plain弊社の山梨事業所に和田卓人(t_wada)さんをお呼びして、テスト駆動開発についての講演をしてもらいました。

3時間でしたがDemoの圧倒的なライブ感が凄かったです。 和田さんの深遠なる知識と実務感を感じました。

今回もたくさん気づいたところあったので、忘れないように書き留めておきます。

TDDは単なるテストファーストではない。

プログラミングテクニックではあるけど、設計テクニックでもある。

ToDoリストからの選び方

一番重要 or 一番簡単なもの
和田さんは一番簡単なものを選ぶ

リファクタリングの終了条件

  • 時間
  • 数(重複が解消されたら)

重複派は2out派 or 3out派がある。和田さんは3out派

リファクタリングをするためには、All Greenが必須。

All Greenではない場合は条件を満たしていないので、まずAll Greenにすること
All GreenのときのみリファクタリングしてもOK。

テスティングフレームワークはランダムに実行されている。

テスト自体に依存関係が入らないようになっている。依存があるとテストの並列作業が難しくなり、時間が極端にかかるようになる。

テストの時間を減らすためにやること

  • 力とお金で解決する(=サーバー増設+並列実行など)
  • 全件実行しないなど件数を絞っていく

クラウドではなく、オンプレで力押ししているところもある。

テストコードの品質

テストコードの品質はプロダクトコードと一緒にする。静的解析をかけている場合はかけるし、コードレビューもしていく。
昔はテストコードはプロダクトコードほど力を入れなくてよい、と言われていた。その結果、プロダクトコードとテストコードの割合が1対10とか1対20になった。 今となるとそれは間違っていたといえる。

t_wadaさんのレビューの仕方

まずは全体の構造=構造化されたToDoリストをじっくり見る。それがOKであればプロダクトコードやテストコードを見る。



せっかく和田さんと話す機会ができたので、札幌でTDDBCを開催したい件を相談しました。札幌でもTDDBCできるといいなぁ。

f:id:nemorine:20180921080921j:plain

KPTのK

先日のソフトウェアシンポジウムでKPTについて考えるきっかけ*1がありました。

そこでKPTについて改めて再認識したことを書いておきます。

KというとKeep=良かったこととしてフセンに書き出すのが一般的だと思います。 その際に意識することは、Keepとして挙げた項目の中には『原因となる行動』と『その行動による結果』の両方が含まれているということです。 ふりかえりに慣れていないチームでは、『結果』の方が多く出ていないでしょうか?

例えば、「顧客から感謝された」というフセンがあったときは、これは結果になります。 これだけだと良かったねーで終わってしまいます。 もちろん結果をチームで共有することも大事なのですが、自分達のどういう行動が「顧客から感謝された」ことに繋がったかを考えて、行動のフセンも出すのが良いと思います。

「リリース前に2回デモをおこなった」(いままでは全くやっていなかった)

こういう行動のフセンが出てくるかもしれません。それがKeep(する行動)になります。

これだけKPTの天野さんのSlideShare「KPTのコツを掴め!!」p11にもこの話が載っています。

「良いことは現象なので、続けられない。その現象を引き起こす行動を確認する。」

まとめ

  • Keepを出すとき/見るときは行動と結果を意識する
  • 良い結果の原因となる行動をKeepする

*1 興味ある人は何があったか直接聞いてください ><

「2030SDGs」

中学のときの後輩で名寄にUターンして活躍している黒井が企画しているということで参加してきました。

SDGsエスディージーズ)

SDGsとはSustainable Development Goals の略で持続可能な開発目標というもの。 国連では、2016年から2030年までの15年間はこの17のゴールを行動計画として掲げています。
http://www.unic.or.jp/activities/economic_social_development/sustainable_development/2030agenda/
最初の説明では『大事な人来るときは、ケーキを取っておきますね?それが「持続可能な」ということです』という説明がありました。 また"持続可能"は”自己犠牲ではないよ”というのも強く印象に残っています。

ゲームを使って学ぶ

今回はこのSDGsをゲームを使って学んで行くという趣旨です。 個人的に大好きなゲーミフィケーションなので、運営のあたりも興味深くみていました。 与えられた時間とお金のカードを使い、経済活動を表したプロジェクトをクリアしていき、自分のチームの目標を達成していくというものです。プロジェクトをこなすと、世界の指標(経済/環境/社会)が少しずつ変化していきます。面白いのは交渉などが自由に行えることです。 https://imacocollabo.or.jp/games/2030sdgs/

ペアになってゲームに臨みましたが、自分達に与えられた目標は「大いなる富」というもので、お金を貯めることです。 お金って、、、大事ですよね(笑 f:id:nemorine:20180217184021j:plain

前半

まずはやってみよう派の自分としては、手持ちのプロジェクトをこなしてお金をためてみます。 何回かプロジェクトを実施すると早々と自分達のゴール条件を満たしました。 周りのチームからはプロジェクトの交換やお金、時間の取引などが活発になりました。 そして経済活動がガンガン回っていった結果、、、なんと!経済の指標がMAXに!

中間報告

一旦落ち着いてファシリテーターから現在の世界の状態の説明をしてもらいました。 経済は絶好調だけど、環境汚染、貧富の差などが広がっている状態です。 f:id:nemorine:20180217184029j:plain

後半

中間報告で見える化されたことと、余裕が生まれたことで、沢山のチームが環境、社会にプラスの活動を選択している感じを受けました。またプロジェクトが発足したりして、他の人へ時間、お金を渡したりしていました。 最終的には環境、社会がかなり盛り返しました。 f:id:nemorine:20180217184033j:plain

思うこと

自己犠牲ではなく自分が幸せになった上で後世に残すということがいいと思いました。自分も自己犠牲は嫌いで、大体は自己犠牲している自分がカッコいい的なところあるからだと思います。 そういう人に限って最終的には相手に求めすぎて、自分はこんなに頑張ってるのに・・・とか攻撃してきたりします(笑 それでは自分が幸せというのはどういう状態なんでしょうか?黒井は「自分が何に幸せを感じるか自覚することが大事」と言ってました。色々なものがあふれている時代なので、自分の中に見つけ出すのが難しいのかもしれませんね。

またゲーム化して学ぶことの面白さや、インプットのしやすさを改めて感じました。現実世界はそこまで簡単ではないけれども、単純化している部分があるから見えることもあります。今回は経済/環境/社会へのインパクトが分かりやすいと感じました。このゲームが終わった後でも「牛乳を飲む」という活動から経済、環境、社会へはどういう影響あるんだろう?とちょっとずつでも考えていけるようになりそうです。

ゲーム自体が面白かったのは確かですが、黒井に会えて話せたことが嬉しかったです。 ゲーム後の飲み会も名寄の話、ファシリテーションの話、アイヌの話などとにかく楽しく話した記憶が強いです。 いつか一緒に楽しいことやれたらいいなぁとぼんやり思いました。

RSGT2018 Day3レポート

3日目だけどまたまた言います。今日も最高でした!!
こんなに連続でグッとくることないので、テンション上げ上げです。 しかも仙台時代に仲良かった半谷さんに久しぶりに会うことができて、それもめっちゃ嬉しかったですね。

OST(Open Spece Technology)

OST知らない人はまずこちらを、、、 http://www.humanvalue.co.jp/report/positiveapproach/03.html

誰でも、いつもで、どこでも、なんでも 話すことができる夢のような時間です。 テスト系の人ならWACATEの夜の分科会のイメージが近いかな。

ネタだし

ネタが尽きません(笑 こんなに話したいことあるの?!っていうくらい各自がテーマを出してました。 30近く出たテーマ一覧は壮観でした。
自分の出したネタは『日常に溶け込むScrum』というテーマで、スクラムに関わっている参加者は日常で使っていること多いんじゃないかな~と思って提案しました。

日常に溶け込むScrum

事例をバンバンだしてもらいたいなぁと思ってましたので、 最初に自分からリフォームのときにカンバンを使った例を出しました。(厳密な意味ではScrumではないけど)

  • リフォームのときにカンバンを使うことで、やることを可視化した。
  • 結婚式をScrumで実施し、タスクを洗い出した。
  • 子供の夏休みの宿題を可視化した。
  • 土日やることをタスク管理する。
  • ダイエットにも効きそうだね!(まだやってない)
  • 妻と1年のふりかえりをする。
  • ネコ神社。ネコ様の力で会話をやさしくする。
  • 子供に今日どうだった?って話をして、ふりかえり、共有を促す。
  • 子育てを属人化しない
  • ダイビングも楽しい経験をしてもらうために、計画をする。
  • 旅行に行ったらふりかえりする。

沢山出てきましたねぇ~ 超楽しかったです。
他にも朝の会や目標、時間が決まっている小学校ってスクラムに近いよね、という話を近くにいたキロウさんにしてもらい、一同「確かに…」ってなりました(笑

せっかくなので出てきたものをちょこっと整理してみます。

問題 スクラムっぽい解決策
複雑で沢山あるもの タスク一覧、カンバンなど。
負の感情を防ぐもの ネコ、おやつなど。(リッチの基調講演では赤ちゃんや犬って言ってました)
何かを実施する前にやった方がいいこと お互いの期待値をそろえる。
何かを実施した後にやった方がいいこと ふりかえりで、感謝と問題点を伝える。

という感じで抽象化すると日常生活でもどんどん使えそうですね。 これに感謝を含めて、日常生活に溶け込ませていきたいです。 今年はどこかで『壁紙貼りで学ぶScrum』ってのを企画したいと思ってます(笑

あなたの中に世界がある

ITイベント、ひいてはIT業界を陰で支えてきた翔泳社の岩切さんの話。 ScrumGatheringTokyoも支えらてきたらしいです。

岩切さんのルーツ

  • ルーツは釜石。釜石の鉄バブルでにぎわった町。
  • 最初に入った会社は半導体関係の出版社ですぐにつぶれた。
  • 26歳で翔泳社へ入社。
  • とにかく人がやりたがらないけど、求められている仕事をやることにした。

岩切さんが大切にしている3つのこと

  • そこに大義はあるか?
  • 共感できるか?
  • 貢献できるか?

人は大義に集う

  • ケチくさいこと言わずに太っ腹になる。
  • 本気でやる。本音で話す。
  • リアル+ネットの力で最大化してモノを作っていく。
  • 大義を継続してリリースしていくために利益を出す。
  • 品質にはこだわる。

心の中で戦争が起きたとき

  • 俯瞰する -> アジャイル開発が使える
  • 深く潜る -> 呼吸、瞑想

感想

IT業界を陰で支えていた岩切さんの言葉の中に、 「本当にそのプロジェクトに大義があれば、後継者があらわれHackし、 もっと大義を広げてくれて継続していくはず」というのを聞いて、JaSST東北のみんなのことを思い出し、熱い何かがこみ上げました。飲みすぎたお茶ではないと思います。 最後の言葉(写真参照)も「恩の先送り」につながる言葉でJoyから始まったこの3日を締めくくるにふさわしい言葉でした。

f:id:nemorine:20180113193701j:plain

明日くらいにもう少し頭を整理して、3日間のまとめを短めに書こうと思います。 ブログの数狙いではありません。あしからず。

スクラムギャザリング東京のここがすごいっ!!

面白い発表、細かな施策、人が集まる仕組み。

運営としては、かなり高レベルだと思いますので、お客様目線でみたスクラムギャザリングの良いところを報告したいと思います!自分の知り合いにはイベント運営をする人が多いと思うので、ちょっとでも参考になれば嬉しいです。

デザインがオシャレ

いつも和をイメージしたデザインですが、今年は鳥獣戯画感があってかなり可愛いです。 ズギューンです。

f:id:nemorine:20180113012404j:plain

熱いセッション

今年は公募81に対して21採用という狭き門をくぐった熱いセッション。 そりゃ面白いわけですね~

2トラック制

基調講演は1トラックだけど、その他は2トラックにすることで好みのセッションを聞くことができます。 (ワークショップも入ると3トラック) 部屋は基調講演後などに仕切られます。

休憩が15分、そしておやつタイムあり

休憩はゆったり目の15分。おやつタイムは30分。 そしておやつがオシャレ!もちろん食べ放題ではないので間違えないように(自戒を込めて) f:id:nemorine:20180112144212j:plain

オシャレなコーヒーショップ

オシャレなコーヒー屋さんが入ってくれて、いつでも美味しいコーヒーを飲むことができます。 お茶やお水もペットボトルでしっかり提供されてます。

f:id:nemorine:20180113012709j:plain

パッと話せるスペース。

パッと話せるスペースが立ち席、座り席ともに用意されています。 気になったことや知り合いとコーヒー飲みながら話すことができます。

f:id:nemorine:20180113012535j:plain

分別ゴミ箱

こういうのって地味だけど重要だと思うんですよね。

f:id:nemorine:20180113012647j:plain

いつでも話せる場

スクリーンと単焦点のプロジェクターでいつでも話せます。 そして人がたくさん寄ってきてワイワイ見ている。 天の岩戸パターン。 f:id:nemorine:20180113012601j:plain

無料のコーチン

業界TOPの方に無料でコーチングしてもらえる仕組み。 これ、、、普通だとあり得ないですよね。 コーチ足りなくなれば、コーチ属性ある方を追加しますとのこと(川口さん談) f:id:nemorine:20180113014504j:plain

さいごはハイタッチ

何か分からないけどテンションが上がります!! f:id:nemorine:20180112170845j:plain

このほかにも参加者からは見えないことたくさんあると思いますが、違和感を感じないってホントにすごいと思います。 この仕組みを維持するために規模の拡大を狙わないという割り切りも本当にカッコいいと思います。 チケットの売れ行きから推測すると行きたい人は500人以上いると思いますが、やっぱり場所って重要なんですよね。 実行委員の方、スポンサーの企業の方、本当にありがとうございます。

RSGT2018 Day2レポート その②

つづきます~

アジャイル開発をさらに進化させる組織KPI導入のすすめ

楽天の絹川さんの発表。 「スクラムチームがもいっこ大きなヤマを越えるためにマネジメントができること」が真のタイトルみたいです。

グッと来たところ

  • チームの外からしか見えないところを攻める(ジョハリの窓
  • 期待の認識を合わせた。
  • 改善マインドを呼び起こすKPIは重要。

感想

改善の閉塞感を打ち破るのはマネジメントの力もあるなぁと思いました。 やったことに対して否定しないので、多少失敗してもドンドンやる文化になるんだろうなぁ。。。

モヤモヤ女子大生がプロダクトオーナーになったら!

タイトルに惹きつけられてしまった。。。

感想

実際にPOとしてアプリを作った女子大生の体験談とそれをサポートしたOdd-eの知花さん側からの話でした。 Odd-eが全面サポートの中、我がscrumの師 @ebackyが勉強会とかでも教えたみたいです。 なんてラッキーな!と思いました。 プロダクトオーナーとして成長し、チームの関係が改善していく話は微笑ましくも、かなり勉強になりました。

女子大生の方がエンジニアは”怖い”というのを連呼していたことが気になって、実際に質問してみました。 外国行ったときのような異なる文化を持つ人を本能的に怖いと思う感じらしいです。 とりあえず、暴言とかじゃなくて良かったなぁと(笑 どちらにしても、異なる文化のためには言語を合わせる必要があるなぁと思い、それがまさにユビキタス言語なんじゃないかと思いました。

Teamwork Revolution - チームとものづくりに真正面から向き合うモブプログラミング -

Teamwork Revolution チームとものづくりに真正面から向き合うモブプログラミング #rsgt2018 // Speaker Deck

グッと来たところ

  • すぐに動くプロダクトが見せれるのは重要。
  • トラブル対応のときはもはやモブです。
  • そもそもチームになっていない状態でモブプロはできない。
  • ヤッターっていうの重要。
  • プロセスやフレームワークは何も解決しない。

感想

気になっていたモブプロの話。 実はScrumのセレモニーなどの多くはチーム内の共通理解を促すもので、モブプロにするとそれが要らなくなるというがすげーと思いました。 モブプロも見学したいところです。

スライドP42 f:id:nemorine:20180113010710p:plain

RSGT2018 Day2レポート その①

さて、二日目です。

最初に言っておきますと、今日も最高な感じでした!!

敢えて属人化せよ!エキスパートの集団こそが最強のチーム(Embrace Collaboration and Fun of Coding)

昨年川口さんが出会ったというMicrosoftの河野さんのお話。

コミュニケーション

  • オープンスペースも、個室のようなフォーカスルームもメリット/デメリットがある。
  • 直接の会話は何ものにも代えがたい。

英語への恐怖感

  • 話せても聞き取れない。
  • 恐怖感が消えるのに1年半、完全になくなるには2年~3年。
  • 若い人(で行きたい人)は早く海外に行きなさい!

マネジメントの力

  • よいマネージャーは働き方に直結する。
  • 部下が最大限のパフォーマンスを発揮できる環境を作ることが仕事。
  • 会社として給料を上げることは正当な評価。

評価システム

  • 5段階評価をしていたときは、チームメイト同士の競争につながっていたが、止めてからは安心感が増した。
  • 同僚をどれだけ助けたかは重要な指標。
  • 上司を評価する仕組みもある。
  • マネジメントはスキルである。

ハッカソンの力

  • 年1回5日使ってやっていて、ここからプロダクトが生まれている。
  • 個がとがっていないとハッカソンでモノを作れない。
  • マネジメントのバックアップが必要。
  • ここからゲームチェンジが始まる可能性がある。

属人化したExpert集団こそ最強

  • 全員の知識レベルを合わせないとというのは無理がある。
  • 尖った人達がどこかに行かれないようにする必要がある。

名言など

  • Agile 開発は バッグログと共に 生きることと 見つけたり
  • 売り切りのモデルではない、いまはサービスのモデル
  • 会社側はAgileとか関係ない。顧客にどれだけ早く価値を届けるかが重要。
  • Excelは立ち上げない!害あって一利なし!

感想

もうなんかブワッ (´;ω;`) ときました。
昨年からの自分のテーマになってる会話の重要性、マネージャについて自分の認識と思いが間違っていないなぁと思いました。 また今のマイクロソフトの強みなどが具体的に分かりました。 そしてコード、モノ作りが本当に好きだというのが河野さんの話の端々に現れていて、こっちも嬉しくなりました。 あとアメリカには力あるマネージャーがいるんだなぁ。。。ちょっと羨ましい。。。



Scrumが難しいのは幻想 -情熱の再定義-

みんな大好ききょん君のセッション。人気で立ち見も出てました!!

グッと来たところ

  • やみくもに改善をしても局所最適化。
  • 我々はソフトウェア工学の歴史に1ページを追加するチーム。
  • 60min スプリント。
  • 最高の振る舞いを習慣づける。
  • ソフトウェアから学ぶ必要がある。
  • 選択と集中 / 形式化と自動化。
  • 超個体になるために、人間を捨てる。

感想

もはや単体で超個体感があるきょん君だけど、『我々はソフトウェア工学の歴史に1ページを追加するチーム。』という立ち位置からすごい!と感じました。 60minスプリントはいつか見学してみたいものの一つです。 ソフトウェアから習慣、イベント駆動を学び、人間にインストールするというのは新しいアプローチな気がします。 そしてそれがドラッガー選択と集中につながるあたりもとても良いです。 きょん君は声も通るし、小ネタはウィットに富んでいて、そこも人気の秘訣なんだろうなぁと思いました。

超個体 - Wikipedia

その②に続く~