DevLOVE『学び方を学ぶ 〜オブジェクト指向の設計と実装を学ぶ〜』に参加してきた #devlove

告知後、結構なスピードで参加者枠が埋まってしまったこのイベント。幸い参加申込みすることが出来、この日参加してきました。

告知文の内容からも、とても興味深いテーマについてのお話が聞けると言うことで楽しみでもありました。


開催場所は-KDDI ウェブコミュニケーションズ@麹町。ここ最近こちらの会場で行われる勉強会にも良く足を運ぶようになっている気がします。駅から近く、とても綺麗な空間です。

はじめに


学習パターンをエンジニアの学びに適用するためには

さまざまなコンテキストでどのようなパターンが利用出来るかディスカッションを行う。


このセッションは井庭さん、増田さんの御二方による登壇&ディスカッション、そして合間に@papandaさんがトークを挟むと言った形式で行われました。可能な限りディスカッション内容のメモを取ってみたので以下にそのメモを整理して公開。

※発言内容等に誤りや修正がある場合は是非ご指摘頂けると幸いです。
  • 増田さん:
    • 学習パターンを見た時に、これだ!使える!と思った。いっその事井庭先生にお会いして是非お話したい。
  • 井庭さん:
    • 『学習パターン』には学ぶコツが載っています。
    • 現在これまでに慶応大(SFC)で教えています。
    • プログラミングは仕事では携わっては無いが、研究の中で携わってました。また趣味としても、小さい頃から数々の言語に触れています。
    • その中でデザインパターンの本を見ながらオブジェクト指向を学ぶ。それがパターンランゲージとの出会い。
  • 増田さん:
  • 井庭さん:
    • 社会の問題をエンジニアリングで解決、個人的にはコンピュータの事をやってきたけど立ち位置的には社会系、そんな場所で(言葉の世界で)勝負するとは(思わなかった)。編集にコンピュータは使うけど。
  • 増田さん:
    • 学習パターンをやられるきっかけは?
  • 井庭さん:
    • 学習パターンについては、受験勉強みたいなものよりも広いスコープで捉えている。クリエイティブラーニング。
    • SFCの現状(カリキュラム)について
      • 自分で自分の学び方をデザインする、という部分に突き進んでいる。好きなときに好きなカリキュラムを取れるようにしている。
      • 必要な時期に必要な知識をみにつけるために。でも必ずしもうまくいっているわけでもないらしい。
      • どういう考え方でこの中で生きていけば良いのか。
      • これをどうにかして助けたい、サポートしたいと思ったのが最初。
      • この科目群を取るとこういう仕事に就けるよ、っていうアプローチもやってみた→みんな取り終わってしまい取る科目が無い!思考停止状態に。→学び方を支援する、という方向にシフト。
      • 大学でどうサポートするか。学び方のコツを作った。
      • 2009年発表。学生からはあんまりピンと来なかったらしい。でもWebでは大反響。そこから盛り上がり、逆に学内でも反響。
    • 振り返ってみると目の前の大学生を支援してたが、…抽象的なのもあってか、多くの方に届いたのでは。
  • 増田さん:
    • 社会に出ると自分のスキル不足、知識不足に直面。(学習パターンに出会い)非常に魅力的に映った。これはコツとして上手く使いたい。
  • @papandaさん:
    • 学習パターンの概要について、もし宜しければお話し頂けますか。
  • 井庭さん:
    • 基本的には、学び方を学ぶためのメディア。学びのデザイン。(Leaning Pattern)
    • 発想自体を学んで居ないと、自分の経験に依存してしまう。
    • 自分の学び方を作っていく上でのヒントになれば。
    • ラーニングパターンの全体像:
    • まずはつかる:よくわからないからこそ、まずはどっぷりつかってみよう、それで違うなら違う。
    • ラーニングパターンの形式:状況/問題(フォース)/解決(アクション)
    • デザインとは、問題発見・解決である。(by アレクサンダー)
      • 学びのデザインとは、学びにまつわる問題発見・解決である。
    • 住んでる人たちが、自分たちで自分たちの街を作る。そのための支援をする。
      • 要求は言えるが、設計にまつわるトレードオフ等が抜け落ちてしまう危険性も。
      • どんな発想でトレードオフさせようか。そこから始まった。
    • Kent Beck・Ward Caninがむがソフトウェアの世界にこれらを持ち込む。
  • @papandaさん:
    • 井庭先生が言う『コツ』。この言葉(を採用した敬意について)は意図があるのか。
  • 井庭さん:
    • 『パターン』という言葉が、非常に損をしていると思う。型にはめる、的な。そこがマイナスイメージ。
    • 色んな出来事、事象に現れるものをパターンと理解していれば良いのだが…
    • そこで、コツ、秘訣、という言葉がよりしっくりくる。
    • 実は『コツ』に関する英語が無い。Tipsとかになると、ちょっと意味が違ってくる。
  • 増田さん:
    • コツ=骨(Bone)から来てるんだよね?ならばそれをいっそ向こうに持ち込んで見ては(笑)
  • 井庭さん:
    • こういった取り組みは、既に色んな分野でも始まっている。
      • 開発組織のパターン
      • 組織変革のパターン(fearless change)
      • アプレンティプス
    • もともとアレクサンダーは『フォーム』を書こうとした。コツや何かのやり方を上手く書いていけば、うまくいくんじゃないかなと。
  • ???:
    • フォームとシェープの違い?
      • 見た目の形:シェープ
      • 抽象的な構造:フォーム
    • パターン・ランゲージはより後者。パターンがあるから出来る。
    • 40パターンを知った上で、自分なりのやり方を組み立てていければ。40個が全てでも無い。
    • パターン=型にはめる、という意味ではなく、自分なりのものを作り上げていける。そんなイメージ
    • Kent Beckもそこに悩んだらしい。なのでプラクティスという言葉を使った。プラクティス=パターンで似ているイメージ。
  • 増田さん:
    • パターン=こういう結果になりました、という感覚?
      • 成長するプロセスの中にもパターンはあるような気がする。
      • 設計というものはマニュアル的な解法もあるとおもうが、いかに臨機応変に対応するというのが大事。
  • 井庭さん:
    • パターンで目指しているのが、他のひとがどういう風に学んだかを示すこと。
    • 言葉として(学んだことがない!)と理解させること。
    • 実際にこの言葉は使えるかどうか、何度も変えていって一番しっくり来るものを探していく。
    • 例)『何でも出来る日』というパターン(いきいきと パターン・ランゲージ)
      • 自分が好きな順番で仕事が出来る、そう考えているだけでものすごく楽しくなる(笑)
      • この辺ってソフトウェアであんまり意識されてこなかった分野。


