Date:  Wed, 26 May 2010 17:31:33 +0900
Subject:  【オブジェクト倶楽部: 2010-20号】
X-Mail-Count: 00338

       ┏━━━━━━━━━━━━━━━━━━━━━━━━━━■
       ┃                         ■┃
      ●┃● ● オ ブ ジ ェ ク ト 倶 楽 部   ■ ┃
       ┃                       ■  ┃
       ┗━━━━━━━━━━━━━━━━━━━━━━■━━━┛
                          No.328 2010/05/26

■ I N D E X
┃
┣【Topics】「オブジェクト倶楽部2010夏イベント」開催のお知らせ
┣【プログラミング】Let's Try 受入テスト [6]
┣【コラム】僕の営業日記 [15]
┃          〜続・新しい試みの定着〜
┗ 編集後記

〇━━━━━━━━━━━━━━━━━━━━━━━━━━━T o p i c s━
 〇 「オブジェクト倶楽部2010夏イベント」開催のお知らせ
  〇 〇━━━━━━━━━━━━━ ━━・ 

毎年恒例となりました「オブラブ夏イベント」を、今年も開催します。場所は
こちらも恒例の、国立オリンピック記念青少年総合センター。今年は7月16日、
金曜日ということで懇親会も予定しておりますので、ぜひご参加ください。

メルマガにて順次、詳細を発表していく予定です。どうぞお楽しみに!

● タイトル:オブジェクト倶楽部2010夏イベント
● 開催日時:2010年7月16日(金) 10:00開始
● 場    所:国立オリンピック記念青少年総合センター(代々木)
             http://nyc.niye.go.jp/
● 内    容:講演、ワークショップ
● 参 加 費:イベント3,000円、懇親会5,000円

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ■━
■
┗【プログラミング】Let's Try 受入テスト [6]

● はじめに
この連載は、受入テストをテーマに扱っています。
今日は、前回に引き続き、BDD(Behavior Driven Development)です。
BDDが採用している語彙(Scenario Given When Then)の紹介です。

● サンプル
計算が出来るアプリを例にBDDのシナリオ記述例を挙げます。

------
Scenario: Add numbers
  Given I have entered '1 + 2' into calculator
  When I press equal button
  Then  the result should be 3 on the screen
------

Given、When、Thenは**enと語尾が韻を踏んでおり、覚えやすいですね。
日本語にすると、

------
シナリオ:数字の足し算
  前提 計算機に '1 + 2' と入力してある
  もし (私が)イコールボタン を押す
  ならば  スクリーン上に 3 と結果表示される
------

となります。BDDの語彙の特徴は、シナリオ(Scenario)を前提(Given)、もし
(When)、ならば(Then)の三種類のステップに区分するのがポイントです。
(BDDテスティングフレームワークは多数存在しますが、多くがこの語彙を採用
しています。)

書いているうちに例外シナリオも思いついたので書き足してみます。

------
シナリオ: 計算不能な入力値
  前提 計算機に '(*-*)/^' と入力してある
  もし イコールボタン を押す
  ならば  スクリーン上に Error と結果表示される
------

● BDDの語彙を使って仕様をクリアにする
ScenarioのGiven、When、Thenが曖昧なままで仕様の会話すると、会話がチーム
で噛み合わなかったり、誤った前提を元に受入テストを記述してしまったりな
ど問題が発生しがちです。
テストの記述時やプログラミング時に、漠然と仕様が曖昧だと感じた時には、
BDDのScenario、Given、When、Thenのフォーマットを思い出し、どのシナリオ
のGiven、When、Thenのどこが具体的に曖昧なのか、シナリオのパターン漏れが
ないのか等を、一人で考えたりチームで話し合うと良いでしょう。

● ステップを語彙を簡潔にわかりやすく
仕様に関して会話を重ねるうちに(あるいはシナリオ記述を繰り返すうちに)、
より簡潔にわかりやすいGiven、When、Thenを思いつく場合があります。
わかりやすい例では、ログイン機能で
「前提 トップページに移動 かつ ユーザ名 "root" パスワード "pass" と入力
  かつ ログインボタンを押す. ...」
と言う代わりに、
「前提 管理者でログインする. ...」と言った方(記述した方)が簡潔かつ明瞭
です。
システムの期待する振る舞いについて、チームで仕様について、簡潔・明瞭に
会話するためにも仕様に関する語彙を形成することを心がけると良いでしょう。

● 連載前半のまとめ
今回までは、受入テストの社会的側面から、Whole Team、アレグザンダーの設
計思想、ユーザーストーリー、BDD等を紹介してきました。このテーマについて
さらに調べてみたい人は、
『Bridging the Communication Gap』
  http://www.amazon.co.jp/exec/obidos/ASIN/0955683610/xpjp-22
を調べてみることをお勧めします。
次回からは、ツールの利用側面から探求を行います。Ruby界隈で一部広まりつ
つある、Cucumberの使い方の探求に入る予定です。(IENAGA)

● 参考
BDD
 - http://en.wikipedia.org/wiki/Behavior_driven_development
 - http://behaviour-driven.org/
