IT業界13年目。色々なシステム開発を行ってきた私が、0からシステムを設計開発する際に考え決めていく順番を記載します。
私、個人のやり方なのであんまり参考にならないかもしれませんが、基本的に私がやりやすいと落ち着いた方法です。思考が似てたら参考になるかも。
サーバーサイドもフロントエンドもある場合を想定して書きます。
個人開発の時のことだと思ってみてもらえれば、いいかもしれません。
考える順番は目次の通りです。
やりたいことの文字起こし
作りたいことの文字起こしをします。相手がいる場合は、図などを用いてすり合わせを行っておきましょう。
とにかく、作りたいものを日本語にしていきます。
設計を進めていくと、どんどん変わっていきますけど、スタートの時のゴールを明確化しておかないと後で何が変わったかもわからないので、最初の段階でわかることを日本語で起こしていきます。
- どんな目的で使いたいのか。
- 誰が使うのか。
- どんな時に使われるか。
- どんな機能が必要か。最低限欲しいものやあればいいもの。後々ほしいもの
- どれくらい予算を考えるか
箇条書きというよりは、しっかりとした文章を心がけます。
文章化して、読み返しておかしかったら吹き出しをどんどん追加していきます。
心情の変化を忘れないように。何か閃いた時になんで閃いたか忘れないようにしておけば、後でたまに役立つ時もあります。
新たな閃きと矛盾が起きるのを防ぐとか。
あまりに吹き出しだらけになった場合は、別のファイルに清書します。
私の資料は吹き出しだらけです。
人に見せる必要がある場合は、それようにまとめたり、清書する必要があります。
見せる可能性があるなら、それを想定してあらかじめ準備していくのも必要です。
画面のイメージ作成
私の場合は、イメージあった方がその後を作りやすいのでイメージを作り始めます。
イメージがあれば、DBの正規化をどこまでやるかも決めやすいと思っているし、サーバー処理もイメージしやすくなるので、画面イメージを作ります。
後でどうせ変わったりするので、本気で作りません。
エクセルのオブジェクトを使って、積み木みたいに作っていきます。
動きとかある場合は、吹き出しをどんどん追加します。
ただのイメージ作りです。
正式な設計書が必要な場合は、そのルールに合わせて別途作ります。最初からそれに寄せて作っておけば、後で楽はできます。
DBの設計
画面の項目が出揃えば、DB設計も比較的簡単に進みます。
画面の構成から、正規化をどうするかもある程度できます。サーバーサイドの設計始めると追加になったりすることはありますが、その時をある程度想定することはできるので、想定しながらDB設計していきます。
とりあえず、この時の理想で作ります。
なるべく未来を想定した拡張を考えて、項目洗い出しなどを行います。
想像力を働かせます。
とても働かせます。
私はDB設計が好きです。
ここ数年、仕事では0からはあんまりやれてませんね。個人開発でやるくらいです。
サーバーサイドを考える
この段階で考えうる最適な方法で設計していきます。
それが、技術的に難しい可能性があっても、使うのに金が掛かりすぎる可能性があっても、とにかくこの時のマックスを込めます。
知識と想像力をフル活用して、書いていきます。
機能のフローやデータのフローはよく作ります。
DBに項目追加しないと実現しようがないぞ、となったらDB設計を直します。
とにかく考えられるベストを尽くします。
業務で設計書が必要な場合は、設計書にそって図やフローを準備しておけば転記しやすいでしょう。
最終的にまとまる正式な設計書前資料として、吹き出しまみれの資料をよく作ります。
最後に全てが決まったら必要なものを正式版に転機します。
技術の調査と選定
一通りやりたいことも出きったので、技術調査と選定をしていきます。
私の考えとしては、得意なことを得意なものに任せる。が信条なので、やりたい処理を簡単にこなせる技術を見つけたら新しい技術でもそっちを使うようにします。
期限がぁ~~~という場合は、時には諦めも必要でしょう。
個人開発なら好きにやれるので、とことん検証します。
おかげである技術検証で1か月つぶれたこともあります。
仕事とは違う楽しみですね。
個人開発のときは、基本的に全部自分で考える!でやってるので、わからな過ぎて挫折する時もあります。
ずっと悩んで、調べてると案外違う技術で簡単に解決もありますからね。
そういうのを積み上げると底力がついていきますね。
仕事でチームでやってるときは、みんなで協力しましょう!
まとめ
0から、開発するために考えていく事と決めていく順番を記述しました。
全てを一人で決めていくというのは、個人開発でもないと中々やる機会はないですね。私も仕事だと数回しかないです。
全部自分で決めれるというのは難しいところであって、楽しい所だと思います。
思考する順番は、自分に合ってないとものすごい時間がかかるので、自分の思考を分析したり色々な手法を勉強して、自分にあった方法を確立しましょう。
確立できれば、作れるものがどんどん増えていくことでしょう。
読んで頂き、ありがとうございます。
この記事が誰かにとって、一つの参考となれば幸いです。
私自身、これからも好奇心・感謝・努力を忘れずに精進していきます。
コメント