高専プロコンを終えて

f:id:pkoonn:20161019215514j:plain 先日10/8-9に全国高専プログラミングコンテストに参加してきました。 プロコンには2度目の参加で今回は課題部門に参加しました。 このプロコンで学んだこと、感じたことについて書こうと思います。

まず、どういうものを作ったか。
私たちのチームは「GPSあーとなび」というWebアプリ、Androidアプリを開発しました。 今年の課題部門のテーマは「スポーツで切り拓く明るい社会」です。私たちはアプリ名にも入っている、スマートフォンGPSログ機能によって取得された軌跡によって地図上に絵を描くGPSアートに着目し、サイクリングやジョギングをより楽しみ、地域の魅力を感じたり仲間が増えたりすることによって明るい社会を作ろうという目的で開発しました。例えば従来では、GPSアートを作成する際に一筆書きできる+地図の道に沿って絵を描かないといけませんでした。ですが、本アプリは描きたい絵が非連結でもその絵を走行するための最短経路を自動生成できることから、よりGPSアートを作成しやすくすることができます。また、SSL認証済、AndroidアプリはPlay Storeにリリースしました。

f:id:pkoonn:20161019215748j:plain

役割
私はプロジェクトマネージャとして7人の開発メンバーにそれぞれ指示を出したり、開発計画を立てたりしていました。またプログラマーとしてRailsでこのアプリの機能全般を担当し、マイページ、元GPSアート作成ページ、プラン一覧ページ、お気に入りユーザ、プラン等を作成しました。 また、プロコン当日ではプレゼンテーションをしました。

反省点
今回、私が開発計画を立て、プロジェクトマネジメントをしましたが、その中でもっと時間に余裕をもって開発するべきだったなと思いました。プロコン1ヶ月前頃はメンバーに短い期限で仕事を任せることもあり、申し訳なかったと思っています。また、本選でデモンストレーションを行ったとき、一般の方や企業の方々からこのアプリに対してたくさんの意見をいただき、私たちが発見できなかったこのアプリの魅力や可能性を見出していただきました。そこで、アイデア出しの時点でもっとアイデアを煮詰めて、もっと考えることができればこのアプリはもっといいものになったのではないかと考えました。そして最後1番の反省点は、ウォータフォールではなくアジャイルで開発をするべきだったという点です。今回、開発ツールとして使用したRails,Gitはほとんどの開発メンバーが未経験で、最短経路の計算部分を担当したメンバもJavaScriptやgoogleMapAPIについては初心者でした。なぜなら、内部設計をする際には私はRails未経験でjs部分を担当するメンバーも仕様を深く知らなかったので、具体的にサーバに保存する形式、クライアント側に送信する形式を決めないまま、Androidリリース2週間前に結合テストを行った結果、jsではグローバル変数を仕様しておりAPIの読み込み順序等でいろいろバグが起こり、リリース日が遅れてしまいました。ですので、これから行う想像演習では内部設計をしっかり行い、結合の段階で問題が起きてもすぐ対応できるようにアジャイル型開発で行おうと考えました。

全体を通して
今回の開発も去年と同様つらいこともありました。今回はリーダーという役割から、全ての指示や選択に責任がついてきます。この期間でこの人に任せてどのように行うのか、指示を出すのは難しい部分もありました。その中で、私が指示してないことも自分で考えてここはこうした方がいいのではないかとアイデアを出し、行動を起こしてくれる後輩や、私の体調を気遣ってつれる同級生の開発メンバーがいてくれて乗り越えることができました。開発中の期間はデバック時のエラーで悩まされたり、いろいろな資料の提出期限に追われたり、つらいつらいの繰り返しでしたが、動いたときの心にドンっと押しかかる感動を開発メンバーと味わうことが私がプロコンに出場した理由でもあります。やっぱりチーム開発は楽しい。その気持ちは今回も変わりませんでした。

これから
このアプリを今月末の高専祭の作品展示会で展示したいと考えているのでそれまで一旦サーバを停止して、改良を加えて行く予定です。私はもっとこのアプリは時間をかければ面白いいいものになると確信しているので自分が納得するまで作り上げて行きたいです。 f:id:pkoonn:20161019215935j:plain