活動

【大阪】Progateからのあこがれ!!ハッカソンでの経験

こんにちは!ともです(@_tomo_engineer)!

『【大阪】Progateからのあこがれ!!ハッカソン』というものに2018年11月3日から2018年12月8日まで参加していました。

このハッカソンでチームリーダを任せて貰いまして試行錯誤しながらの1ヶ月となりました。

この記事では、プログラミング初心者がハッカソンに参加した経験についてまとめたいと思います。

  • あこがれ!!ハッカソンとは
  • 上手くできた点
  • 上手くできなかった点

あこがれ!!ハッカソンとは

『あこがれ!!ハッカソン』とは関西で開催されたハッカソンです。

Progateやドットインストール等でアプリケーション開発を始めた初学者が次のステップに進むために開催されました。

僕の様な初学者はハッカソンと聞くと、興味はあっても自分の力量では難しいと思い躊躇ってしまっていました。

この『あこがれ!!ハッカソン』は、その様な初学者が集まってアプリケーションを作るイベントなので、かなり敷居が低いです。

本当に初心者の方でも参加できますし見学枠もありますので、まずは見学だけというのも良いと思います。

メンターの方も待機しており、何か分からない事があればすぐに質問できる環境です。

Conpassから参加できますので、こちらをチェックしてみて下さい。

作成したアプリケーション

僕たちのチームは『Lancers』や『Crowd Works』を模倣したアプリケーションの作成に挑戦しました。

仕事の『発注者側』と『仕事をしたい側』をマッチングするというサービスです。

案件のCRUD機能とTwitter認証、Twitterでシェア機能を搭載したアプリケーションとなりました。

利用した技術としては

  • Vagrant(環境構築)
  • Laravel(サーバサイドフレームワーク)
  • HTML・CSS(フロント)
  • Git(ソースコード管理)
  • TwitterAPI
  • Bitbacket(リモートリポジトリ)

上手くできた点

工数を立てる

ハッカソン中の11月3日から12月8日までの間の工数を作成した事はよかったと思います。

アプリケーションを開発する際は工数を見積もります。今回のハッカソンでも同様に工数を見積もることで実現可能性を高めました。

アイデアは出てきても作り切らなければ意味がないと思いますし、この様にスケジュールを作成する事でチーム全員の認識を高められます。

工数が足りないと思った場合は機能を減らす事が大切です。その機能は本当に必要なものなのかを精査する事で完成日までに作り切る可能性が上がります。

僕たちのチームの場合2週間の余白を設けた工数を見積もりましたが、結果として発表日のギリギリまで作業する事になりました。

見積もりが甘かった事も良い経験になりましたし、工数を立てた事により作り切ることができたと思っています。

課題を洗い出す

僕たちはリモートリポジトリにBitbacketを採用し開発を進めました。

開始日の次の日には課題をBoardsに書き出しチーム全員にタスクを振り分けました。

これのよかった点は一人一人の作業が明確になる事により、メンバーが安心できるという点です。

特に初心者が集まるハッカソンですので、『自分は何をすれば良いんだろう・・・』と不安に思われる方もいると思います。

リームリーダを任された方には開発の進捗を管理する必要がありますので、工数の見積もりやタスクの振り分けは非常に重要だと感じました。

Vagrantを利用した

開発環境を構築するためにVagrantを利用しました。

  • 仮想環境を利用する事でローカルが汚れない
  • メンバーが利用する端末のOSの差異に影響しない(WindowsやMac)
  • VagrantFileを共有する事で、同じ環境でチームが開発を進める事ができる

上記のメリットがありVagrantを利用した事はよかったと思います。

チームリーダを任された人は環境構築でつまづく事があると思いますがVagrantやDockerなどは有効な手段です。

特にMacユーザやWindowsユーザが混在していたので、その違いによる不具合を吸収できるのはよかったです。

上手くできなかった点

工数の見積もりが甘かった

工数を見積もった際に2週間の余白を設けましたが、実際には発表日のギリギリまで作成することとなりました。

予想外に工数をとった原因は次です。

  • デザイン案作成後の検討が甘かった
  • 不必要な機能があった
  • 全員のレベルを把握できていなかった

はじめの1週目に

デザイン案の作成→HTML・CSSで見た目の部分を作成

という流れで作業を進めました。

作成したデザイン案は素晴らしかったのですが、機能との折り合わせを付けるべきだったと感じています。

  • ページ遷移を大きく意識していなかった
  • 認証をTwitter認証にしたため、パスワードの欄はいらない
  • 表示させる項目が足りてない

など、デザイン案を元にメンバーで話し合って不足がないか、ページ遷移の流れをどうするかなど明確にしておくべきでした。

下の図で言うと『デザイン案を元に再検討』の部分が抜けていたと感じています。

デザイン案を元にビューが作成され、ビューを元に機能を作成していったため、デザイン案が全てに影響しました。

デザイン案を元に話し合い、不足な機能や画面遷移をどうするかなどをキッチリと決めておく事で、後々の機能の作成で不足がなくなると思います。

この作業を怠ったため1週間ほど時間をとってしまったと感じています。

Gitの不勉強さ

僕自身のGitの知識不足が浮き彫りになりました。

チームメンバーもGitに関してそこまで知識を持ち合わせていませんでしたので、チームメンバーの誤ったGitでのソース管理の修正や質問された時に上手く答えれないなど問題が出ました。

基本的なコマンドしか覚えていなかった事たため、誰かの誤った操作を訂正する事や、メンバーが上手くできない場合の対処などが上手くできませんでした。

本番環境に適宜あげるべきだった

本番環境を『Heroku』か『さくらのクラウド』を利用する予定でしたがギリギリまで本番にあげる事を面倒臭がってやっていませんでした。

そのため発表日当日に慌てて『Heroku』にあげて、マイグレートが出来ないという問題に直面しました。

『Heroku』の無料枠のDBは『PostgreSQL』で開発環境は『MySQL』だったのでそれが原因です。

ですので、開発中に本番に適宜あげてみて問題がないかチェックすべきでした。

開発中に適宜本番環境にあげていれば、

  • 『Heroku』ではなく『さくらのクラウド』を利用する
  • マイグレーションファイルを修正する

など対処する時間がありましたが、ギリギリまでサボったため発表日に本番環境にあげれないという自体を招きました。

そもそも、本番環境と開発環境を一致させるべきでした。

本番環境が『PostgreSQL』なら開発環境も『PostgreSQL』でするべきでしたし、本番環境への意識が低かったためこの様な事になったと思います。

まとめ

今回のハッカソンでチームリーダを任され、色々試行錯誤しながら開発を進めました。

良かった点もありましたが、自分に足りない点が明確になりました。

  • 工数の見積もり不足
  • 話し合うタイミングで話し合わなかった点
  • 本番環境への意識が低かった
  • Gitの不勉強さ

この様に1ヶ月間で色々挑戦することが出来ましたし、自分に足りない点を見つける事が出来、とても良い経験になったと感じています。

初学者の方であっても参加しやすいハッカソンですので、『あこがれ!!ハッカソン』に参加してみては如何でしょうか。

Conpassから参加できますので、こちらをチェックしてみて下さい。