1年のアプリ開発の振り返りポエム
※ 技術的な話は1ミリもありません。
2021年2~3月にかけてスマートフォンアプリを開発・リリースしました。アプリの名前はSUEPです。このアプリは島根大学の学生向けアプリで、島根大学に関連するあらゆる有益な情報を収集する(ことを目指している)アプリです。
元々私一人で開発を進めていたのですが、やりたいことに対して人手が足りず、途中から人を集めてチーム開発をすることにしました。
正確なリリース日は2021年3月24なので、リリースから約1年経った記念に、開発に関して色々感じたことを書いておこうと思います。
きっかけ
もともとこのアプリの開発を始めた最も大きなきっかけは新型コロナウィルスの蔓延でした。
そのころ、終わりの見えないコロナ禍で色々な面で困っている大学生の話を頻繁に聞いていました。ただでさえストレスの掛かる新学期に、大学からの通達で「大学での活動禁止」「県外からの移動の際には〇日 or 〇週間の自宅待機」といった制約がかかり、中々自由に活動できない方が多くいました。
一方、大学側の対応に不満を抱く方も多かったように思います。大学は学生に対してキャンパスに来ないようにお願いしていましたが、中々そのお願いに見合ったサポートは用意されていませんでした。
さらに、大学から発信される情報はアクセスしにくい場所(サイト)で配信されていたり、全くもって学生に便利なシステムにはなっていませんでした(現在もそうですが)。
この当時、個人的に「問題だなあ」と感じたのが学生にとって有意義な情報があらゆるプラットフォームに散らばりすぎているという点です。
大学公式のTwitterアカウントから学生向けの情報がつぶやかれることもあれば、時にはホームページ上でつぶやかれることもあり、そして時にはYouTube上で…といったような状況でした(残念ながら現在もそうですが)。
そこで、この問題を解決すために「1つのプラットフォームで島大の情報を網羅するアプリを作ってみよう!」と考えるようになりました。
そもそも有意義な情報 is 何
しかし、アプリ制作を初めて最初に躓いたのが、いったい誰のためのアプリにするのかという点でした。
当たり前ですが、人によって「重要だ」または「有意義だ」と感じる情報は異なるため、どういった情報にフォーカスするべきなのか迷うことが多々ありました。
要件定義もそうですが、ユーザーのターゲティングなど、当時の私は何も知らないことが多く、非常に非効率的な開発を進めてしまっていたのをよく思い出します。こうした背景から、(今でもまだまだそうですが)このアプリが誰のためのアプリなのかという点を考え切れていませんでした。
アプリ開発
始めに話した通りですが、リリース当初は一人でアプリを開発していました。
しかしながら、やりたい事に対して私のキャパシティが追いついておらず、一緒にプログラミング・デザイン・広報 etc. をしてくれる人を集めることにしました(合計で5人くらい欲しかった)。
一緒に開発に携わってくれる人を集め初めた最初の2か月くらいで2人、次の5か月で4人集まったのですが、現在では私を含め開発メンバーは2人しかいません。
なぜこのようなことになったかというと、私が独学できない人をサポートしきれないからです。
今回、開発に携わりたい人を集めるうえで条件は特に定めていませんでした。そのため、
- 「プログラミング未経験だけど興味があります(作りたいものは特にないです)!」
- 「デザイナー…?いや(プログラミング未経験だけど)プログミングしたいっす…」
という人も集まってきました。もちろん、今までプログラミングの機会が無かっただけで、一度プログラミングの楽しさを知った後に勝手に沼にハマるタイプの人もいるので、プログラミング未経験者をdisっている訳ではありません。
ただ、今思えば、集まってきた人たちの大多数が「最近話題によく上がるプログラミングとかいうコンテンツに興味あるし首突っ込んでみよ」という比較的軽い考えを持っていたように思います。
これを踏まえて今後どうするのか、考えた結果、ミーハーなだけの方々ほとんどの場合友達も連れて見学に来るので簡単に見分けが付くので、今後は一人で勇気をもって見学に来た人だけに対応しようと思っています。
独学できる人はとても貴重
これもまた人を集めてみたからこそ分かったことですが、独学できる人は貴重です。
私自身、幸運なことに学部生時代に所属していた部活同を通じて、ジャンルは様々でしたが、独学できる人に多く出会ってきました。
放っておいても自分でアプリ作っちゃう人、好きな学問を独学できる人、好きな何かを改造する人 etc. 色んな人がいました。
その当時は気付かなかったのですが、最近では、自分もこの独学できる人の一員で、何かモノを作るために勉強が必要ならそれを独学できて当たり前という価値観を持っています。
少し話が変わりますが、今回アプリ開発に興味を持ってくれた方の中で、非常に困惑した例を挙げておきます。
- 何かエラーにぶつかったとき、エラーの内容を読んでくれない / 一旦自分で調べてくれない
- フレームワークのチュートリアルを一人でやってくれない
上記の例に通じているのは、問題の解決に一人で挑めない/ 挑もうとしないという点です。
初めて触るフレームワークのチュートリアルであっても何か予期しないエラーなどが起こるのは想定しえます。また、プログラミングの途中で初めて出会うエラー文もあるでしょう。私自身もそういったエラーに遭遇したことはあります。
こうした問題に対面した際、私たちのチームでは45分以上掛けて解決できなかった問題は人に聞くように定めています。ただし、これは45分間全力で調べたけど見つからない場合を指しています。
このような開発規則を定め、事前にしっかりと説明しているにも関わらず、私一人ではできない or やりたくないから始めから誰か付き合ってとお願いされることが何度かありました。
このようなお願いをされて付き合ってもお互いに成長が無い時間になってしまううえ、私自身がそこまで時間を割けないので、基本的に難しい問題についてのみ質問を受けるという仕組みにしていました。
逆にこの仕組みに納得して今まで一緒に開発で来ているのは一人だけです。
ここからも分かる通り、一人でも調べたり勉強したりして問題の解決に挑める人材というのは貴重です。
最後に
良い経験にはなったけど、多分一人で開発してた方が開発スピードは早かっただろうなと今では思っています。
ただ、チーム開発の良い点は技術や知識の俗人化を防げる点にあるとも思っていて、仮に何かしらの形で援助を受けながら長期にわたって開発・管理する際にはチーム開発がベストだろうとも思っています。
就活が落ち着いたらまたがっつりアプリ開発に戻る予定ですし、最近は時間のある時にAWSを使ったネットワーク・サーバー構築本と睨めっこしてます。