DataSpider を使った教育について考える

本記事は **[アプレッソAdvent Calendar](http://qiita.com/advent-calendar/2016/appresso)** 第9日目の記事です。

アプレッソで東海・関西の営業を担当させていただいている築山と申します。

実は全く違う内容で 3週間ほど前に書き上げていたのですが、自分の出番を待つ間に別のことを書きたくなったので、以前に書いたネタはお蔵入りとなりました。
お蔵入りしたネタ**「ソフトウェア営業に技術力が必要な3つの理由」**は今回の内容よりずっとエモいものですので、別の機会にご紹介できればと思います。
***
##**何故このテーマ？**
最近**「教育のために DataSpider を使ったら面白いのでは？」**と思うことがよくあります。

色々なきっかけがあるのですが、大きなきっかけはハッカソンで中学生が DataSpider を使って開発をしてくれたことです。
このハッカソンでは、お父さんに連れられて参加していた中学1年生の子（仮称：Nちゃん）が DataSpider を利用することで、作品の最重要とも言える機能の開発に携わることができました。

ハッカソンの様子は当時のブログ（[前編](http://appresso.hatenablog.com/entry/2016/11/07/082755)・[後編](http://appresso.hatenablog.com/entry/2016/11/07/083137)）をご覧ください。

また、もう1つは先輩の言葉によって気づかされたことですが、「自分がクラウドサービスや Web API など DataSpider の周辺知識を深められたのは、**自主学習によるものではなく DataSpider が教えてくれたんだ**」ということに気づくことができたためです。

この2つの出来事により、**「DataSpider と 教育」**ということについて考えさせられたのが予定を変更してこのテーマを選択した理由です。

それでは、それぞれ具体的にお話させていただこうと思います。

##**DataSpider が教えてくれたこと**
###**～Nちゃんの場合～**
まずは 1つ目の「ハッカソンで中学生が使ってくれた」という話です。

中学1年生の Nちゃんはハッカソン自体は何度も参加しているベテランなのですが、これまではお父さんのお手伝い的な意味合いが強かったそうです。

それが今回「DataSpider を使ってみたい」と声をかけて貰い、実質作業時間2日のハッカソンで
　1.デバイスから HTTP で JSON 形式のデータを受け取る
　2.kintone にデータを格納する
　3.雑談対話 API を用いて会話文を生成する
　4.Gmail で通知する
　5.Twitter でつぶやく
ということを実装することができました。

＜構成図＞
<img width="450" alt="kaden.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/129487/a15c543e-626e-1515-4fb4-0c75c39478bd.jpeg">

この過程において Nちゃんには
　・Web API
　・変数
　・条件分岐
を理解してもらうことができました。（多分）

コードを書きながら上記5機能を実装し、更にこれらを1日の間に学習することはとても難しいと思います。しかし、DataSpider を使えばアイコン操作だけで実現できるので、コードを書くことと切り離してこれらを理解することができます。


###**～営業 築山の場合～**
では、続いて私の場合です。

去年、今年と Mashup Awards を含めいくつかのハッカソンイベントで DataSpider を使って開発することのサポートをさせていただいた結果、これまで苦手だと思って敬遠してきたWeb API に関する理解を深めることができました。（まだまだ勉強不足ですが）

これはたくさんのイベントでサポートしたからだと思っていたのですが、ハッカソン中にいただいた先輩からの一言により 「自分は DataSpider に育てられたんだ」ということに気付かされました。

＜先輩のコメント＞
>API の仕様書には細かく書かれているわけではないので、「その仕様書がどういう意味を持つのか」を考えるためにアダプタの機能を知っておくことはとても重要です！
**「HTTP の仕様としてこうあるべき」がアダプタの設定（画面設計）に現れているんだよ。**

これを聞いて「まさにその通りだな」と思いました。
上記は REST アダプタを使ってマルチパートのデータを POST するときの方法を質問したときのやりとりだったのですが、つい5日ほど前にも似たような話がありました。

Code for Osaka リサイクルハッカソンのサポートに行った際「Kinesis に投げられたデータをリアルタイムに受け取って DB にクエリを投げる」という要件があり、そこで DataSpider を使ってもらうことになりました。しかし、私自身 Kinesis を触ったことが無く、また Kinesis というのがどんなサービスであるかしっかり理解できていませんでした。

AWS Kinesis のページも読んでみましたが・・・・
>Amazon Kinesis Streams を使用して、データレコードの大量のストリームをリアルタイムで収集し、処理します。「Amazon Kinesis Streams application」と呼ばれるデータ処理アプリケーションを作成します。一般的な Amazon Kinesis Streams application は、データを Amazon Kinesis stream からデータレコードとして読み込みます。これらのアプリケーションは Amazon Kinesis Client Library を使用することも、Amazon EC2 インスタンスで実行することもできます。処理されたレコードは、ダッシュボードに送信してアラートの生成や、料金設定と広告戦略の動的変更に使用できます。また、他のさまざまな AWS サービスにデータを送信できます。

分かる人には分かるんでしょうが、私みたいな凡人には何のことかさっぱりわかりません。

しかし、Kinesis トリガーの設定画面を見ながら Kinesis 側の設定をされている方と話をすると「ストリーム」というのはデータベースで言うテーブルのようなものなんだ、様々なアプリケーションがデータを読んだときにそのアプリケーションを識別するためにストリーム内で一意となる「アプリケーション名」というものが必要なんだ、ということが簡単にわかりました。
＜AWS Kinesis トリガー設定画面＞
<img width="450" alt="Kinesis.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/129487/380f70b6-a001-2729-68e1-3983571b1697.jpeg">


このように私自身も DataSpider で連携する周辺の様々な技術について、製品を通して学ぶことができています。


###**～東急ハンズ様の場合～**
ここまで自分がすごい発見をしたかのように書いてきたのですが、実は既に DataSpider を教育に用いていただいているお客様が既にいらっしゃいます。

皆さんも一度は足を運んだことがあるであろう「[東急ハンズ様](https://www.appresso.com/case/1196851_1586.html)」です。

東急ハンズ様では、「現場にとって使いやすいシステムを作り上げるには、店舗の実状に詳しい社員がシステムを企画することが重要だ」という方針のもとに、店舗スタッフを経験した社員の問題意識と改善意欲によって様々な社内システムの企画が立案されています。

そのため、プログラミング経験の無い方が IT 企画に携わることが多いのですが、**DataSpider を使うことで社内のデータの流れを把握することができる**ということで、社員の方へのプログラミングの教材としても役立てていただいています。

###**～まだまだあります～**
これまでに紹介した以外にも DataSpider の機能を知ることで短期間で身につけられることがたくさんあると思います。

**WSDL の存在により、Webサービス の開発を効率化できる**ということを Web サービスアダプタの画面から知ることができます。
<img width="450" alt="SOAP.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/129487/0914672d-c99c-9fde-bcc8-96128ef30c06.jpeg">

メールアダプタにより、**メールのメッセージを分解すると「From」「To」「件名」「本文」「添付ファイル」などに分割される**ことを学べます。
<img width="450" alt="Mail.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/129487/f50be298-f0a7-bbeb-bd0c-7be52f0e2eec.jpeg">

スクリプトのトランザクション設定画面では、**一言にトランザクションと言ってもいくつかの種類があり、処理の内容によって考慮する必要がある**ことを教えてくれます。
<img width="450" alt="Transaction.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/129487/6d84515e-8722-9b47-8f45-f7faf103b2fb.jpeg">

まだまだいくらでも挙げられそうですが、このまま行くと50種類以上の全アダプタを紹介することになりそうなのでこれぐらいにしておきます。

***
##**これからのこと**
ご紹介してきたように多くのシーンで DataSpider を教育に活用することができますし、これからももっと活用できると思います。

私はエンジニア~プリセールス~営業 というキャリアを踏んできましたが、元々この業界に飛び込んだのは**「教育」**に携わる仕事がしたいと思ったためでした。
就職活動をしている時期には業界を問わず教育関連の仕事を探していて、「Microsoft 関連の教育事業を手がけている」というのが新卒で入社した会社を選んだ理由でした。

その会社は入社前に教育事業からは撤退していた（早く言ってよ・・・）ため、教育の仕事に携わることは無いまま既に13年経ち2度の転職を経て今の仕事をしているわけですが、**「今からでも DataSpider という製品を通じて"教育"ということに携わる機会は幾らでもあるじゃないか！」**ということに改めて気付かされました。

これは「学校や新人教育などの教育現場でプログラミング教育のためのツールとして DataSpider を採用してもらう」ということもありますし、「購入いただいたお客様が自身のスキルを高めるために DataSpider をもっと活用していただきたい」という気持ちもあります。

更には私自身が DataSpider を通じてもっと成長していきたいと思いますので、製品を育てつつその製品とともに育っていきたいと思います。

明日は文中に出てきた先輩のターンです。
<img width="450" alt="wakky.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/129487/e40ba32c-125f-9323-a3c2-3c8379014b81.jpeg">