同じ大学の友人にハッカソンについて説明する機会があったのでネットの海にも放流します。
誰?ハッカソンの参加歴は?
今までで合計6個ぐらいのハッカソンに参加しました。
そんなに多いわけではないので間違っている部分があると思います。指摘してください。
ハッカソンの定義をWikipedia から引用してみる
ハッカソン(英語: hackathon 、別名:hack day ,hackfest ,codefest )とはソフトウェア開発分野のプログラマやグラフィックデザイナー、ユーザインタフェース設計者、プロジェクトマネージャらが集中的に作業をするソフトウェア関連プロジェクトのイベントである。
ちょっとお堅い文章なのでまとめると
数日間~数週間集中して開発を行うイベント
ハッカソンでやること
全てのパターンでやることを書くと文章量が爆発するため、一部にしぼって書きます。
今回説明するモデルケースの前提とか
- 土日開催
- 技術者向けハッカソン
- 企業が主体となりスポンサー企業が複数社付いている
1日目
1日目はチーム作りとアイディアソン
ある意味一番重要なところチーム作りでミスったりアイディアの合意が取れてなかったりすると色々大変な目に...
作業スピードが早いチームは午前中にすでに開発に取り掛かるところも。
チームによっては徹夜で作業を進めていくところも...!
個人的には徹夜で作業をする必要になるのは作業量か効率のどちらかの見積もりを間違えたのかなーとか思ってます。 効率が落ちるので徹夜厳禁. 絶対に嫌だ。
2日目
開発本番の日、とはいえども新規機能の実装などは前日までに終了しているのが理想的。みたいな。
午後から発表があったりする。
デザイナーのいるチームのプレゼン資料は異様に綺麗。
ハッカソンに参加することで得ることができるもの
- 成果物
- チームでやり遂げた充実感・肯定感
- 短い時間の中で何をして何を切り捨てるべきかの判断
成果物、特にチーム開発が少ない学生のうちなら参加しとくと就活でのネタになるかなとも。
一番最後の奴は特に重要だと思っていて、ハッカソンに参加する人でたまによくいるのが「すごく壮大なものを作ろうとして結局何作りたいのかよくわからない割に、チームの人は徹夜明けみたいに大変そう」みたいな悲しいパターンです。
個人的な感想では、いい感じなMVPを定義したりとか、技術的な方面での解決だとRails とかのフルスタックフレームワークを使わずに AWS Lamda みたいな Serverless technology を駆使していかに早く作り上げる方向に持ってくかとかの工夫をすることで低コストである程度のものを作れるかなと思ってます。
とはいえども、自分もハッカソンに出たのは数回しかないので何を得れるのかとかはあまりよくわかってない領域です...
ハッカソンが開催される目的
色々あります。その中から一部だけご紹介
- 地域・特定の会社の製品のため
- IT企業が採用目的で
- 単純にハッカソンが好きなので開催した
一番下が理想かなとは思います。けど、(観測範囲内では)一番上もかなりの数開催されている印象です。
地域・特定の会社の製品のため
一番よく行われるタイプのハッカソンだと個人的には感じてます。
企業がスポンサーについてるやつは技術者の人が応援に来てたりいろいろ環境が良いのでかなりおすすめ。
例えば、こんなのとか
IT企業が採用目的で
こちらも割と見かけます。
こちらが何をできるかを面接とか以外の部分でアピールできるのでいいかも。
単純にハッカソンが好きなので開催した
周りのすごい人が主催してる奴ですが宇宙がめちゃ好きだから開催した感があります。
ハッカソンの期間
期間は2種類ぐらいにまとめられます。
- 土日祝などの数日かけるタイプ
- 長期間かけるタイプ
土日祝などの数日かけるタイプ
こちらが主流です。
土日などの休日にハッカソンを行う。社会人や学生などの平日忙しい人種でも気軽に参加できる感じの。
長期間かけるタイプ
名古屋ハッカソンや豊橋三大学ハッカソンのように1ヶ月とか半年とか長期間開催されるタイプです。
こちらのタイプはあまり参加したことがないのでよくわからないのが正直なところ
とはいえ、数日では成し遂げれないこともできるかなと思います。
ハッカソンの参加者
ハッカソン、参加者層がそれぞれでかなり違います。そこに注意しないと色々不幸が起きるかも...
例えば、
- 新しい刺激が欲しくて参加してるのに技術しかやれなかったりとか...
- ガチエンジニアリングしに来てるのに非技術者ばかりのイベントに来てしまうと...
大体な構成
- 技術中心
- 技術だけではなく非技術者も楽しめる
- 学生中心
技術中心
ガチエンジニアリングがハックをするために参加してるハッカソン
こういう系では最低限、プログラミングかデザインとかリーダーとしてめちゃめちゃできる(技術中心イベントでこういう人は嫌われる傾向にある)とかができない人が参加するとお互い不幸になります...
技術だけではなく非技術者も楽しめる
技術に着目するだけではなくてもっと幅広い視点とか価値観を持ってやろうぜ!ってイベント。
目的が違うので怒られるかもですが、スタートアップウィークエンドみたいなのを想像してます。 nposw.org
学生中心
実際のところ学生だと特に技術レベルの差がかなりあるかなと思います。(まだ入門レベルな人が参加するのは否定はしませんが...
実際数日という短い期間で何か成果を出せるだけの技術力・デザイン力がある人を見抜いてチーム作るときに全力をかけないと何か作り上げるのが大変になってしまうカモです... (とはいえ、どんなチームでも作り上げなければいけないのはありますが....
求められる技術の傾向
- Web
- IoT
- Mobile App
Web
Webサービスは鉄板です。何と言っても開発スピードが段違い。
とはいえ最近はネタも尽きてきてどこかで見たことがあるようなものばかりになってきたので衰退してきてるらしい。
IoT
最近需要の高い技術
IoT なことをするための基盤(Arduino, Raspberry Pie, Mesh など)が揃ってきたのが原因なのかな?
Mobile App
個人的にモバイルアプリ大好きなので追記した。
けど、SPAJAM とかじゃない限りハッカソンでモバイルアプリは大変だと思う。
Web 等に比べて開発に時間かかるからね...
個人的にはUWP アプリで色々なAPI を雑に叩くアプリを高速に錬成するのは好きです。
カメラとかも(細かいところに気を配らねければ)扱うの楽だし
ハッカソンの開催される地域
主に東京で開催されます。(それはそう)
ただ、地方で開催されるハッカソンは特色なものが多いので開始されてたら参加してみるとおもろい人がいるので良いかも!
おまけ
ハッカソンのなかでちょっとコンテキストが高いワードとかがあるのでちょっと列挙してみる
ハッカソンマスター
ハッカソンに参加して優勝をかっさらってくおじさんのこと。
私自身はまだあったことないのでどんな人かわからないのです。。。
色々なところのハッカソンに参加してるらしい
プレゼンマスター
イケイケな会社のイケイケな人が製品ほとんどできてないのにプレゼンで優勝をかっさらってく人。
それもそれで一つの手段なので否定することはできないけどね...
個人的には嫌い。
まとめ
- ハッカソンは数日で開発をするイベント
- 技術者・デザイナーが中心みを感じる
- ハードウェアできる人とか最近は需要高い