1. Aller droit au but, raccourcis pris, peu de considération d'architecture logicielle 2. Fortes considération techniques, d'architecture notamment pour concevoir un système évolutif et robuste 3. Compromis technologique entre simplicité, modularité, et maintenance facilité, utilisation de technologies et framework matures
1. Modèle simple (heuristique, modèles linéaires), résultats satisfaisants / moyens mais permet de valider l'objectif 2. Modélisation avec architecture complexe (réseaux de neurones profonds), scores optimaux mais généralise difficilement, compréhension difficile 3. "Garbage-in garbage-out", focalisation sur les données, l'extraction de caractéristiques complexes couplées à un prédicteur simple
1. Sous-ingénierie : - Compréhension du besoin métier - Pro: Livraison rapide - Pro: Forte valeur ajoutée - Con: Raccourcis, dette technique - Con: Difficulté d'évolution 2. Sur-ingénierie : - Compréhension des limites techniques - Pro: Architecture - Pro: Stabilité - Con: Livraison lente - Con: Maintenance difficile - Con: On-boarding difficile 3. Ingénierie mature : - Compromis pour solution pérenne - Pro: Livraison rapide / moyenne - Pro: Valeur ajoutée moyenne / forte - Pro: Stabilité, facile à maintenir - Con: Demande de l'expérience - Con: Besoin cadrer les bonnes pratiques
Les 3 étapes sont généralement nécessaires, il faut l'accepter