ミッションたぶんPossible

どこにでもいるシステムエンジニアのなんでもない日記です。たぶん。

第一回Flex勉強会の感想 「事前準備・運営」編

ちょっと間が空きましたが、前回の続きです。

勉強会で専用テキストを作成のは大変だけどメリットも大きい

以前にもちょっと書きましたが、Flex勉強会で使用しているテキストは市販のものではなく、全て自前で作成しています。今回は主に@ITの記事を参考にしました。


まず前回の勉強会は日程が非常に限りられていたので、市販のFlex入門書のように初級者レベルの知識全体を広く網羅したようなものだと、本当に覚えてほしいところを的確に教えられないような気がしていました。「業務に直ぐ役立つ」という勉強会の大前提を適えるのにイマイチ適していない本を用意するのもいかがなものかと思いましたし、何より入門書とはいえ技術書は結構高価ですから、それらを受講生に購入してもらうのに気が引けた、と言う理由もあります。


このテキスト作成には、良かった事と悪かった事、それぞれあります。


まず悪かったこと、というか、まぁ被害者はオレひとりなんですが、とにかく作ること自体が大変なことと時間が無いことです。

この頃、オレは従事案件が非常にヒマだったので、お陰でなんとか自転車操業的にテキスト作成を行うことが出来ましたが、本来であれば専任でテキスト作成に取り組まなければ間に合わなかったでしょう。実際、出来上がったテキストは内容に間違えも何度かありましたし、いまいち図解も少なく色々と不足も多くて納得のいっていない部分も多いです。ひどい時には前回分の課題を受講生にやってもらっている最中にその日のテキストを仕上げた、ということもありました。勉強会の開催は毎週土曜の午後でしたが、おかげで土曜は朝から、いや、金曜の夜から(といってもちゃんと終電では帰ってますけど)勉強会が終わるまで会社にずっと居続けるハメになったわけです。

あと、一応プログラムのテキストなので、書いてあるソースコードはコピペしてコンパイルしたら全てちゃんと動作することが保証される必要があります。これもオレ一人でやったので、テキストを書きつつ、AS3を書きつつ、というのをやってました。幸い、従事案件もFlexを使用していたので、時々こっそり暇な時間に勉強会のサンプルを書いたりもしてたんですが、従事案件で使用しているのがFlex2、勉強会で使用するのがFlex3だったので、若干の違いに悩まされました。…といっても大したことは無く、Flex2だとバグか何かでまともに動かないところが、家にソースコードだけ持ち帰ってFlex3で動かしたら綺麗に動きました、あの苦労はなんだったんじゃ!? といった程度ですけど。
座学で使用した資料(RIAとは?Flexとは?みたいな内容)は、それ以前のプレゼンで使用した資料をそのまま流用しました。こちらはこちらで以前に100時間くらい徹底的に練って書いたものだったので、ある程度自信を持って提示できる内容にはなっていたのですが、それだけにその他の箇所のショボさが浮き彫りになってしまいました…。


反面、良かったことですが、当初の狙い通りに自分の行いたい講義に沿った順番・内容のテキストに仕上げることが出来たのは大きかったです。

あと、これは後から思ったことですが、一回目の勉強会でテキストを一から作っていなかったら「これを新人向けのカリキュラムに仕上げよう」とまでは思わなかったかも知れません。結果的に目標のハードルは上がってしまいましたけれど、グループの「RIA開発の行える人材の供給の容易化」という意味では、より意義のあるものになったと思っています。

もう一つ、テキストが手作りで不十分であるがゆえに、それの改善を行うために受講者が意見を出してくれるようになったことです。前回(第二回の初回)くらいから中堅クラスの後輩から「テキストのここをこうした方がいいんじゃないですか?」というような意見を上げてくれるようになりました。これ自体はFlex勉強会、もしくはその後の新人向けカリキュラム作成に対しては、テキストの内容がより充実した、という以上の意味は無いんですが、後輩の積極的な姿勢や成長の度合いを見て取れた、と言う意味では価値が大きかったですし、なによりオレ自身が非常に嬉しかったです。

課題のサンプルアプリが難しすぎた


前回の勉強会では、課題で「Windows Explorer」と「ショッピングカート」を開発対象のサンプルアプリとして設定しました。


