クラフトマンシップの技術を説明するのは難しい。相手が上級管理職や役員ならば,なおさらだ。しかしながら,理解することが発想転換の鍵であり,技術的なプラクティスは優れたソフトウェア開発を行なうためのものであるのだから,それらを説明することは非常に重要だ。Mike Bowler氏は第7回のAgile Games Conferenceで,LEGOを使った技術的プラクティスのワークショップを開催した。
Agile Games Conference 2016は4月28日から30日まで,マサチューセッツ州ケンブリッジで開催された。カンファレンスの様子については,すでにInfo FRがQ&Aと記事で報告しているので,今回の記事は氏が指導した主なプラクティスを紹介する。技術的プラクティスの教育にLEGOをどうやって利用するのか,ワークショップを実施するにあたってどのようなフィードバックを期待しているのか,組織やチームにおけるメリットは何か,他のツールやゲームに比較してどのような点が面白いのか,といった一連の質問に対して,氏は親切に回答してくれた。
Mike Bowler氏が実施したワークショップは,Bryan Beecham氏が使用したものと同じだ。氏らはいつも,共同でワークショップを開催している。プラクティスさえ理解していれば,ワークショップの指導は簡単な上,安価(Legoがいくつかあればよい)で効果的である。中心的なプラクティスの実施には1時間も掛からない。取り上げるプラクティスは,主に次のものだ。
- TDD
- ペアプログラミング
- リファクタリング
- 技術的負債
- 継続的インテグレーション
今回のワークショップはLego Serious Play(R)のもの[LSP]ではない。インストラクションの内容は氏のWebサイトで公開されている(近日公開予定のTDDを除く)。
ワークショップは次のように実施される。
- 人と家を組み立てる簡単なウォームアップ – LSPでは必ず実施されるパートであり,安心感と参加意識の確立に役立つ。
- 最初の質問は家のコストあるいは人のコストについてである – いくつブロックを持っているか?実際にはいくつ必要か?これらはいずれも,リーン思考や“必要最低限”の概念に関連がある。
- 次にTDD+ペアプログラミングを導入する – ペアリングではひとりがテストを,もうひとりがコードを書いて,テストをパスさせる。
- 次のフェーズではリファクタリングを加える – ペアは最後のテストを破棄して,再度行なう。つまりリファクタリングを行なうのだ。
- 一番面白いのは,おそらく技術的負債に関するパートだろう – 氏が次々に投げ入れるテストを,使用したブロックをひとつも外すことなくパスしなくてはならない。その結果は ... よいものではない。違いを理解するために,もう一度同じことを,今度は制約を外して行なう。下の写真は,その2ラウンドの間の差を示すものだ。
- 継続的インテグレーションのパートでは,3つ以上のチーム(と十分な数のLEGO)が必要だ – 各チームはそれぞれ,前のチームの作業を包含するものを作らなくてはならない。必然的に最初の製品は不完全で,最後のものは,少なくともその2倍は改善されている。
InfoQ : 素晴らしいワークショップをありがとうございました。技術的プラクティスを説明する方法として,LEGOを使うことにしたのはなぜですか?
当初は技術系以外の人たちを対象に,技術的な概念を教えることが目的でした。ですから,いきなりコードについて説明する訳にはいかなかったのです。概念の説明に使用できるような,技術的ではない抽象化が必要でした。その頃,Bryan BeechamがLEGOを使ったTDDの練習法を考案して成功を収めたため,その方法が他のさまざまな訓練にも使われるようになっていました。LEGOが参加者の遊び心を引き出して,積極的に学んだり,試したりできるようにしてくれるのです。
InfoQ : ワークショップが対象としているのは,どのような人たちなのでしょう?誰でも参加できるのですか?
私たちはこの練習法をいくつかの方法で使用しています。マネージャに対しては,LEGOとその概念に重点を置いています。開発者を指導する場合は,LEGOによるエクササイズとコーディング演習を併用します。最初にLEGOで概念を紹介してから,そこで学習したことを補強するためにコーディングを行なうのです。
InfoQ : 最初のリファクタリング活動の結果を見て,私自身,少なからずショックを受けたのですが,ワークショップ終了後のフィードバックには,どのようなものがありますか?
まず最初に聞くのは,参加者がどれくらい楽しめたか,ということです。その次には,ワークショップで取り上げた概念やレッスンについて質問します。ほとんどの人たちが少なくともひとつの成果 – 実際の仕事に活かすことのできる成果を学んで帰ります。
InfoQ : このワークショップは簡単に開催できますが,長期的に見た場合,チームや組織に対して,どのような成果を期待できるでしょうか?
重要なのは,概念を理解するという点です。チームを長期的に支援するには,彼らの仕事にその概念が適用される必要があります。
私たちは参加者に,作ったものの写真を撮っておくように勧めています。友達に見せて楽しむのと同時に,レッスンで学んだことを覚えておくためでもあります。概念を確固たるものにするためにです。
InfoQ : 一部の企業では,“ゲーム”を行なうことをよく思っていません。このような状況で,彼らを説得するよい方法があれば教えてください。
問題はゲームではありません。概念を教えることが目的であって,その手段にゲームを使うという事実は,ほとんど関係のないことなのです。相当かたい企業であっても,LEGOを持っていってしまえば,それを片付けるようにとは誰も言いません。
この記事を評価
- 編集者評
- 編集長対応