ここで参加者からの質問。


  • Q.経験値をダンプしたいのだが、その辺のコツを是非!
    • 井庭さん:
      • 僕らも七転八倒しています。泊まりこみで考えたりもしています。
      • ラーニングパターンは僕らが大切だと思っていることを書き出している。
        • これを認知科学者がおもしろい!となっているらしい。
      • 普通の人として思うことを詰め込んでいる。
      • 最初はブレスト:『自分たちが大切にしていることはなんだろう?』
      • 高校までの学びとはちがう。KJ法などで整理。徐々にパターン化。後は書いて直しての繰り返し。
        • ※さらっと書いたように思えますが、全然そんな事無いです。ソリューションを1行で書く、というのはとてもむずかしい。
        • ※イラストも全部自分たちで書いている。34パターンあるが500枚近く書いた。パターンごとに象徴となるようなビジュアルイメージが無いと意味が無い。(※逆輸入的に『いいね!』と取り入れられているらしい。)
    • 学生たちがワークしている動画:2回に分けて7時間ブレインストーミング。@papansaさん『わ、若い…』(※延べ、300時間近くこれまでに掛けているらしいです)
    • 井庭さん:『この辺りの動画は、後でつぶやきますので。』



  • 増田さん:
    • 小さくやるにしても、対話の中で複数人でやるような事が必要?
  • 井庭さん:
    • 慣れてくると読者を想定した対話ができるが、最初は2人等で話すことが重要。
    • ペアでレビュー、お互いで見合うといった事をやる。
    • 2人が同じ思考に陥る場合も。お互いでレビューしあう方がよりよいかも?
    • ソフトウェアは色んな方法論、プラクティスが出てくる。新陳代謝が早い。→これは使える方法論。かなり参考になっている。
    • 一回、ある程度出来たらその後の『ライターズ・ワークショップ』なるものが。
  • 増田さん:
    • 今度これ、やってみますか?
  • @papandaさん:
    • "要求の記述"を今のパターンで扱うやり方で捉えると面白いかも知れない。
  • 井庭さん:
    • アレクサンダーは『建築家のナレッジをパターン化』をやったが、僕は逆もあると思っている。
    • →『住人達の日々のこだわりをパターン化』。
      • 先進国が開発援助する側の/途上国の立場での…
      • 大学でも『いかに美しく有りたいか』についてポジティブな女子会を10時間やってみたり。
  • 増田さん:
    • 『コツ』と『こだわり』近いものがある?
  • 井庭さん:
    • コツといってしまうと、何かやり方ばかりになってしまう可能性も。こだわりの方が幅広い。
  • 増田さん:
    • デザパタも『こだわり』を感じるところはある。
  • 井庭さん:
    • 『こだわり』とかには名前が付いてない、そこにどう名前をつけるかが重要。それがパターン・ランゲージと言われる所以。


