ヽ(´・肉・`)ノログ

How do we fighting without fighting?

HOKKAIDO アイデアソン&ハッカソン 2014 に参加した

HOKKAIDO アイデアソン&ハッカソン 2014 に参加して,Our Diary というサービスを作った.

Our Diary 自体のことは,今度書く.

制限時間が 2 日(+2 週間の自由時間 ) のハッカソンに参加するのは, 去年の HOKKAIDO アイデアソン&ハッカソン に続いて 2 回目だ.

去年にひきつづき,うまくいかず,苦い思いもあるが,うまくいかないことを経験させてもらえることについて, 場を用意してくれた主催者,一緒にやってくれたチームメイト,参加者へ感謝したい.

今後またこういうイベントに参加したいと思ったし, その時には今回のことなど忘れているかもしれないし, そうなると今回うまくいかなかった部分を繰り返してしまうかもしれない.

それは悔しいし,たぶん次回こういうことをやるときには, 自分の忘れっぽさにより,今思っていることは少ししか思い出せなさそうなので, 今のうちに書いておく.次回やるときはここを見るんだぞ.

チーム

スループットを考えるとプログラマ 2+,デザイナ 1 くらいのチームだといいかもしれない.

今回実践に挑んだのはプログラマ 1 デザイナ 1 だったが,そうすると裏側の実装が追いつかなくて, デザインをやってくれたチームメイトを暇させてしまった.

サーバーにプロダクトを置く場合,Heroku に上げて,デザイナには Git をいじってもらうのがよい.

Heroku, Git の環境整備と git pull, git commit, git push くらいを覚えてもらえばよい. その他のイレギュラーなケースが起きたら,いつでも相談にのれるようにしておく.

そのために最初の 2 時間くらいを使っても十分ペイした. プログラムがいきづまっているときデザインが非同期でできあがっていくのは本当に助かった.

デザイナが伸び伸びやれるようにするためには, 元々テンプレートが階層構造になっている Rails より, 1 html が 1 テンプレートに対応するような構造にしたシンプルな Sinatra の方が向いている.

Sinatra の views へ erb を切り出して,それを重点的に弄ってもらうようにしたのは app.rb へ書いたロジックとのコンフリクトがあまりおきず,よかった.

手に馴染んだツール

今回,手持ちでやれることの関係上 Our Diary をサーバープログラムとして実装した.

本来やりたかったことはクライアントアプリだけで完結しそうだった.

しかし,クライアントアプリを作る自信がなかったので,サーバーサイドプログラミングを選択してしまった.

やりたいことへ素早く寄せるためにも,何かクライアントアプリを作れる技術を用意しておく.

幸い RubyMotion を持っているので,これを生かして iOS のネイティブアプリを作る練習をしておくことにする.

次自分がこれを読んでいるときには……期待しているぞ.

完成への道すじ

自身では今回の制限時間内では完成させられなかったと感じている.

ここで自身の思う「完成」ということについて考えてみる.

自信をもって v1.0.0 のタグを打てる所が完成だと思える.

どんなに小さくても,動かせるところ全てが実装されて,デザインもプロダクト名も揃っていて,次からは v2.0.0 へ進められる状態.

@hyuki さんが最近 twitter に書いていた

エクスキューズ(言い訳)なしに自分の作品を渡す、っていうのはプロへの一歩ですね。「はい、これです(以上)」

というのが感触として近いかもしれない.

エクスキュースなしに,プロダクトを出せて,自分以外の人も触れること.

これを実現するのは思っている以上に難しい.

自分もできるだけ小さく作るのが大事と何度も教えてもらい, できるだけ小さく作ろうと試みてはいたが, そう心がけていてさえ手にあまる大きさのプロダクトになってしまい, 未完成の状態で時間切れになってしまった.

今回得た感触としては,twitter にも書いた

制限時間を半分すぎたら、機能の拡張は諦めて、手持ちのコマをまとめていくくらいのペースで挑む

くらいでよさそうだった.少ないと思うでしょ?でも完成させるのって本当に大変なんだよ.

もし 1.0 が完成させられてなお時間に余裕があれば, 時間切れのときに途中までの成果を捨てて 1.0 をリリースする準備をした上で 1.x に着手すればいい.

これどこかで読んだなと思い WEB+DB PRESS vol.73 「たのしい開発実況中継」を読みなおすと,4 章に書いてあった.

私たちは,残り時間が8時間半を切ったあたりで,プロダクトをコンテストに提出できるように準備をはじめました.(中略) 先に「提出可能な状態」を作ってしまって,そのあとに,心配から解放されてプロダクトを磨けばよいのです.

読んで知ったつもりになっていてもやっぱりできなかった難しさよ.

次回やるなら,本当に大変だと思うが,何回かあるデモ全てで「完成」させるくらい意識して挑みたい.

完成させる技を磨く

約 1 年ぶりにこういったハッカソンに参加したが, 「完成」させるということへの執着が自身にまだ足りない感じがした.

完成 or die という感覚を磨くために, 制限時間数時間で,ほんの小さなプロダクトでかまわないので 制限時間つきでの開発をもっと練習しよう……するぞ!

このエントリーをはてなブックマークに追加