[enpit] 学生・社会人(情報系)がWebアプリ開発&スクラムを無料で大学院大学で学べる機会について

# 背景
実務や自作でWebアプリ開発に携わる中で、
ふと大学等でシステムを学んでみたいと強く思った時がありました。

その時、[enpit](http://www.enpit.jp/)という無償の教育プログラムの事を知り、
早速出願したところ参加できたときの覚書と紹介です。
そしてちょうどこの春先の時期に出願期間があり、
興味がある方はぜひ出願されてみる事をお勧めします。
個人的にはとても有意義な機会だったと思っています。

# enpitとは?

![image](https://qiita-image-store.s3.amazonaws.com/0/150252/10a4a389-4c4d-9b07-d1e9-dd2472eb8401.png)


文部科学省が推進する[成長分野を支える情報技術人材の育成拠点の形成（enPiT）](http://www.mext.go.jp/a_menu/koutou/kaikaku/enpit/)プログラムです。
以下4分野があり、各参加大学・連携校にて専門分野を学びます。

・[ビッグデータ・AI分野](http://aibic.enpit.jp/)
・[セキュリティ分野](https://www.seccap.jp/basic/)
・[組み込みシステム分野](http://enemb.wpblog.jp/)
・[ビジネスシステムデザイン分野](http://bizsysd.enpit.jp/)


主に学部生・学院生向けですが、
産業技術大学院大学(AITT)では社会人も参加できるプログラムがあり、
私はこれに参加しました。
・[ビジネスアプリケーション分野](http://enpit1.aiit.ac.jp/)

![image](https://qiita-image-store.s3.amazonaws.com/0/150252/8db95bd1-a22d-b33d-6d21-76202518c8b2.png)

なお出願・選考の参加条件として以下が挙げられており、
③の条件枠で出願しています。

```
出願・選考
参加条件
【事前学習及び短期集中講義】 
① 情報系の大学院に在籍している
② 情報系の学部レベルの基礎教育を習得している
③ 情報システムの開発に関する実務経験を有する
```

※参加するきっかけは当時以下のWiredの記事を読んで興味を持ったからです。
[受講料無料！ 誰でもWeb開発者になれる、注目の大学教育プログラム「enPiT」](http://wired.jp/2014/03/20/enpit/)
その後、↓のように紹介記事も増えています。
[注目の情報技術人材育成プログラム、AIITの「enPiT」では何が学べるのか？](http://wired.jp/2015/03/23/enpit-report/)
[すべてのビジネスにはエンジニアが必要だ：IT教育プログラム「enPiT」、3年目の学び](http://wired.jp/2016/03/22/enpit-agile/)

# プログラム概要

主に週末土曜や祝日に開催されるので、
平日勤めている人にとっては有難い構成です。

・[カリキュラム](http://enpit1.aiit.ac.jp/curriculum#pLink01)

場所は品川シーサイドの産業技術大学院大学にて、
事前学習は講義形式、短期集中講義はグループワークと講義形式の両方です。
また産業技術大学院では、[AIIT単位バンク制度](http://aiit.ac.jp/admission/credited_student.html)を申請しておくと、
科目等履修生として修得した単位を蓄積し、正規の学生として入学した際に活用できたりします。

### 事前学習（6月～8月）
※内容は私が当時参加した時の構成で紹介しています。
#### ・短期集中講義への参加に備えソフトウェア開発の学修

```
Rubyによるプログラミング学習(文法、ライブラリ、フレームワーク(sinatra,Rails))
グループ開発の基礎(GitHubを用いての開発フロー)
```

正規生とenpit生が一緒に通常の講義を履修します。
Rubyを書いたことがない人も基礎から解説とコーディングをしていくので、
予習と復習をしていれば問題ないとおもいます。
自分が履修しているときに隣に座っている人は、
普段は地質調査系のお仕事をされている理系の人でプログラムの経験はないけど
学びたいと思って履修されている方でした。
雰囲気は静かで落ち着いた環境なので、授業終えた後に自習室や図書館で自習もできます。

### 短期集中講義(9月,10月)
#### ・コラボレイティブ開発特論（必修科目）

```
ビジネスアプリケーションを構築するための基礎力となるプログラミング力を磨く。
Railsアプリを作る方法を実践的に学ぶ
(外部API連携を用いた開発、GitHub連携によるdeploy(Heroku),CI等)
```

Railsアプリケーションを開発後、GitHubを用いた開発・外部連携サービス(自動テスト環境：CI)、
サーバーにリリース等する手順を学びます。
実務で利用したことがない人でも基礎から学べるので問題ありません。


#### ・アジャイル開発手法特論 （必修科目）

```
スクラムの概念から開発フロー等を講義とグループワークで学ぶ。
```

講師以外にもスクラム開発系のコンサルの方や、認定コーチの人からフォローをしてもらいつつ、
チームでのスクラム開発をグループワークで学びます。
このとき概念や、デイリースクラム、KPT、バックログ、スプリント、スプリント計画等を実践で学べます。
不明なことがあったり、課題解決で困った事があった場合はすぐにフォロワーに相談できるので手厚い仕組みです(分散PBLでも同じく)。

### 分散PBL

```
チーム単位での分散PBLによりビジネスアプリケーション開発の実践力を修得
>楽天株式会社が提供する各種API（Application Program Interface）を利用して、ビジネス展開も可能なWebサービスを作成します。作成中のサービスは一般に公開し、ユーザーの意見を集めます。ユーザーからのフィードバックサイクルを回しながら、価値の高いサービスを育てるために、近年脚光を浴びているリーンスタートアップ手法およびアジャイル開発手法の一つであるスクラムによるプロジェクトマネジメントを行います。
```
問題解決型教育のPBL（Project Based Learning）についてこの時初めて知りました。
これまで学んだ事を基礎として、数人でチームを組みます。
チーム毎に12スプリント(1スプリント1週間)で、一つのWebアプリケショーンサービスを完成させ、
成果(作ったサービス)を発表します。

1スプリントの内、毎週土曜日の午前中にデモがあり、
その週で作成したところ・課題等について発表します。
発表の際には、他チーム、講師やフォロワーの人も加わり、みんなでディスカッションします。
当時は沖縄チームや遠隔地からのデモも加わり、
リモート機器を介してインタラクティブに実施していました。
土曜の午後はKPT、翌週のスプリント計画、
タスク割り当てをチーム毎で行い(平日に実施してもOK)、翌週のスプリント開発に備えます。

開発進める方式は各チームで決めますが、土曜の午後大学院で開発したり、平日の夜で予定が空いてる日に集まって議論・開発したり(週一回)するチームもあったりと、個々の予定を加味してチームのみんなで決めていきます。
土曜午前のデモDay以外は、スプリント計画でアサインしたタスクを個々人で開発していけますが、
Slackで空いてる時間にタスク状況や課題・相談を共有したり(平日夜とか)、
appear.in等でグループ会議をしたり等、チーム毎で工夫していた感じです。


### 修了後

やる気と学習次第で今後のサービス開発や学習にとって、
大事な実践的な問題解決能力を身につけられると感じています。
また修了後、思っていたよりも立派な修了証が届きました＾＾
もし興味をお持ちになられた方がおられれば幸いです。