左から吉村氏、草野氏、清水氏

 プログラミングももちろん教えているが、プログラマーとして必要な能力は意外にプログラミングではなかったりする。例えば「ごく冷静に話し合いができる」といったことだ。これが意外に難しい。例えば、ある目的のためにプログラムを書いて「そのプログラムはダメだよ」と言われたときに、突っかかるのではなく「どこがダメなんですか」と聞けるかどうか。あるいは指摘する側になったときに「こんなもんダメだよ」じゃなくて「こうしたほうがいいね」ときちんと対案を持って提案できるか、なぜダメだと思っているかの理由をきちんと説明できるか。「相手を尊重して話す」という単純なことが大切だと伝えている。

授業の頻度は?

草野:月曜から金曜まで毎日、10時半から17時半まで。17時半から居残って開発している生徒もたくさんいる。

清水:今(注:インタビューを行った8月上旬)は夏休みだが、Wi-Fiと電源がある場所に集まって開発したいという要望があったので、ドワンゴが場所を提供している。生徒の意欲がすごい。

具体的にどんな授業をしているのか。

草野:ちょうどチーム開発をやっている。班分け学習のようなものではなく、会社と同じようなチーム開発をしている。

 まず24人の生徒から、立候補とこちらからの指名で6人のリーダーを決めた。二つのコースで3人ずつ。6人のリーダーが、自分のチームに欲しい人材と作りたいものを考慮しながら、どのメンバーを採るか話し合う。「彼をうちに回して欲しい」とか実際の会社の部長がやっているようなことをやっている。

二つのコースとは?

草野:Webサービス開発コースとゲーム開発コースだ。もともとはWebサービス開発コースだけの予定だったが、最初に生徒にアンケートを取ったところ、Webサービスとゲームで12人ずつに分かれた。そんなにやりたいんだったら先生ががんばろうということで、ゲーム開発コースも作ることにした。基本となるカリキュラムはあるが、そこから先は生徒がやりたいと言ったことをできるように努力している。どちらのコースも基本的にはJavaScriptを使っているが、競技プログラミングに出てみたいという生徒のためにC++も教えている。

どのあたりがチーム開発なのか。

草野:例えばリーダーがメンバーの勤怠も付けている。勤怠の付け方はリーダーに任せていて、「登校していないがチームの開発は家でやっているメンバー」をリーダーの判断で登校扱いにしていたりする。働き方に対するスタンスはリーダーによって全然違う。「とにかく学校に来い」というタイプのリーダーもいれば、「成果さえ出ていれば、どこで何をしていてもいい」というリーダーもいる。週に1回、メンバーへの評価をリーダーが作成し、進捗報告会で上司に当たる私に報告する。実際の仕事とほとんど同じようにしてもらっている。

 学んで欲しいのはメンバーは「リーダーに進捗などをきちんと約束する」ということ。リーダーは「約束を守らせるにはどうするかを考える」ということ。本物の開発者と同じように振る舞うことで、実際の開発の感覚を学んでもらっている。