はじめてのハッカソンに参加してきたお話し。
サポーターズ主催の「マンスリーハッカソンvol.3」に参加をしましたので、体験記としてここに記しておこうと思います。
サポーターズさんのハッカソンの特徴としては、「初心者大歓迎」なところです。ハッカソンと聞くとなんだか難しそうで、プログラミングを始めたばかりの私には。。。なんて人もいると思いますが、このハッカソンでは、約7割が初ハッカソン参加にもかかわらず、メンターや運営様のおかげで最後の成果発表までしっかりと到達しています。
なぜ参加した?
大学に入ってからプログラミングを始めた私は、大学1年2年と個人開発ばかりをしてきました。大学3年生になり就職活動を意識し始めたころ、エンジニアという職について調べるとチーム開発がベースだということを知りました。そこで学生のころからチーム開発の経験を積みたいと考え、大学の友人を何名か誘ってハッカソンに参加する運びとなりました。
制作物について
#技育CAMP 2023 #ハッカソン vol.3
— 【公式】技育プロジェクト (@geek_pjt) May 21, 2023
⠀//
🗣 実況中継〜〜🎙️🎥
\\
チーム名:テロリストのパラソル
作品名:VistaVend pic.twitter.com/YVQbfhFNO2
概要
視覚障碍者の方に向けて、自動販売機にスマホのカメラを向けると、欲しい飲み物が何段目の何列目にあるかを音声で返してくれるアプリ
開発背景
「課題解決」というテーマのもとで開発をすることが好きなのでそのテーマのもとで議論を進めました。
僕の友人に実際に視覚障害の方がいて実際にこう言った悩みを抱えていることを知りました。そこからTwitterなどで同じ悩みを抱えている方を見かけて、視覚障碍者の方における自動販売機の悩みを解決しよう!!と思い開発に至りました。
使用技術
- Python
- pandas
- TensorFlow
- keras
- numpy
- Opencv
- matplotlib
- HTML,CSS
- JavaScript
開発するうえで意識したこと
目標を定める
開発物を決定した後、その開発に向けて走り出すわけですが、いきなり開発に入ってしまってはどこに向かうべきなのかが不明瞭です。そのためそのアプリに対してどんな機能をいつまでに開発するのか、またそれは誰が担当するのかという小さな目標をいくつも立て、いわゆるマイルストーンに沿って開発を進めていくことを意識しました。
意識・意見を共有する
マイルストーンに沿って開発を進めていく中でも当然、プロジェクトに遅れや予期せぬことが起こったりします。そのため定期的に進捗報告や、プロジェクト全体の進行具合を全員で確認しあいながら目標とのずれを修正しながら開発することを意識しました。
また、開発を進めていく中で追加要件や追加機能を思いついたらすぐに共有し、ハッカソン当日までに実現可能か、また本当にその機能は必要なのかをチームで議論することを意識しました。
謙虚、尊敬、信頼
いわゆるHRTの原則といわれるものです。相手の意見を聞き入れながら、自分の意見も共有する。相手に対しての尊敬や信頼をもちながら議論を進めることを意識しました。また私はハッカソン初出場だったので、不安を大きく抱えていましたが謙虚さを忘れず、自分ができないことはできない、わからないことは分からないと相手に伝えることでチームメンバーは一緒になって解決方法を考えてくれたり、教えてくれたりしました。そのおかげでチーム開発の楽しさをとても感じ、大きな成長にもつながりました。
開発するうえで苦労したこと
コミュニケーション
意見共有の大変さに尽きると感じました。意識したことで意見の共有を挙げましたが、開発当初はこの意識が薄かったように思います。意見や意識の共有がなされていないまま開発を進めていってしまい、いつの間にか開発部分がかぶっていて時間のロスに。。。なんてことが一度だけありました。それからより強く意見の共有をしてそれぞれの役割というのを明確化することを意識するようになりました。
それぞれのこだわり
その人にはその人なりのコーディングのこだわりがあり、ある機能を実装したいときにこの方法でやってみたら?という提案に対して自分は別のやり方がいい。という意見でぶつかりました。こういう場面でも大切なのがHRTの原則です。相手の意見を受け入れてまずはそのやり方で進めてみることにしました。もしうまくいかなかったら、私のやり方で進めてみようというコミュニケーションを取り、実際に相手は相手のやり方で実装することができたため、自分の視野が広がった瞬間でもありました。また、ハッカソンという締め切りがある状況下での開発だからこそこういった意見のぶつかりを経験できたのも大きかった。
学んだこと
チーム開発の楽しさ
チーム開発は本当にたのしい!! と心から思いました。大学1,2年生と個人開発ばかりしてきたため、初めての経験ばかりでとても新鮮なものでした。ある一つの目標に対して、チーム全員が努力し、議論しあいながら進んでいく、一つ小さな機能が実装できただけでもチーム全員で喜び合う。個人開発では絶対に経験できないことがたくさんありました。
その後
はじめての経験をたくさん積むことができ、また非常に楽しいハッカソンでしたが、当然自分に足りない点というのが多く見えてきました。具体的にはチーム開発には必須なgitやGithubの使い方や開発環境によって差異をなくすための言語やライブラリのバージョンの管理などチーム開発ならではの必要なスキルが見えてきました。(もちろんシンプル自分の技術力がまだまだだ、、、とも実感しました笑)
そのため、個人開発のなかでもgitをしっかりと活用し、人に見せることを意識したコーディングを意識するようになりました。
結果
残念ながら賞の受賞はできなかったですが、初めてのチーム開発や、ハッカソンの経験は大きな財産となりました。またなんといってもチーム開発はほんとに楽しかったです!!今後もハッカソンに参加したいし、就職した後もチームでプロダクトを創って人や社会に約立てるプロダクトを創っていきたいなと再確認できる機会となりました!
最後に
まだハッカソンに参加したことがない学生さんは今すぐ参加するべきだと思います。悩んでいるならまず行動するべき!!技術レベルが追い付いてなくてもチーム内でできる役割はたくさんあるし、短い期間で自分に足りない点が明確になり、技術レベルがグンと上がること間違いなしです!!
(筆者は大学1,2年のころハッカソンに参加しようか迷ってて結局ぎじゅレベルがまだまだだと思い込んで参加しませんでした。非常に後悔。。。)