• Top
  • > Blog
  • > XP祭り2014に参加してきました(1)
2014/09/11 アジャイル, 勉強会

XP祭り2014に参加してきました(1)

こんにちは。NCDCの北村(@chipstar_light)です。
9/6にXP祭り2014に参加してきましたので印象に残った事をまとめたいと思います。
かなりのボリュームになってしまったので、2回に分けて記述したいと思います。
今回は前半戦です。

xp2014

 

関連記事

 

参加したセッション

 

XPの俺 / XP再考を再考する【基調講演】 関 将俊さん

 

TDDと忍者式テスト

忍者式テストは結構前(2005年くらい?)から提唱されているようですが、私は初めて知りました。また、追い込まれた案件で似たような事をやった経験がありますが、その内容がこのように洗練され体系化されていることに驚きました。

TDDの良さは、完了をテストで定義しその完了に向けて動作を確認しながら実装を進められる事と、過去の完了も常にテストしながらコードの変更がプロダクトを壊していないかを確認できる事だと思います。一方で、xUnit等を用いたテストの自動化は、あくまでもTDDの副産物であり、テストの自動化自体がTDDの良さではありません。
この論理を中心に、TDDをxUnitを使わず手動テストで実践する方法が忍者式テストです。また、コンポーネントテストレベルではなく、システムテストや受け入れテストレベルでTDDやろうという側面もあります。

具体的には、
1.毎日新しく完了したストーリーのテストケースを追加
2.前日までに積み上げたテストケースは毎日実行し、実装にフィードバック
3.テストケースが増えてくると運用が回らなくなるので、テストケースを整備する。テストケースの重複を排除し、手順の簡略化や作業の効率化を行う。
4.それでもテストが増えるので、テストに閾値を設けて一定の閾値を超えたテストはやめてしまう

テストを削るのは怖いですよね。けれども、そこを思い切って削る事がコツだそうです。これって別に忍者式テストだけの話じゃないですよね。xUnitで書いた自動テストでも、テストが肥大化し、実行に時間がかかったりメンテナンスに苦労したりします。従ってxUnitテストでも同様に、この閾値を設けて思い切ってテストを削除する必要があるかと思いました。閾値は、テストが落ちなかった期間や、品質目標に対する乖離度になるかと思います。このように自動テストでも使える考え方であるならば、発表の中であったiTunes風テストケースリコメンドシステムは広い範囲で適用できるとても面白い発想だと思いました。また、こうして常にテストを見直す事で、テストケースが洗練される事も大きなメリットです。
さらに、忍者式テストの特性として、日々テストケースをアレンジする事で、既知の情報の確認だけではなく新しい情報の発見ができる、いわゆる攻めるテストになる点も効果がありそうです。
忍者式テストは、最近注目されてつつある、システムテストレベルでの自動化や、TDDよりBDDやATDDの流れに通じるものを感じました。

 

計画ゲーム

「衝撃」というタイトルのスライドに“事実を使って計画していいなんて!”“「変更」「わからない」「間違える」が前提になっている”という言葉が出てきていましたが、私も初めてアジャイルに出会った時は同じ衝撃を受けた事を思い出しました。

アジャイルでは、欲しい物が何かをあらかじめ正確に定義する事は難しいので、動くものを少しずつ作って、確認しながら開発を進めようという考え方があります。しかし、分からないのは欲しいものだけじゃなく、「作り方がわからない」という事もありますよね。だから、開発内部でも計画ゲームを使おうという話がありました。実装していく過程で見えてくる事もあるので、実装の未知の部分を確かめるタスクをストーリーとして切り出して、それもイテレーションの中で取り組み、ショーケースで確認すれば良いとのこと。
前職で実装方法が見えていない機能がたくさんあり、その扱いに悩んでいた事があるので参考になりました。

 

チームビルディングのためのワークショップ ~アジャイルの導入の勝算は、チームビルディングにあり!~【ワークショップ】 うえだ まさみさん

 

ダニエル・キムの成功の循環モデル

成功の循環モデル

 

  • 互いに尊重し、結果を認め、一緒に考える(関係の質)
  • 気づきがあり、共有され、当事者意識を持つ(思考の質)
  • 自発的・積極的にチャレンジ・行動する(行動の質)
  • 成果が出てくる(結果の質)
  • 信頼関係が高まる(関係の質)
  • もっと良いアイデアが生まれる(思考の質)


成功する組織はこの循環モデルがうまくできているそうです。この中でも、まずは「関係の質」を変えていこうという話があり、「毛糸のワーク」というワークショップをやりました。そこで印象的だったのは、「関係の質の改善はリーダーだけがやるべきものじゃない」という事。
私は前職で管理職をしていましたが、チームビルディングを行うためにはリーダーである自分の行動や発言で何とかしないといけないと思い込んでいました。そのため、チームの目標の共有や話しやすい場や環境作りなどに試行錯誤していました。しかし、それである一定までの関係作りはうまくいくのですが、学生時代の部活や文化祭の準備の時のような一体感を生む事はできませんでした。今でも、何が原因だったのかなと考える事がありますが、その1つの解がここにある気がします。
Agile Japan 2012の中で「一人一人はいい仕事をしたいと思ってる」という事を学びましたが、これが前提にあるのであれば、チームビルディングとはリーダーが一人で取り組むのではなく、成功の循環モデルのような考え方をチーム全員で学び、一人一人が実践する事が重要なんじゃないかと気づかされました。

では、関係の質を上げるにはどういう事を学んだら良いか。
少し深堀がありました。

 

ジョン・ゴッドマン博士の関係の中にある四毒素

関係の質を下げる要因です。

  • 非難
    批判。とげとげしさ。弱いものイジメ。押し付け。乱暴な攻撃。イヤミ。
  • 侮辱
    見下し。こき下し。敵意あるうわさ。間接的攻撃。無礼。軽視。屈辱的なことば。
  • 防御・自己弁護
    他者からの影響に心を閉じる。話題をそらす。向き合わない。かたくなになる。
  • 無視・逃避
    回避。非協力。消極性。上の空。追従。遠慮。

人との関係を作る上で、この四毒素をなくす事は不可能だそうです。相手への期待があるから毒がでる。期待がなければ毒素もでない。だから、毒に毒をかぶせてはいけない。
そこで、この毒を中和するために、8つの態度を持ち込むのだそうです。

 

関係性を良くするために持ち込む良い8つの態度
  • 思いやり
  • 小さな声に耳を傾ける
  • 遊び心
  • 尊重
  • 恊働・パートナーシップ
  • 好奇心
  • 本気
  • その他

特に、いつも一番やらない要素をやってみるのが改善の近道との事でしたので、私も実践してみたいと思います。

講師のうえだまさみさんはリーダー塾というものをやられている様です。関西にいるからかあまり存じ上げていませんでしたが、入塾してみたいと思いました。
関西で何かイベントをやられないかな。

 
今回は、いったんここまで。
続きはXP祭り2014参加報告(2)で書きたいと思います。

記事一覧へ