********************************************************************** 分科会 S1-b テーマ:ワークショップによる開発プロセスの振り返り コーディネータ:木元峰之 氏 日時:2007/08/30 20:30〜22:30 参加者数:20人程度 ********************************************************************** 【概要】 やることは以下の2つ 1.ブラックボックス 数字を入力するとPICが計算して別の数字を出力する装置を使う. どのような処理をしているかをチームで考えて当てる. 2.間違い探し 間違い探しの本を利用して,チームで違いを探す. 20:30-,ワークショップ開始 3人で1チームを構成.4チーム組む. テーブルを組み換える. コーディネータから,各グループにブラックボックスが配られる. 使い方を説明. Enterボタンを3秒押すとメニュー画面になる. パスワード3922を入力すると,入力画面になる. 数字は50回数字を入力可能. 直前の入力した値と結果のみ参照可能. 結果はノートに記載していく. 数字を入力すると,ある別の数字が表示される. その数字がどのように計算されたのかを考える. 正の整数(2桁)を4つ入力すると,符号有り整数(3桁)が4つ表示される. 例) +AA +BB +CC +DD -> +CCC -AAA +BBB -DDD 計算式(問題)は全部で5つあり,この分科会の時間内では2つだけやる. 残りは,徹夜部屋で? とりあえず,練習(1問目)を開始. 数回入力して理論的に考えるチームと,とりあえずたくさん入力してみるチー ムがある. 「ビット列に直してシフトとかするのかな?」 20:54,いくつかのチームが,回答と思われる計算式を見つけた様子. 自己紹介をするチームもある. 20:56,練習終了. 一つめの答え. 問題番号:#3922(最初にブラックボックスに入力したパスワード) 入力:a b c d 出力:A=d B=b C=2c D=2a 最終的にほとんどのチームができた様子. 21:00,二つめの問題を開始.制限時間は30分. 問題番号:#0647 一度入力する度に,数式を立てて次の数字を入力するチーム. ひたすら数式を入力,計算式修正,入力,修正,入力,修正,入力,... 21:20,残り10分 どのチームも解けていない. 21:30,終了 解答と思われる計算式を導いたのは,4チーム中2チームのみ. じゃんけんをして,あるチームが考えた解答を発表. A=2a B=-c+8 C=3a-2c+1 D=3b-3d+7 そのチームの入力履歴(一部抜粋) 0,0,0,0 -> 0,8,1,7 99,99,99,99 -> 198,-91,100,7 1,1,1,1 -> 2,7,2,7 1,2,3,4 -> 2,5,-2,1 4,3,2,1 -> 0,8,1,4 0,0,0,2 -> 0,8,1,1 0,1,0,1 -> 0,8,1,10 コーディネータからの質問.考えた解答が,本当にあっているかどうかをチェッ クするにはどうすれば良いのか? 計算式が線形(一次関数)であると想定すると,単純に4元連立方程式として 解ける.線形でない可能性も考えると1億通りの可能性があり,単純な方法だ とカバレッジが狭すぎる.難しい... 続きは徹夜部屋で. 21:43,二つ目のテーマである,間違い探しを開始. 左右2つの絵がある紙を配布.チームで間違いをすべて探し出す演習. 間違いは全部で14個ある. 正確に時間をはかるため,紙を裏にして待機. 絵は白黒で漫画風のもの. 線がたくさんあるので,細かい間違いもありそう... 21:45,各チーム,一斉に開始. 21:50,5分経過.コーディネータが各チームに対して,発見できた数と,完了 までの時間見積りを質問. この時点ですでに13個まで発見できたチームが二つ. 21:55,10分経過. この時点で各チームの残り数 2,2,1,1 ほとんど探し終えている. あるチームでは,完了までの時間をあと5分くらいと予想. 21:57,あるチームが14個の間違いを発見(12分),トップ. 21:59,14個の間違いを発見したチームが出る,2番目(14分) 22:03,14個の間違いを発見したチームが出る,3番目(18分) 22:05,終了 1チームだけ,最後の一つを発見できず. チーム毎に,最初に見つけた間違いから順番に,ホワイトボードに○をつけていく. 他のチームとかぶっている場合には何もしない. どの間違いを序盤で見つけやすいのかを調べているのか?... 逆に,最後に見つけた部分も尋ねる. 序盤に見つけやすい部分と,終盤に見つけた部分の関係を考える. 22:11,グラフをかく. 横軸は時間,縦軸は見つけた間違い数. あるチームの成績をプロットしてみる. 3分:8個 5分:13個 10分:13個 12分:14個 最初はたくさん発見できるが,見つけるのに要する時間が徐々に長くなってい ることが良く分かる. コーディネータ「このグラフは,バグ検出曲線の形状と良く似ている」. 残りのバグ数が減ってくると,最後の一つはなかなか見つけられない. 22:16,ここでコーディネータは,議論テーマを提示 議論テーマ: 1.どうやったら早く見つけられるか? 2.残り時間をどのように見積もるか? 間違い探しと,ソフトウェアバグ発見を重ね合わせて考える. [1に関する案] 一人一人別々の紙を使って探す. 一人一人に担当の領域を定めて探す. 紙を見る向きを変える. 補助線を引く(コーディネータ) 紙を重ねる. ->これはソフトウェアでいうと自動化に相当?邪道か. では,短時間(5分くらい)でたくさん見つけるには? 人数を増やす. 分担して網羅的にやる. [2に関する案] そもそも見積りを諦める. ->現実のソフトウェア業界ではすべてのバグを取らずに収束した段階で出荷し てしまう. 初めてやる人と勝負をして勝つには? ->手法が重要となる. ->日常の開発に生かしてください. 【最後のまとめ】 自己紹介,ワークショップに対する意見 ・木元さん(コーディネータ) ブラックボックスは,米国のワークショップでやっている. 本当は自分でやりたいテーマ. 来年以降も続けたい. 間違い探しは,会社で実施してみた. ・参加者からの感想 ・本分科会をMLで知った. ・テーマが面白かった. ・難易度も丁度良かった. ・演習が面白かった. ・普段使わないものをやれて良かった. ・間違い探しのバグ曲線が新鮮だった. ・初参加で楽しくやれた. ・日常の業務とリンクしている.業務では,バグ曲線の傾きが0に近くなった ら終了している...開発に生かしていきたい. ・間違い探しという,分かり易いテーマを体験できて良かった. ・ブラックボックスのハードウェア製作もやりたい. 以上.