J'ai conçu et observé que d'autres conçoivent plusieurs systèmes dans le passé et j'ai vu le processus se dérouler de nombreuses manières différentes, mais ce que je trouve commun, c'est que l'architecture initiale devrait au moins planifier l' existence de la plupart des fonctionnalités principales.
Par exemple, j'ai vu un système de contrôle de CVC qui n'avait aucun concept de bâtiments, d'étages, de chambres, etc. en étant modernisé et le résultat était aussi moche que possible. Ou un appareil de musique mobile construit à partir de composants mieux adaptés à votre montre de poche (non intelligente). Inutile de dire que les produits finaux dans les deux cas n'étaient pas les favoris des clients.
Lorsque vous dites «conception», ce n'est qu'une étape de plus que «idée» et un concept peut être très flou. Les entreprises se soucient généralement des concepts. Les clients se soucient généralement de l'expérience utilisateur - un concept concrétisé d'une manière qui est facile et agréable à utiliser et apporte de la valeur grâce à son utilisation.
Vous devez faire du "concept" avant toute programmation, je ne peux pas m'imaginer ouvrir Visual Studio (ou votre IDE de choix) et écrire du code au hasard, pour voir où ça va.
Vous ne pouvez pas faire une conception complète (et vous ne devriez pas) avant de coder, mais vous devriez avoir un aperçu approximatif de ce que serait le flux de travail de l'utilisateur.
La conception et le codage UX se nourrissent assez souvent les uns des autres, vous serez probablement obligé d'utiliser une approche Agile pour tout sauf le plus petit des projets comme moyen d'incorporer ce fait dans votre approche du travail. Alors ne pensez pas que vous êtes le pire des programmeurs si vous ne pouviez pas tout voir à la fois - personne ne peut et les personnes qui pensent pouvoir le faire sont celles qui ignorent suffisamment le problème pour pouvoir prétendre avoir une image.
Un exemple pour mettre une taille à quelque chose de grand. Concept: "Créer un outil visuel basé sur le cloud qui permet aux entreprises d'intégrer leurs plateformes logicielles". Cela semble génial et on peut commencer à rédiger du matériel marketing et le vendre avant même qu'il ne soit là. Vous devez avoir cela avant de coder.
Pré-conception: "Avoir des formes et des flèches comme dans Visio pour décrire la logique; avoir des capacités de plug-in pour permettre les connexions à diverses plates-formes (SAP, SF, bases de données ...); avoir une console de surveillance où l'on peut rechercher des données passant par le système; décrire visuellement les données et transformer un format en un autre ". Un autre grand blob marketing. Il vous donne également quelques idées sur ce qui est important, devrait avoir un croquis aussi grossier avant de coder aussi.
Conception / Code: "Avoir un concepteur HTML hébergé par navigateur avec telle ou telle fonctionnalité; coder le backend en Java afin qu'il puisse s'exécuter sur n'importe quel serveur existant; définir les structures de données et UX pour les interroger ou les modifier selon les besoins; planifier la reprise après sinistre, erreur rapports, journalisation d'audit; contrôle de version de plan; contrôle d'accès de plan; .... "- plus la liste est fine, plus il est irréaliste de tout prévoir.
... mais il faut au moins être conscient de ce à quoi les choses pourraient ressembler à peu près ou votre produit final peut se retrouver avec des implémentations vraiment inutiles qui finissent par tuer le concept par ailleurs génial - disons que votre concepteur visuel a besoin d'un 40 " écran pour afficher n'importe quel flux de travail du monde réel, ou il n'y a aucun moyen de rechercher les journaux autre qu'une correspondance de chaîne exacte limitée à l'un des 20 champs du journal, etc. Il n'y a pas de bon moyen d'empêcher que cela ne se produise autre que l'exécution de votre implémentation - certains réussiront, d'autres échoueront.