それでも仕様は変わる[時間との戦い]
こんにちは!たこてんのかるぼです!
今回は、HackU の締め切りまでに僕たちが直面した「仕様変更」の戦いについて書いてみたいと思います〜!
※ 「仕様」には技術選定も含むことにしますね!
スキルミスマッチによる、「仕様技術」の変更
僕はShabomで、バックエンドの開発を担当しました。
バックエンドというのは、「ユーザのデータを管理する機能」と捉えていただければOKです!
ちょっとイメージしづらいかもなので、Twitterの例で見てみましょうか。
バックエンドってなんぞや?
Twitterを開くと、自分がフォローしている人の投稿が、タイムラインに流れてきますよね。
こんな感じで、「自分がフォローしている人の投稿を、自分のタイムラインに表示する」部分が、バックエンドのお仕事です。
「なんとなーくわかったかも」
そんな感じになって頂けたら、最高です!
たこてんのバックエンド
さて、実はShabomのバックエンドでは、「Flask」という技術を使っています。
これは Python という言語で、簡単にアプリを作るための技術なのですが、実はこの技術を使うって決めたのは締め切り数日前だったんですよね。汗
というのも、僕のメインスキル(Ruby)に対して、チームメンバーの多くが知っている技術が Python だったから。
「え? そんなの動けばよくないですか?」
って思った人がいるかもです。
が、これは「絶対NG」です。実は、サービスを作るとき、「属人性」は低く保っておくべきなんですよね。
この人じゃないとわからない
この状態だと、もしその人がいなくなったら、そのサービスはバイバイ。危険です泣
爆速で技術変更
ということで、初めてPythonを触ることになりました。
幸いなことに、チームメンバーのマミーとロバートが助けてくれたので、スムーズに開発することができました。
まじで、チームの力ってすごいなああって思った瞬間です1
大きな反省
こんな感じで急ピッチに開発を進めたこともあり、大きな反省が1つでてきました。
「テストを用意できなかったこと」
上記です。実は、これはサービスにとって致命的なんですよね。。。
というのは、「当たり前のことが、当たり前に動く」ことが保証できないから。
例えば、Shabomの中に「空っぽ」のデータを入れたらどうなるか、データベースに害を与えるようなものが含まれたらどうなるか。
この辺りのチェックを、手作業でやっていくことになります。
今では数万人のユーザを抱えるプラットフォームを作ったこともあり、この辺りの重要性が、身にしみてわかります。
後々のメンテナンスのために、「負の遺産」を残しちゃったことは、大きい反省ですね泣
フロントエンドとのすれ違い
さて、バックエンドの技術選定、実装はできました祝
ここで、サービス作りのときに起きがちな、「フロントエンドとのつなぎ込み」の問題が出てきます。
フロントエンドっていうのは、「ユーザが触って入力できる、見た目の部分」と捉えてもらえればOKです!
どんな問題が出たのでしょうか?
思ってたんと違う
実は、フロントとバックは、「店と工場」みたいな関係です。
店 = フロント は、
「こんな人がきました。この人にとって、いい感じの製品を作ってくださいね!」
と工場に要求します。
それに対して、工場は
「OKです!この人なら、こんな商品がお似合いですね(^^) 作成してお返しします!」
みたいに、データを加工します。
さて、どんなトラブルが起きるでしょうか??
、、、そうです。
工場: 「こんな人がくるなんて、知らなかった」
店: 「こんな製品が返ってくるなんて、知らなかった」
こういう感じ。
このトラブルが起きました汗
対策
もちろん、これはよく起きることなので、hackmd というツールを使って、誤解がないようにしていたつもりです。
それでも起きた。
原因は、口頭のコミュニケーション不足だったかなと。
よっぽどのエキスパートでない限り、コミュニケーションはこまめに取るべきだなと思った次第です!
まとめ
ハッカソンという、時間との戦いではいろんなトラブルが起こります。
技術が合っていなかった。
メンバーそれぞれの思い込み。
これも、めちゃくちゃいい経験になりました!
やっぱり、実際にやってみないとわからないところでもあるので、ぜひ皆さんもチームでものを作ってみてはどうかなと思います!
では、また次回〜!
この記事が気に入ったらサポートをしてみませんか?