Windows Explorer」は要するにOSのWindowsの「フォルダ」のことです。ツリータイプの、表示/非表示の切替が行えるUIを左側に、アイコン形式と詳細形式の表示を切り替えられるUIを右側に置き、画面上に「ホーム」「上へ」ボタンなどを用意した画面です。今回は社員名簿をWindows Explorer風に実装してもらうことにしました。

このサンプルアプリの目的は、DataGrid、TileList、Treeの扱いを覚えてもらうこと、ViewStackやremoveChild()などで動的な画面開発を覚えてもらうこと、TreeListとArrayCollectionをどうように連動させるかを考えてもらうこと、などでした。


「ショッピングサイト」は、よくFlexの入門書に載っているDrag & Drop機能の付いたショッピングサイトです。本当は発注処理まで実装して、住所等の入力欄に入力チェック機能なども体験してほしかったんですが、時間が足りなくて断念しています。Drag & Drop機能、DataGridやTileListとの組み合わせ、あとはフィルタ(条件絞込み)機能を体験してもらうことがこの課題の目的でした。


「実践でFlex3を活用する」ことを目標とした場合、この課題設定は適切だったと思っています。…適切でなかったのは、勉強会の開催時間ですね。どちらもかなりのボリュームの開発を必要とするアプリですが、勉強会自体は4〜5時間を1回として全6回しかないわけで、その中でなんとかしようと言うのがそもそもの間違いでした。

宿題にしたら足りない時間を補えるなんて思うな


じゃあ完成できなかった分は宿題で、というのが当初のスタンスだったんですけれど、いやぁオレも30年も人間やってるくせにちっとも「人間」という生き物が分かってなかったですねぇ。








宿題なんかやってくる訳が無ぇ。




まぁそんな訳で課題を完成することが出来た人はひとりもおらず、当初立てた崇高な目標は淡くも崩れ去った次第です。いくらやる気があっても人はそんなに勤勉になれない、受講生達の自主性に任せていると当初の目標には達成できない、ということは今更ながら勉強になりました。いや、皮肉でもなんでもなく。
みんな普段の業務が忙しいでしょうし、仕事が終わってから自宅で課題を進めるだけの精神力が振り絞れなかったんでしょう。それが憂鬱の原因になって、土曜に勉強会に来づらくなって貰っても困りますし。なかなか難しいですね、勉強って。


そんなことがあったので、今回の勉強会では、課題は全て勉強会の時間内で終わるように、課題開発の時間をかなり多めに設定しています。これでちゃんと終わらなかったら…、どうしてくれよう?

受講生の人数設定を欲張ると頭がパーン


ぶっちゃけた話、座学であれば参加してもらえる人は何人でも特に問題ないと思います。100人でもたぶんOK。…OKというのはあくまで「講師役(この場合はオレ)の手が回らなくなることはない」という意味です。受講生達が適切に理解しているかどうかは別の話です。


正直なところ、座学の段階でその人がどの程度理解できたかは、講師役からはさっぱり分かりません。なにせ基本的にリアクションが無いので。「分からない」と言わない代わりに「分かった」とも言ってはくれません。こちらから「大丈夫?分かった?」と聞いても「はい、大丈夫です」としか返答はありません。これで実際にプログラミングやらすと全然駄目、ということはまぁよくあることでした。講義型の勉強会の場合には、どうしてもこうなってしまう傾向がありますね。


逆に、実習はというと、始めた途端に質問がそこらじゅうで連発する、質問が無いなぁ順調かなぁと思ってそーっと後ろから覗いてみると腕組みして止まってる、ということが起こります。こんな事が複数の受講生に同時多発的に起こるんです。こうなるともうオレの手には負えません。前回は参加者が10人いた状態で完全にパンクしましたから、多分適正な参加者の人数としてはそれ以下になるんだと思います。欲張って一度に多勢を面倒みよう、なんて考えちゃいけないんですな。もしやりたいならアシスタントをつけるとか、そういう対応が必要になりそうです。…まぁ今回の勉強会では結果的に人数が絞れてしまったので、幸か不幸かアシスタントはあんまり必要なさそうです。





あと一回だけ続きます。