Tatehitoの技術メモ

ソフトウェアエンジニアです。いろいろ書きます。

『ゲームソフト管理サービス』の開発振り返り。開発期間を短縮するにはどうしたら良かったか

f:id:tatehito-st:20191231232522p:plain

2019年の振り返り記事でも少し紹介した、遊んだゲームを記録できる『ゲームソフト管理サービス』というアプリケーションを、細々とつくっていました(正式サービスとして公開する予定は今のところありません)。

このアプリの規模は画面数が4、テーブル数が2と全然大した規模ではないのですが、かかった開発期間が2ヶ月弱。毎日開発していたわけではないけど、それにしても2ヶ月はかかりすぎ😱

ということで、時間がかかったorかけてしまった点を振り返ってみます。

フロントの実装に時間がかかった

バックエンドの実装は約10日で完了し、その後はずっとフロントエンド(見た目)の実装をしていた。なぜ見た目の実装に時間がかかったのか?

  • 未経験のCSSフレームワーク(Semantic-UI)を採用したから
  • 手書きでワイヤーフレームを書いていたものの、大雑把すぎた
  • ランディングページに至ってはワイヤーフレームすらなかった
  • UIを考えながらの実装は時間がかかる

未経験技術の(Semantic-UI)の学習コストはかかって然るべきものなのでOK。

やはり一番の原因はUI設計が固まってないまま実装を始めてしまったこと。実装してUIを確認して、やっぱなんか違うわってなって、壊してまた実装して......の繰り返しになるので効率が悪い。

「Sketch」「adobe XD」などのサービスを使って、しっかりワイヤーフレームつくってから実装するべきだった。

特にランディングページは手書きのワイヤーフレームすらなかったので、時間がかかったし、開発のモチベーションも下がっていった。

テーブル設計がイマイチだった

バックエンドの実装は、未経験技術の学習も含めて10日ほどで終えたので、フロントに比べたら、開発スピードとしてはこんなもんかな、という印象。

ただ、初期のテーブル設計がイマイチで、後からカラム追加や型変更をする必要があったので、もうちょっとしっかり設計しておけば良かった。

それと、開発環境と本番環境のRDBは統一しておくべき。詳しくは以下の記事参照。

https://blog.tatehitolog.com/entry/2019/12/22/000145blog.tatehitolog.com

未経験技術の学習コストがかかった

  • Semantic-UI(CSSフレームワーク)
  • Amazon API
  • Twitter API

今回始めて扱った技術はこの3つ。前述したとおり、未経験技術の学習コストはかかって然るべき。アプリの開発に取り組む前に、これらの使い方をある程度押さえておいたので、大きく躓くことはなかった。これは良かった点。

未経験ではないけど、RSpecでのシステムスペックの記述には大変苦戦した。(苦戦しすぎて、モチベーション下がりそうだったので後回しにした😅)

Twitter APIのログインを絡めたテストがうまく書けなかったり、意図したボタンをcapybaraが押してくれなかったり、FactoryBotの使い方がイマイチ理解できていなかったりと、RSpecに関しては勉強不足だと改めて感じた。

まとめ

次はワイヤーフレームちゃんとつくります。