Cucumber
 - http://cukes.info/
 - http://www.slideshare.net/moro/cucumber-in-practice

● 過去の連載
1) /ml-arch/magazine/316.html
2) /ml-arch/magazine/321.html
3) /ml-arch/magazine/325.html
4) /ml-arch/magazine/330.html
5) /ml-arch/magazine/334.html

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ■━
■
┣【コラム】僕の営業日記 [15]
┗          〜続・新しい試みの定着〜

こんにちは。Hiroshiです。今回も僕が営業をしている中で、いろいろ体感した
ことを皆様と共有できればと思っています。今回は、以前にご紹介した、「新
しい試みが定着していくポイント」の続編です。

僕達は、お客様に「現場カイゼン」や「アジャイル開発」等を導入するお手伝
いをしています。その対象は数人のチームから何百人という部門まで、期間は
数日のセミナーから数年単位のコンサルティングまで様々です。その中で、新
しい考え方や仕組み、プラクティス等、新しいモノの導入定着を支援します。
以前、定着させるポイントとして、「最初は手厚くフォローしたこと」、「効
果を(組織上の)ラインで伝えたこと」、「新しい試みに前向きで捉えてくれた
こと」の3つをご紹介しました。今回は、そこから半年以上経って、更に追加さ
れたポイントをご紹介します。

● トップが熱く語れること
新しい試みは、トップがゴール(なぜ必要なのか、どうなりたいのか、何をする
のか)を熱く語ることで、実際に動く人達の強い動機付けになります。これは、
外部の人間には語ることはできず、とても効果的です。多くの場合は、最初の
キックオフイベントで語る事が多いですが、同じ内容でもいいので、定期的に
対象者を変えてメッセージを発することも効果的です。お客様によっては、ほ
ぼ毎月同じ内容を1年間伝え続けた事例もあるくらいです。

● 現場のキーマンを味方につける、もしくは育てる
トップが熱く語っているだけでは導入定着は進みません。現場のキーマンにど
れだけ動いてもらうかで浸透具合は格段に変わってきます。既にキーマンがい
る場合はいいですが、不在の場合は、説得したり、育成したりすることになり
ます。誰をキーマンと捉えてどうやって動いてもらうか等、明確なキーマン像
や味方につける作戦が持つことが求められます。

● メンバーにきちんと説明する
実際に新しい試みを実施する人達(リーダー・メンバー等)は、多くの場合その
目的や目標を正しく理解していません。大勢で始める、もしくは、実施する人
達に社外の人(パートナ)も含まれる場合は、正しく説明する必要があります。
そのことを蔑ろにしたため、混乱が続いたり、正しく効果が出なかったりした
例を見ています。時には、一緒に作業し、話し合いの場を持つことで、その目
的を正しく理解してもらうことも行いました。

今回は、新しい試みを定着させるポイントをご紹介しました。これらはベース
であって、導入先の風土や成熟度によって、選択は変わってくると考えていま
す。要は、一度ついた火を消さないように大事に育てていくことです。皆さん
も、周りにあるものを利用して、まずは火をつけることからやってみては如何
でしょうか。(Hiroshi)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━--■--●--■
■
┗編集後記

こんにちは、編集人のナガタユウコです。オブラブ2010夏イベントにて参加者
のみなさまにお配りするノベルティが決定しました!何になったかはまだ発表
できないのですが、一昨年のエコバッグ、去年の扇子のように、イベント終了
後もみなさまに日常的にお使いいただける物にしました。ノベルティが目的で
イベントに参加するわけではないけど、貰うとちょっと嬉しい。今回のノベル
ティもそう思っていただけるようにしたいと思います。お楽しみに☆
(ナガタユウコ)

*** オブラブ2010カレンダー公開 ***
6月「実践 ライトニングトークス」
/special/#calendar
6月のテーマはライトニングトークスです。
ライトニングトークスは最近イベントでは定番となりましたね。その歴史につ
いては、KKD氏の記事が秀逸です。[*1]
過去のオブラブイベントでは、笑いあり、感動あり、涙、そして銅鑼。様々な
ライトニングトークスが展開されました。[*2]
現在オブラブスタッフは、夏イベントの準備を進めています。今回のイベント
でもライトニングトークスを行う予定です。そろそろ夏イベントのライトニン
グトークスで発表する準備を始めるのにいいタイミングですね。
みなさんの発表を楽しみにしてます。(千葉)
[*1] ライトニングトークスの歴史
     http://giantech.jp/wiki/LTHistoryForEM 
[*2] 昨年のオブラブ夏イベントのライトニングトークス
     /event/2009summer/session.html

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━--■--●--■
● ご意見、ご感想は         ⇒このメールに返信ください
〇 配信中止、アドレス変更は ⇒/community/object_ml/help/
〇 免責事項、過去の記事は   ⇒/community/object_ml/
■ 発行:オブジェクト倶楽部 ⇒http://ObjectClub.jp/
Copyright (c)2010 オブジェクト倶楽部. All Rights Reserved.
powered by Eiwa System Management, Inc.