プログラミング 自己啓発

コミュニティ内のハッカソンに参加した体験談

投稿日:2022年3月12日 更新日:

クローズドなコミュニティ内で行われたハッカソンに参加してきました。
ハッカソンは短期間(短時間)で要件定義から実装までを行うイベントです。

ハッカソンに参加することになったきっかけは「要件定義から実装までを経験したい」とコミュニティ内で手を挙げたことからです。

「じゃあ、今度ハッカソンやるから参加しなよ!」
という流れで参加させて頂きました。

ハッカソンとは?

ハッカソンとは、ハック(hack)とマラソン(marathon)を組み合わせた造語とされています。
具体的に言うと、プログラマーや設計者などのソフトウェア開発の関係者が、短期間で集中的に開発作業を行うイベントのことです。

どんな人が参加していたのか?

・IT業界の転職を目指している未経験者
・CSSしか触ったことのないフロントの方
・Javaのバックエンドエンジニア
・Nuxtのフロントエンジニア
などでした。

持っているスキルや経験はバラバラでした。
私の参加したハッカソンはプロダクトを作り上げること自体が目的ではなく、経験を積んで今の自分よりも成長することを重要視していたので、色んなキャリアの方が参加されていました。

どんなことをしたのか?

1日目:設計
2日目:実装
というように分けて行われました。

1日目:設計

要件はある程度決まっており、それに自分達で肉付けする形で顧客想定の方に質疑応答しながら設計書を作成していくのが1日目でした。

私たちのチームは設計工程で、画面設計書、ER図を作成しました。
3時間くらいで要件を満たす画面と必要なDB設計を行い、まず設計時点で発表を行いました。

他のチームはDB定義書を結構細かく作成していて、細かい作業が得意な人がいるんだろうなと思わせられました。

2日間が終わってからの発表ではなく
・工程で切って行ったこと
・他のチームの内容もみることができたこと
・顧客想定の方から顧客目線でのレビューを頂けたこと
で自分たちの設計がどの程度の出来なのか、他のチームはどのようなことを考慮しているのかなどを知ることができ、知見の獲得に役立ちました。

2日目:実装

設計を元に開発を始める工程になります。
連日ではなく別日で設定されたため、環境構築までは進めてOKということで始められました。

私たちのチームはフロントをNuxtで実装するということだったので、バックエンド担当の私は事前にSpringBootでRestAPIを実装する方法を調べておけたのが良かったです。

「大体こんな感じか~」
と雰囲気だけつかんで、H2(インメモリDB)の設定だけ進めて本番に臨んだところ、久々のSpringの実装だったこともあり、O/Rマッパー回りで結構苦戦。。。

チームメンバーと話し合って、DB接続周りの実装は無しにして、バックエンドからは固定のJSONだけを返すようし、顧客想定者には画面の操作感で要件を満たしていることを説明する想定で臨むように切り替えました。

半分を切ったくらいの時間で切り替えができたので、残りの時間でなんとか最低限必要な画面の実装を完了させることができたのは良かった点でした。

他のリームもDB周りに苦戦していたようで、バックエンドの実装はできないままモック(画面)のみで発表していました。

今回はいつもより画面数が多い要件ということもあり、時間が足りない中で発表にこぎつけるために軌道修正したのは良い判断だったと評価して頂きました。

開発現場でも納期ありきなので、時間と成果物のトレードオフという考えを実践することができたのは貴重でした。

募集しているところは?

このようなハッカソンの参加者を募集しているところは探せば色々あると思います。
表立ってやっているところは以下のようなところで検索できます。

Tech Play
https://techplay.jp/tag/hackathon

Doorkeeper
https://www.doorkeeper.jp/topics/hackathon/events

あとは私が参加したようなクローズドなコミュニティ内での開催や、社内ハッカソンなどがあります。

自分のレベルに合わせて色々探してみることをお奨めします。
結果に関わらず、何かに挑戦するということが成長につながるので(^^

アイデアソンとの違い

アイデアソンとは「アイデア」と「マラソン」を掛け合わせた造語です。
ハッカソンと同じように決められた時間の中でグループごとにアイデアを出し合い、ブラッシュアップさせてその結果を競うイベントです。

多様な人とディスカッションすることで発想が広がり、特定のテーマに対する良質なアイデアを創出できることから、新規事業開発やオープンイノベーションの現場で広く活用されています。

ハッカソンが実際のプロダクトを作成することに対して、アイデアソンは事業の問題解決のためのアイデアを出し合います。

エンジニアはシステムを作ることでビジネスの問題を解決しますが、事業者やマーケター、セールスマンはアイデアを出すことでビジネスの問題を解決します。
事業の問題を解決するという目的は同じで、アプローチするポイントが違うということですね。

エンジニアの方でも事業創出やビジネス視点での問題解決に興味がある場合はアイデアソンに参加されるとよいです。
新たな気づきを得られ、エンジニアとしての幅が広がるはずです。

まとめ

  • ハッカソンは短期間で集中的に開発作業を行うイベントのこと
  • オープンなハッカソンはTech Playなどで探せる
  • アイデアソンはアイデアで事業問題を解決するもの
  • エンジニアとして成長するためにハッカソンに挑戦する

 
最後までお読み頂き、ありがとうございました!
ご意見・ご要望がありましたら、遠慮なくコメント下さい!
もし内容が良かったらランキング評価を頂けると励みになります(^^)

ランキング評価する

-プログラミング, 自己啓発
-,

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


関連記事

【Spring Data JPA】deleteAllとdeleteAllInBatchの違い

概要 Spring JPA Dataにおける、deleteAllとdeleteAllInBatchの挙動の違いについてです。 結論から言うと、実行されるSQLが違います。 SQLの違い 【前提】 3件 …

【SpringSecurity】#3~ 独自のログイン画面

概要 オリジナルのログイン画面を実装する方法です。 以下の内容になっています。 ログイン用のHTMLを用意する。 Controllerにログインの遷移先を定義する。 SecurityConfigクラス …

【Node.js】Excel⇔JSON変換する方法

やること 1.ExcelファイルをJSONで取得。 2.JSONの編集後、新しいExcelファイルに出力する。 環境 Node.js ・インストール  https://nodejs.org/ja/   …

AbstractFactoryパターンをenumで生成するメリット

AbstractFactoryパターンの説明には、実行時引数に文字列を渡したり、フラグでif-else判定する例をよく見かける。 しかし、どんなFactoryが生成可能を知らない担当者がFactory …

自分の限界の超え方

これは私がポスティング(チラシ配り)を仕事にしていたときの実体験です。 (※4年前の記憶を思い出して記載) 当時、1日に1万枚くらいを配るのが当たり前になっていて、(確か)7000枚くらいの案件を6時 …

■運営者プロフィール
IT業界10年のエンジニア。
PHP -> VBA -> Javaと渡り歩いてきて、今はJavaをメインにフリーランスエンジニアとして活躍中!

[保有資格]
・Java SE 11 Gold

一度はエンジニアを辞めざるを得なかった私が再びエンジニアとして復活した数奇な物語

SpringFramworkの良書

■おすすめ教材
Javaの基本を学んだ人が、次のステップとして読む本(中級者向け)

※SpringはJavaのFrameworkの1つです。
変更のしやすさ、保守性の高さが特徴です。