私は、Web、Access、C#などのさまざまなフロントエンドで、すべてビジネスで使用されるいくつかの中程度の複雑さのデータベースを設計する贅沢を経験しました。
通常、私は事前に座ってデータベーススキーマを作成しました。これは常に私にとって最も意味がありました。ただし、変更を行ったり、新しいテーブルを追加したり、基本的に修正するには遅すぎた面を抱えて生活したりすることはありませんでした。
最初にコードを書くのが治療法だとは思いません。そして、私は問題が「不十分なビジネス要件」であるとは思いません。少なくとも、完全に解決できた問題ではないと思います。ユーザーは何が必要なのかわからず、私は彼らがより難しいと思うか、頭が良くなるか、もっと気づくか、私の質問によく答えるようにする力がありません。または彼らは主張し、私は何か特定の方法を行うように命じられます。
私が構築するシステムは、通常誰も行ったことのない新しい領域にあります。私は、組織からの賛同、リソース、またはトップフライトデザインの専門家の開発チームがチームで物事を構築するために作ったものの10倍の報酬を得たような仕事をするためのツールを持っていません倍の時間。
私は自分の仕事が得意です。しかし、「開発を行わない」環境でそれをしているのは私だけです。
とは言っても、ビジネスルールを発見するのは上手になっています。そして、私は一種の第三のオプションを見ます:
データベースを設計する前、およびコードを記述する前に、アプリケーションがどのように機能するかを示す粗雑な画面を描画します。フォント、サイズ、または寸法について誰もコメントできないように、手描きにする必要があります。機能のみが必要です。
透明度と紙片を使用すると、1人をコンピューター、2人を非専門分野の専門家(2人は大声で話す)、もう1人をメモと描画のファシリテーターとして交換できます。思考プロセスと混乱についてユーザーに知らせます。ユーザーがボックスをクリックしてドラッグし、ボックスに書き込むと、コンピューターが画面を更新し、全員がデザインを体験できます。開発プロセスに至るまで習得できなかったことを学ぶことができます。
おそらく私は自分自身に矛盾しています-多分それはより良い要件発見です。ただし、コードを作成せずに、最初にアプリケーションを設計するという考え方です。私はこれを小規模で始めましたが、うまくいっています!私の環境には問題がありますが、データベースを最初からより良く設計するのに役立ちます。複数のタイプがあるため、列を新しい親テーブルに移動する必要があることを学びます。ワークリストには、統合注文システムからではない継続注文が必要であることがわかります。いろいろなことを学びます!
私の意見では、これは大きな勝利です。