FTMBA Class of 2019のShinです。
今日はFall Bで履修したプログラミングの授業についてお伝えします。RossはTechnology & Operationsに強く、ITに関する見識を深めたいと思い履修しました。RossではSchool of Information(情報学部)の授業も取れるのですが、Rossの中にもテクノロジー関連の授業が充実しています。
「TO626 Mobile Innovation Development」というこの授業は、一言でいうとJavaのプログラミングです。プログラミングの基礎から始めて、最後はグループでAndroidのアプリを作る、という内容。学生のほとんどは初心者で、プログラミングのプの字も知らないとこからのスタートです。
最初の授業で教授がなぜビジネススクールでプログラミングを教えるか?について語りました。ポイントとしては、
・Technology is eating the world。テック企業が世界の企業価値ランキングトップを占めるように (2018ランキング Apple, Amazon, Google, Microsoft, Facebook, Alibaba)、世界はテクノロジーで大きく変わってきている
・どのような業界であろうと、今後ITと無関係のビジネスはない
・将来のマネージャーとして、プログラマーでなくとも彼らと会話ができるだけのリテラシーが必要
・さらに、RossのMBAの就職先はAmazonなどテック企業が多く学生の需要もある
最初はプログラミングのあいうえおを学びました。コマンドプロンプトやPowerShell(ヤバいハッキングしてる!と思いがちなあの画面です)で「Hello World!」を表示させるコードを走らせてコンピュータ言語がどういうものかを掴みます。それからAtomなどコードエディタを使って少しコードを発展させました。四則計算や条件分岐ができるようになります。
そこからAndroid Studioに開発環境を移してJavaアプリを始めます。
(ちなみにこのAndroid Studio、かなり重いです。Emulatorという、PC上に疑似スマホを表示させてテストするときには1GB以上メモリを使います。僕のパソコンは決して悪くないスペックなんですが、さすがにAndroid Studioを使っている間は遅くなりました)
授業中に、教授のPC画面を見ながら真似していくのですが、僕には予想しなかった障害がありました。指示通りインストールしたにも関わらず、Android Studioに必要なアドオンが入ってなかったり、テスト環境が機能しなかったり。授業中に教授の真似ができないので授業で後れを取って授業後に挽回、というストレスフルなサイクルでした。
そんな時に助けてもらったのがTeaching Assistantの学部生。ミシガン大School of Informationの学生で中学生の頃からプログラミングをやっているとか。授業にも出席する彼はヘルプが欲しい学生たちの引っ張りだこでした。僕も授業とOffice Hourで彼に助けてもらいました。どんなトラブルもすぐに解決策を見つけてくれるし、何より説明がうまい。こちらの意図していることをすぐに理解してくれるし、下手に専門用語を使わずこちらのレベルに合わせて話してくれます。
余談ですが、彼は卒業後Googleに行くらしいです。こういう優秀な学生がグーグルの発展を支えているのだなと思いました。
さて、授業が進み、中盤からグループプロジェクトが始まります。
5~6人のグループごとにビジネスに使えるアプリを考えて実、際に作ってみるのが授業のハイライトです。僕のチームには、在学中に起業してMBAの学生をターゲットにTravel Companyを始めたメンバーがいて、そのビジネスで使えるItinerary Management Appを作ることになりました。
まずやることはUI (User Interface)作り。要はユーザーが見るスクリーンの構成と、そこに表示する情報、そしてどのスクリーンからどのスクリーンに移動できるか、といったアプリのデザインを決めます。ここにビジネスの視点が深く関わってきます。
アプリを作る側からすると、ちゃんと動くアプリにするために必要な機能だったり、こちらが表示させたい情報、それから製作上の制限等があって、本当にユーザーにとって使いやすい視点が抜けてしまいやすくなる。ユーザーはこのアプリをどのような状況で使い、何を達成したいのか、といったことを理解して、製作者の独りよがりアプリにならないようにすること。
他のチームメンバーとユーザビリティテストをして、UIに反映させることで改善させていきました。
そこからFirebaseというグーグルが提供するデータベースや、GitHubというバージョン管理サービスなどを覚えて実際にアプリ製作を開始します。Firebaseは非常に便利で、これを使えばメールとパスワードでログインする、といった機能が簡単に作れてしまうし、データベースの情報の確認も簡単。もちろんいろんなデータベースがあるのでしょうが、アプリの裏側はこうなっていたのか、と納得しました。
チームプロジェクトではGitHubの使い方に戸惑ったり、作業分担が難しかったりと壁にぶつかりつつも、何とか形になりました。限られた時間の中だったので、妥協して機能を減らした点もありましたが、少しずつイメージが形になっていくのは楽しいですね。
授業では、個人でコーディングする最終試験もやりつつ、チームの作業を進めていき、このアプリは締切前日に何とか提出して終わりました。技術的には基本中の基本というところですが、プログラミングの仕組みと、プログラマー達が何をやっているのか、イメージがついたという点で有意義な授業でした。