はじめに
私は自社開発に携わっており、現在基本設計の工程を進めています。
この工程で発生したちょっとした事件についてまとめました。
目次
1.基本設計の内容
2.順番どうすっぺ
3.設計を進めてみる
4.振り返ってみる
5.結果
6.余談
7.予告
1. 基本設計の内容
まず基本設計のフェーズで確定させる内容を大まかに決めます。
超が付くほど大雑把ではありますが、カテゴリとして下記の3つに分類しました。
- 画面設計
- 機能設計
- DB設計
2. 順番どうすっぺ
どのような順番で進めていこうか、というところでまた一つ頭を悩ませました。
長考した結果下記のようにしました。
- 画面設計
- DB設計
- 機能設計
一番最初に画面設計を置いた理由として画面設計を完了することで機能のイメージをしやすくする意図がありました。
イメージがあることで、その後の機能設計で漏れを少なくすることができると考えました。
その後DB設計を行いどのような情報を格納するか確定したうえで、機能設計を行うという流れにしようと決めました。
この順番が間違っていることに気づくのは数週間後の話。。。
3. 設計を進めてみる
それでは早速画面設計を進めます。
3.1 画面一覧
最初に画面設計を行います。
最初にすることは画面一覧作成です。
ふんふーん♬(作業中)
お、終わりました。
3.2 画面遷移図
次は画面遷移図作成です。
ふんふふーん♬♬(作業中)
お、終わった。
3.3 画面イメージ作成
次は画面イメージ(モックアップ)作成です。
ふんふんふふーん♬♬(作業中)
ふん?(あれ?)
ふーーん??(なんだー??)
ここで「なんか機能設計してるなあ」と感じました。
画面イメージなので各画面にどの項目を表示させるか、どのようなフォームを配置するのか記載する必要があります。
当然画面設計から始めているので上記のことは何も考えられていません。
このタイミングで順番が違うことに気づきました。
4. 振り返ってみる
なぜこの順番にしたのか振り返ってみます。
一番最初に画面設計を置いた理由として画面設計を完了することで機能のイメージをしやすくする意図がありました。
イメージがあることで、その後の機能設計で漏れを少なくすることができると考えました。
言いたいことは分かりますが、結果的にはミスっていました。
原因を考えると各設計での具体的なイメージができていなかったのだと思います。
今回の場合で見てみると、
画面イメージを作成する際、各画面に対して表示項目の場所、フォームの位置など決めます。
それは表示させる内容が決まっている、というのが前提にあります。
そして私はこの前提を考慮できておらず画面設計を最初に設定してしまいました。
青二才です。
5. 結果
順番を下記のように入れ替えて進めることにしました。
- 機能設計
- DB設計
- 画面設計
今回の反省を踏まえ最初に機能設計を持ってきました。
その後DB設計を行い、最後に画面設計を行います。
正直DB設計と画面設計は順不同で構わないと思います。
ただ最初に機能設計を終わらせることが重要です。
6. 余談
今まで順番を入れ替えた経緯を書きましたが、順番について考えれば考えるほど沼にはまる気がします。
例えば最初の機能設計の最中に「この機能ではこのデータをDB登録しよう」と決めた際、
「じゃあどのテーブルのどのカラムに入れるのか?」
と考えることができます。
しかしテーブルはDB設計で行うので、機能設計ではここまでしか決めれません。
そうなると「DB設計から始めたほうがいいのでは。。。??」
とも考えてしまいます。
さらにしかしDB設計でも、最初にどのような情報を格納するのか決まっていないといけません。
そうなると「やっぱり機能設計。。。???」
以下無限ループ
堂々巡りではある。と思う。
もしくは筆者の頭が固すぎるか。
ですがどこかの設計タイミングで決めないといけません。
そのタイミングがどこかというとやはり 機能設計 だと思います。
機能設計は基本設計における柱のようなもので、この柱に対して画面,DB設計などの肉付けをするような流れが正しいと感じています。(間違ってたらハズカシイ。。。)
余談が長くなりました。
7. 予告
次の記事内容は決まっていませんが、8月25日金曜日に投稿予定です。
今後も隔週金曜日Qiitaに投稿するのでぜひご覧ください!