この辺で時間が来たので御二方のトークは一旦区切り。ここからは参加者を交えての(Q&Aを含む)ディスカッション。

  • 1人目:
    • 最後の『こだわり』でピントくるところが。
    • 最近アジャイルをやっていて色々考える。2つ軸がある。
    • 『コツ:HOW』は:技術プラクティスの方に表現にちょうど良いかな、と。
    • 一方、『思い:WHY』『こだわり:NEEDS』が良い感じで当てはまる。
    • ここが整理出来ると、コミュニケーションもスムーズに進むのでは。
    • ==========
    • 井庭さん:
      • 組織の中でのこだわり、制度、ルールがあると思う。
      • 何でそうなのか?よくわかんないまま、ソリューションだけが形骸化される事も多い。
      • どういう状況でどういう問題が生じるから、の解決策として学習パターンが有効。
      • 状況・問題・解決が1セット揃っているから組織や文化を再設計するのに具体的な手段と成りうる。
      • なぜ?という点が失われる部分をパターンとして書きだすと効果的。
  • 2人目:
    • パターンを書くと伝達可能になる。
    • 学びかたをイノベーションしたいとすると、発明したいとすると、既存の学び方まではカバーできるが、成功体験では無い部分となると…
    • その辺りをLearnする所について、お聞きしたい。
    • ==========
    • 井庭さん:
      • 新しいパターンを作る、というと前段階になってしまうかもしれない。
      • パターン・シンキング:状況問題解決のセットで捉えて来るのに慣れてくると、新しいものが出てきた時に気付きやすくなる。

経験を掘り起こし、対話の俎上に載せる。
Experience Mining and Dialogues
      • SFC学長も『突き抜ける』について語ったらしい!
      • これまでの最大参加人数、最大で450人!
      • 面白い点:どんな経験をしているかというのが可視化出来るということ。
  • 3人目:
    • 今までお話した内容は『学び』に興味がある人に向けてのもの。
    • 学びに全く興味が無い人にはどうアプローチすればいいか?そういう人を対象にした事はあるか?
    • ==========
    • 井庭さん:
      • 色々な人相手にやってみました。
      • というか、大体こういった会に集まる人は意識が高いものです。
      • 逆に大学1年生は学ぶ事には興味が無い。あまり学び方をデザインしようとは思ってない。
        • でもそういうところでも成功している。
      • 学び=受験勉強だけではない。音楽、スポーツ等もありですよ!と前持って言っておく。
        • みんな騙されたと思って参加する。でもワークショップやったら好感触。
      • 学びの話から色々もりあがる、というのが今までの経験です。
      • プレゼンよりも学び方、がより引っかかると思う。
  • 4人目:
    • パターンを作るときのお話を聞きたい。これくらいの粒度、感覚にするといいよというものがあれば。
    • ==========
    • 井庭さん:
      • Rule of Threeというのがあります。
      • 厳密にはやってないけれど、わかるわかる!というのがなければ。
      • 具体的過ぎると困るが、ある程度扱いやすくするのにも抽象度のレベルを上手く調節。
      • (学習パターンのワークに於いては)全体から入ってくと、1個が持てるインスタンスが周りを観ながら調整出来る。
      • 全体からやる強み)
        • コラボレーションパターン130あった。もっとグルーピングしよう。で34に。→数の調整をしながらやった。
        • レベル感:可能かどうか。rules of threeが当てはまるか。
          • 方法論は幾つかの種類がある。
          • その分野ではないひとたちがインタビューして、パターンを紡ぎだしながらレビューを受ける、という手法も。
        • (※この辺については、井庭さんが本を書かれるそうです。来春くらいを予定?)
      • また、もう1つパターンランゲージに関する論文がありますので関連資料を後で配布します!


いやぁ〜、このディスカッション、内容の濃い〜こと濃い〜こと。
可能な限りメモを取ってみましたが、それでも所々抜けてる部分もあります。なので雰囲気だけでも感じ取って頂ければと。

『学びのワークショップ』ってのは、どの層でやってみても色々な発見があって面白そうですね。

ディスカッション中は必死に会話メモを取るので精一杯でしたが、当日は参加者全員に『ラーニングパターン』に関する小冊子が2冊配られてました!全然当日中に読めてなかったので後日じっくり読む!

更には、井庭さんからディスカッションの途中で配布します、と言っていた資料もディスカッション終了後配られました。『パターンランゲージ3.0』というテーマ。


オブジェクト指向設計と実装の基本スキルの学び方(学習パターンの実践)

