パソコン甲子園モバイル部門に興味を持っていただいてありがとうございます。
この部門では、与えられたテーマから、皆さんの日常に潜むいろいろな問題を解決する『アプリケーション』を、皆さんが持つ『スマートフォン』を通して実現することを目的としています。
是非、皆さんのアイディアを、この機会を通して、『スマートフォン』上で動く 『アプリケーション』の構築の勉強をしながら、実現する楽しみを経験していただければと思います。
ところで、『アプリケーション』を作ることは、一朝一夕にはできないことですが、一方で、皆さんが使っているスマートフォンのアプリケーションは、『女子高生』のアイディアが重宝され、市場に出るものにつながるなど、『誰にでも』考えられ、『誰でも』学べば作れるというのがスマートフォンのアプリケーションです。
ここでは、皆さんが、どれくらい頑張れば、ちゃんとしたアプリケーションを考えて作れるかについてをお教えします。
なお、更にこれを踏まえて、上位を目指したい人のために、審査や過去の傾向からの意見を、上位入賞を目指して!に記載していますので、参照してください。
モバイル部門では、2段階の審査で、グランプリを決定します。7月初旬の締め切りまでに提出していただく『予選』は、企画書を用いて審査します。また、11月の『本選』では、作成したアプリケーションを中心としたプレゼンテーションとデモンストレーションで審査を行います。
予選の審査では、次の4つの点に注目して審査されます。
① 企画力: 皆さんのアイディアを形にするために必要な目的、問題点、構成要素、技術などを、文章や図を通してそれが素晴らしいことを伝えることができるかを見ます。テーマに対する発想力や、モバイルアプリの機能が活用されているか等を見ますが、企画書のきれいさや確かさはもちろん、矛盾なく、無理なく企画が立てられているかも見ます。
② インパクト: 皆さんのアイディアが、他にはないような、または他よりも優れているかを中心に、内容の面白さや新規性、メッセージがあるかなどを見ます。特に、審査員は『何故それが必要なのか』や、『それをすることで何が解決できるのか』を通して、それがどれだけ素晴らしいことなのかを評価します。
③ 実現可能性: 実際に、寄せられた企画が、無理なく、矛盾なく、そのチームが実際のアプリケーションを作り上げることができるかどうかを見ます。プログラミング能力や、アプリケーションを作る力そのものは見られませんが、十分にその企画を作り上げるために調べてきたか、それを実現させるための道筋が整っているか、企画書の構成がしっかりしているか等を通して、『指導すれば十分にアプリケーションを作ることができるかどうか』を評価します。どんなに力があっても、『無理難題』な企画を出せばこの点数は低くなります。
④ 実用性: 作るアプリケーションが、正しく皆さんの示している問題に対して解決を与え、ほかの人が良く使えるものかどうかを見ます。アプリケーションの機能が実用的かどうかを中心に、過不足がないかどうか、特に、不要なものや、加えると目的から遠ざかるようなものが企画の中に追加されていると、この点数は低くなります。
また、本選の審査では、次の4つの点に注目して審査されます。
① 技術力: 不可能を可能とするために、どのような技術を用いてそれらを作り上げたか、また、その技術の利用の仕方や、その技術がどれだけ新しく、優れているかを見ます。企画書の確かさや設計の確かさ、企画書からの実装の確かさ、ソースコードの確かさ、実装された機能の完成度、動作の安定性などを見ます。
② デザイン: 実現したアプリケーションが、楽しく、グラフィカルに、一目でそれとよくわかるようにデザインされているかを見ます。見た目や機能性、使いやすさを見ますが、近年では特に、シンプルで分かりやすいこと、アイコンが見やすく象徴されていること、チュートリアルやヘルプなどが充実していることなども含まれます。
③ イノベーション: そのアイディアやアプリケーションが、他にない、目新しいものであり、かつほかの人が想像しなかったものであるかどうかを見ます。完全に皆が『想像しなかった』という事はあり得ませんが、この中で、ユーザーが体験できる楽しさや、ビジネス性、独創性、発展可能性などが審査されます。また、同じようなものがあっても、どのような点で自分のアイディアが優れているかを明確にできれば評価されます。
④ プレゼンテーション: 本選では、スライドなどによるプレゼンテーションと、デモンストレーションセッションでの実際のアプリケーションを用いたデモを行います。この中で、どれくらい相手に伝わりやすく、自分の企画の目的や問題点、目指す解決と、その結果について伝えられたかどうかを審査します。
これらの視点を、企画から開発まで、よく見据えながら、企画を立て、開発していくことが重要です。
皆さんの出すアイディアがほかの人に良いモノとして伝わるには、やはりそれなりに手間と時間が掛かります。皆さんが中学や高校の学級活動や文化祭等で作り上げるものが、一朝一夕では出来ずに、時間とこだわりでできるものだという事は、皆さんが既によく知っていると思います。
実際に、企業がどんなに小さいソフトウエアを1つ作り上げるのにも、企画段階から見れば大抵3か月以上は掛かります。その間にどのようなプロセスを踏むかを考えてみたいと思います。また、時間的な指標は、大体高校生の皆さんの部活動(1週間に5日、1日2時間程度+夏休み期間の開発)を考えています。
1. 企画を練る段階: 0.5か月~1か月 (のべ20時間~50時間)
企画を練る段階では、アイディアをたくさん話し、そのアイディアがどれだけ周りの人を良くするのか、インパクトがあるのか、新しいかを評価します。企業では『売れるもの』である必要がありますが、パソコン甲子園では『夢があるか』や『知的に面白いか』が特に評価すべき対象となるでしょう。
『計画8割』という言葉もある通り、モバイル部門での賞の優劣は実はほぼこの段階で決まると思っていただいて構いません。それだけ重要な部分ですから、皆さんがこのドキュメントを見た時点から、7月頭の申し込み期限まで、次のステップの『ソフトウエア設計』を含めて、出来るだけ時間を作って議論を重ねてください。
特に良い企画書とは、『どんな人が見ても納得する』ものです。それはどう言うものでしょうか。そこには、以下の構成要素があります。
これらの要素を、ワープロソフトで文章化するのもいいですし、プレゼン作成ソフトでプレゼンとして作って戴いてもいいです。明確に、わかりやすく、ほかの人に”3分で伝わる”ものを作成してください。
2. ソフトウエアを設計し、実現可能かを見る段階: 1か月(のべ30~50時間)
続いて、ソフトウエアの設計になります。実際にどのようなソフトウエアであれば、あなたの企画を実現できるのかを考える段階となります。この段階では、皆さんが理解しやすいと思われる”図”をベースに、少しずつ『大まかなもの』から『細かいもの』へと企画を噛みつぶしていく作業をします。
一般的にUnified Modeling Language (UML)と呼ばれる図や表を用いた書き方が、ソフトウエアを設計する代表的な方法となります。
このUMLでは、最初に『要件』を定義します。要件には、『使用環境から来る全体のコンテキスト』と、『各使用者から来る要求』とあります。これらを書き出すために、ユースケース図やシーケンス図、インタラクション概要図などがあります。
次に、これらの要求を満たすためのパーツ分けを行います。どのようなパーツを用意すれば作れるのかを考えながら、それらを見ていきます。この段階では、特にモバイルやスマートフォン等を作る場合は、『画面単位』に作業が進むものと考えられますので、ステートマシン図(画面遷移図)を基準に、クラス図やオブジェクト図、パッケージ図などを作成していきます。しかしながら、クラス図やオブジェクト図などは、実際に作る時に矛盾を生じるケースが多くあったり、開発をたくさん経験した人でなければ容易に構築することができませんので、先ずは『画面遷移図』まで、考えることとしましょう。画面遷移図を見ながら、正しく自分が作りたいアプリケーションが表現できていますでしょうか?いろいろな人に、画面遷移図の状態であなたの作りたいアプリケーションがよく想像できるかを、聞いてみましょう。
また、今まで行った作業を通して、『どれくらいあれば、自分たちがそのアプリケーションを作り上げられるのか、そのスケジュール』まで見通せると思います。いつまでに、どの画面を作ればいいかを逆算しながら、スケジュール表を作成しましょう。Gantt Chartと呼ばれるスケジュールの立て方があります。基本的には、チームのメンバー以上の同時作業はありませんので、何時から何時までにその作業を割り当てるかなどを考えながら、メンバーの作業割り当てを行ってください。
3. ソフトウエアを構築する段階: 2か月(のべ200時間以上: 夏休み考慮)
ここから先は、あなたがもし予選を通過したら、本選までに行う作業となります。ソフトウエアを書くことは、小説を書くことに似ています。唯一違うのは、文章の校正の一部はコンピューターが行ってくれるという事です。開発ツールを正しく使えば、文法ミスや、バグ等を減らしながら少しずつアプリケーションのパーツを作っていくことができます。根気強く、スケジュール表と、開発するべき画面の構成を見ながら、どこまでできたか、毎日チェックしながら作ると、チームの進み具合を確認しながら上手にできると思います。
4. ソフトウエアが設計書や意図する通りに構築できたかをテストする段階: 1か月(のべ40時間~)
コンテストではあまり重要視されていない部分かもしれませんが、実際の会社では一番と言っていいほどに重要な部分となります。この部分では、細かい動作の定義を、画面遷移図やユースケース図から書き出して、それらが正しく動作するかをテストする部分となります。画面毎のテスト(単体テスト)は、その画面を作る毎にテストを行います。コツとしては、入ってくるだろうデータを、何か別なパーツとして簡単に定義して、そこからデータが送られてくる(スタブ)こととして、テストをすることです。また、幾つか画面が出来上がったら、それを繋いで、正しく遷移するかをテストします(結合テスト)。何度もテストを重ねて、正しく動作していることが確認できて、ようやくソフトウエアが完成となります。
5. 実際にソフトウエアを使って、デモンストレーションをする段階: 0.5か月(のべ20時間~)
11月の本番では、実際のソフトウエアを用いてデモンストレーションや、プレゼンテーションを行います。この段階でも、やはり本番で分かりやすく相手に伝えるための『練習』が必要です。企画段階で行ったような、3分で相手に伝わる説明を、+3分デモンストレーションを交えて行えるならば、非常に有効に相手にインパクトを与えることができると思います。
作るプログラムによって若干の変動はありますが、これらをチーム全体で行って、合計1人当たり200~300時間くらいで、本選に届く形になります。
パソコン甲子園は、毎年大体4月初頭くらいにその年の競技要項が公開されます。2012年の情報を基に、大体の流れを追ってみましょう。
前に述べた、企画から開発に掛かる時間を並べてみると、5月にアイディア、6月に企画書、8月から9月にプログラム作成、10月にテスト、11月に発表、となります。企画書は手書きが可能ですが、何度も推敲して、見栄えの良いものにしていただけると、評価が高くなります。
一部イラスト: Copyright © いらすとや. All Rights Reserved.