私は過去に複数のシステムを設計し、他の人を設計しましたが、プロセスがさまざまな方法で展開するのを見てきましたが、一般的なことは、初期アーキテクチャは少なくともほとんどの主要な機能の存在を計画する必要があるということです。
たとえば、建物、床、部屋などがそれらで改造されるという概念のないHVAC制御システムを見たことがありますが、結果はそれらと同じくらいいものでした。または、(スマートでない)懐中時計に適したコンポーネントから構築されたモバイル音楽デバイス。言うまでもなく、いずれの場合も最終製品は顧客のお気に入りではありませんでした。
「概念」と言うと、「アイデア」から一歩進んだだけで、概念は非常に曖昧になります。ビジネスは通常、概念を重視します。ユーザーは通常、UXを気にします。これは、使いやすく快適な方法で実現された概念であり、その使用を通じて何らかの価値をもたらします。
プログラミングの前に「コンセプト」を実行する必要があります。ビジュアルスタジオ(または選択したIDE)を開いて、ランダムにコードを記述し、どこに行くかを想像することはできません。
コーディングする前に完全な設計を行うことはできません(そうすべきではありません)が、ユーザーのワークフローがどうなるかについての大まかなスケッチが必要です。
UXの設計とコーディングはお互いにやり取りすることが非常に多いため、この事実を作業のアプローチ方法に組み込む方法として、ごく小規模なプロジェクト以外にはアジャイルアプローチを使用せざるを得ないでしょう。一度にすべてを見ることができなければ、あなたが最悪のプログラマーだとは思わないでください-誰もできない、そして彼らができると思う人々は、彼らが完全だと主張できるように、十分な問題を無視するだけです画像。
大きなものにサイズを設定する1つの例。コンセプト:「企業がソフトウェアプラットフォームを統合できるようにする視覚的なクラウドベースのツールを作成する」。これは素晴らしく聞こえ、マーケティング資料の作成を開始し、販売資料が存在する前に販売することができます。コーディングする前にこれが必要です。
事前設計:「Visioのような形状と矢印を使用してロジックを記述します。さまざまなプラットフォーム(SAP、SF、データベースなど)への接続を可能にするプラグイン機能を備えています。システム。データを視覚的に記述し、1つの形式を別の形式に変換する方法がある」。別の素晴らしいマーケティングブロブ。また、何が重要なのかについてのアイデアも提供します。コーディングする前に、このような大まかなスケッチを用意する必要があります。
設計/コード:「ブラウザにホストされたHTMLデザイナーなどの機能を備えています。既存のサーバー上で実行できるようにJavaでバックエンドをコーディングします。レポート、監査ログ、計画バージョン管理、計画アクセス制御、....」-リストが細かいほど、すべてを予測するのは非現実的です。
...しかし、少なくとも物事が大雑把に見えるかもしれないか、最終製品が本当に役に立たない実装になってしまい、そうでなければ素晴らしいサウンドのコンセプトを殺してしまうことに注意する必要があります。実際のワークフローを表示する画面、またはログなどの20のフィールドのいずれかに限定された正確な文字列の一致以外のログを検索する方法はありません。実装を実行する以外、これを防ぐ良い方法はありません-成功するものもあれば、失敗するものもあります。