開発を始める時の備忘録

この記事について

自分が必要だと思った、開発を始めるにあたって用意するものや決めておくことについての備忘録です。

開発を始めようと思ってもだらだらして中々始められなかったのでまとめてみました。 勢いで書いたもの&経験から学んだものとかでなくそもそも備忘録なのでくれぐれも注意してください。 あと一応アジャイル開発であること前提です。å

1. プロダクトバックログ

最初にユーザーストーリーを集めて優先順位をつけておきます。

ちなみに自分はこういったものについてはTrelloなどで管理しています。

また直近のリリース予定を計画してどういう機能をデリバリーするか決めておくといいかもしれません。 MVP(Minimum Viable Product)を提供するにはどこまでストーリーを完成させる必要があるかを 定めておくのも大事そうです。 個人で作るならそこまできっちりやらなくてもいい気がしますが、動くものを目指せる様にするのはモチベーションにも影響してくると思います。

2. アーキテクチャ

MVC、MVP、MVVM、Fluxなど、採用するアーキテクチャをプロジェクトの規模やメンバーのスキルレベルを考慮して決めます。

小規模だったり短期間での開発であればFluxとかだと大袈裟になってしまうかもしれないですし、後から入ってくるメンバーの教育コストなども考える必要があります。 逆にMVC、MVPだと大規模になっていくにつれ機能の追加がしづらくなるかもしれないので注意が必要です。 まぁFluxのことあんまり知らないのですが…。

3. リポジトリ

リポジトリを作って初期状態のプロジェクトを追加します。

できれば最初の時点で必要そうなライブラリを導入しておくといいです。 DIや通信周り、テストフレームワークやモック用のライブラリなどが必要そうでしょうか。 自分はiOSアプリであれば真っ先にfastlaneを入れます。

4. CI環境

どのCIサービスを使うかを決めます。 自分はほぼJenkinsしか使ったことがないのでどのサービスがいいかについては全然分からないです。

決まったら最初の時点で以下のセットアップをやっておくと楽になるはずです。

  • 単体テスト
  • E2E(機能)テスト
  • 静的解析

5. ドキュメント

最初に作って置いた方が良さそうなドキュメントを作っておきます。 具体的にはアーキテクチャについてやコーディング、テストを書く際のルールや観点などです。

個人開発であれば多分不要ですが意外と自分だけで作ったものでも忘れがちなのでメモレベルでも残しておくべきかもしれません。

まとめ

これらはあくまで最初のとっかかりとなるものなので、ここから開発を進めていく上で更に必要なものなどが出てきます。 そこからはチームで話し合いつつイテレーションを重ねて改善していくといいと思います。

この記事はそこまで深く考えて書いたものでもないので、自分で開発を進めていて改訂が必要そうなところがあれば直していきたいです。

あと結局この記事を書いていたのでいまだに開発を始められていないです。やばい。