本を読みながらコードを書き、コードを書きながら本を読もう。
[形式] レクチャー
  ポイント、ポイントで学習パターンをリファレンスする。たとえば、
  コードを実際に書くのは、「No.14 プロトタイピング:つくってはじめてわかることがある」、
  リファクタリングの目的のひとつが「No.35 書き上げたは道半ば:自分がわかるために書き下ろし、
  他の人がわかるように書き直す。」というパターンが適用できる等。

本日登壇された御二方のうち、増田さんについては以前DDD関連の勉強会で一度お話を伺っておりました。今回はそれ以来の講演(登壇/ディスカッション)拝聴となります。


増田さんの講演に関しては、早速スライド資料がUPされているのでこちらを直接御参照下さい。


本講演時には予定より時間が押してしまってましたが、押してしまうのも納得な程の内容の濃さ。言及されている書籍などについても、割と所有してるのにも関わらず殆どが積ん読状態…。(-_-;) これは当資料及び学習パターンに関する学び(主に当日配られた資料メインで)を終えた後はこれら書籍の読み進め、実践にも着手して行かねばならないですね。

スライド資料で言及されていた書籍やスライド資料について、別途抜き出して一覧しておくことでこの項は留めておきたいと思います。

ThoughtWorksアンソロジー ―アジャイルとオブジェクト指向によるソフトウェアイノベーション

ThoughtWorksアンソロジー ―アジャイルとオブジェクト指向によるソフトウェアイノベーション

リファクタリング―プログラムの体質改善テクニック (Object Technology Series)

リファクタリング―プログラムの体質改善テクニック (Object Technology Series)

  • 作者: マーチンファウラー,Martin Fowler,児玉公信,平澤章,友野晶夫,梅沢真史
  • 出版社/メーカー: ピアソンエデュケーション
  • 発売日: 2000/05
  • メディア: 単行本
  • 購入: 94人 クリック: 3,091回
  • この商品を含むブログ (312件) を見る
実装パターン

実装パターン

Effective Java 第2版 (The Java Series)

Effective Java 第2版 (The Java Series)

リファクタリング:Rubyエディション

リファクタリング:Rubyエディション

ケント・ベックのSmalltalkベストプラクティス・パターン―シンプル・デザインへの宝石集

ケント・ベックのSmalltalkベストプラクティス・パターン―シンプル・デザインへの宝石集

  • 作者: ケントベック,Kent Beck,梅沢真史,皆川誠,小黒直樹,森島みどり
  • 出版社/メーカー: ピアソンエデュケーション
  • 発売日: 2003/03
  • メディア: 単行本
  • 購入: 7人 クリック: 94回
  • この商品を含むブログ (55件) を見る
オブジェクトデザイン (Object Oriented SELECTION)

オブジェクトデザイン (Object Oriented SELECTION)

Object Design: Roles, Responsibilities, and Collaborations (Addison-Wesley Object Technologiey Series)

Object Design: Roles, Responsibilities, and Collaborations (Addison-Wesley Object Technologiey Series)

エリック・エヴァンスのドメイン駆動設計 (IT Architects’Archive ソフトウェア開発の実践)

エリック・エヴァンスのドメイン駆動設計 (IT Architects’Archive ソフトウェア開発の実践)

Domain-Driven Design: Tackling Complexity in the Heart of Software

Domain-Driven Design: Tackling Complexity in the Heart of Software


あ、この試みは是非やってみたい。今すぐにでも出来る部分もあるし、今後新しく作る何かに対しては適用して行きたいな。

クロージング

この時点で22時を過ぎようかという所でしたので、若干駆け足ではありましたが各種イベントの告知などがありました。

@papandaさんからはDevLOVE関連イベントについて。直近は以下2件ですが、10月にも興味深そうなイベント(そのうち10/15の週には、今回登壇された増田さんのDDD関連イベントが控えているそうです!)

Yasunobu Kawaguchi(TwitterID:@kawaguti)さんからは以下の3つ。

また、会場提供頂いたKDDIウェブコミュニケーションの方からも各種紹介、仲間募集などのお知らせが数点ありました。:-)



参加する前は若干ワークショップが入る感じの内容なのかな、と思ってた節もあったのですが、がっつり聴講スタイル、且つその内容が特濃であったためにこのエントリを書いている時点でもまだ十分に内容を噛み締め、復習出来てない状態です。途中にも書きましたが今回頂いたテキストをまずは読んでみて、そこから積ん読本を消化すべく、学びの幅を広げていきたいところです。

あとは井庭さん、増田さんも仰られていたようにまずは実践!ってとこですね。やってみて分かると言う点はどんな分野に於いても多々ある事ですし。

井庭さん・増田さん、また@papandaさん始めDevLOVEスタッフの皆様、そして会場御提供頂いたKDDI ウェブコミュニケーションズの皆様、ありがとうございました!


その他関連: