0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

要件を決めないまま実装して手戻りが増えた話【個人開発 第3回】

0
Posted at

対象読者

  • 生成AIを使って個人開発を進めたい人
  • 実装途中の手戻りを減らしたい人
  • 実装前に何を決めればよいか迷っている人

前回は、Macを持っていない私が、WindowsとiPhoneからiOSアプリ開発を始めた方法について書きました。

MacなしでWindowsからiOSアプリ開発を始めた話【個人開発 第2回】

今回の開発では、最初にすべてを設計してから実装したわけではありません。

「ひとまず、こんな感じかな」と大まかに決め、AIへ相談しながら作り始めました。

結果としてアプリは完成しました。ただ、開発の途中では大きな手戻りや不具合も発生しました。

特にUIは、私とAIの間で完成イメージが合わず、何度も作り直しています。

原因を振り返ると、実装前に決めていなかったことが多すぎました。

開発時の前提

項目 内容
開発用PC Windows
所有端末 iPhone 12 mini
Mac 所有していない
フレームワーク React Native、Expo
言語 TypeScript
データ保存 SQLiteによる端末内保存

要件定義書の作成から始めた

開発を始めたとき、まったく何も決めていなかったわけではありません。

最初のチャットでは、次のような内容をAIへ相談しました。

  • 誰に、何を提供するアプリなのか
  • MVPに必要な画面
  • データベース
  • 課金
  • 似たサービス

ここで決めていたのは大枠だけでした。

UIの具体的な形、画面遷移、処理の流れ、各画面の完成条件などは、十分に固めていませんでした。

要件定義を始めてはいましたが、実装に使えるところまで具体化できていなかったのだと思います。

決めないまま実装したもの

最初に考えていたMVPは、痛み、気分、不安を数値で記録し、後から見返せる程度のものでした。

しかし、その考えを画面ごとの機能へ落とし込まないまま、実装を始めました。

実装前に十分決めていなかったのは、次のような内容です。

  • どの画面が必要か
  • 画面間をどのように移動するか
  • 画面ごとに何を表示するか
  • 画面上で何を操作できるようにするか
  • 入力したデータをどのような形で保存するか
  • 何ができたら、その画面を完成とするか

これらが曖昧なままでも、AIは画面や処理を作ってくれます。

UIを変えると、ほかの部分にも修正が必要になった

手戻りが多かったのはUIです。

自分の中には「このような画面にしたい」というイメージがありました。しかし、それを文章や画面構成として十分に伝えていませんでした。

そのため、AIが作った画面を確認してから、次のような修正を繰り返しました。

  • 表示する項目を変更する
  • ボタンの位置や役割を変える
  • 画面の移動方法を変える
  • 入力する内容を追加する
  • 保存するデータを変更する

画面だけを直せば終わると思っていましたが、実際には操作方法やデータの扱いもつながっています。

後からUIを変えると、それに合わせて処理やデータ保存も修正する必要がありました。

最初に画面の目的や操作を決めていなかったため、一つの変更が複数の場所へ影響しました。

必要な機能が消えていることもあった

AIへ指示しながら実装を進めていると、それまで使えていた機能が、修正後の実装から消えていることもありました。

画面一覧や機能一覧がなかったので、修正後に何を確認すればよいのかも曖昧でした。

画面ごとの完成条件を作っていれば、必要な機能が残っているかを確認できたと思います。

資料へまとめるべきだったこと

この失敗を振り返ると、最低限、次の内容は実装前に資料へまとめるべきでした。

  • 誰の、どのような課題を解決するか
  • 最初の公開へ入れる機能
  • 最初の公開では入れない機能
  • 利用者が目的を達成するまでの主要な流れ
  • 必要な画面の一覧
  • 主要画面の目的、表示内容、操作、状態
  • 入力したデータの保存方法
  • MVPの完成条件

実装前に完成条件を決める

私に足りなかったのは、実装前に確認する基準でした。

  • 何を作るのか
  • 今回は何を作らないのか
  • どの状態になったら完成なのか

これらを文章で共有しないまま実装を始めたため、出来上がったものを見てから判断することになりました。

MVPに必要な画面、機能、データ、完成条件は、実装前に整理しておくべきでした。

まとめ

今回の開発では、大まかな要件だけで実装を始めたため、UIや処理、データ保存の修正が何度も発生しました。

振り返ると、実装前に必要だったのは次の準備です。

  • 大まかなアイデアを画面ごとの機能へ落とし込む
  • 主要な画面遷移を決める
  • 表示、操作、保存するデータを整理する
  • MVPへ入れるものと入れないものを分ける
  • 画面や機能ごとに完成条件を決める
  • 実装前に自分とAIの完成イメージを合わせる

AIは、指示した内容を素早く実装してくれます。

だからこそ、実装を始める前に「何を、どこまで作るのか」を決めておくことが大切でした。

「からだを伝えるノート」をApp Storeで見る

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?