Je travaille pour une entreprise dont le domaine est vraiment difficile à comprendre car il s'agit d'une technologie de pointe en électronique, mais cela s'applique à tout développement logiciel dans un domaine complexe.
L'application sur laquelle je travaille affiche beaucoup d'informations, de graphiques et de mesures difficiles à comprendre sans expérience du domaine. Le développeur utilise une spécification pour décrire ce que le logiciel doit faire, par exemple en spécifiant qu'un graphique particulier doit afficher ce type de métrique et que cette métrique correspond à la formule arithmétique suivante.
De cette façon, le développeur ne comprend pas vraiment le métier et pourquoi / pourquoi il accomplit cette tâche. Cela peut convenir si la spécification est vraiment détaillée, mais lorsque ce n'est pas le cas ou lorsque l'auteur a oublié un cas d'utilisation, le développeur a beaucoup de difficulté à trouver une solution.
D'autre part, former chaque développeur à tous les aspects métier peut être très long et difficile.
Devrions-nous accorder plus d'importance aux spécifications détaillées (mais comme nous le savons, la spécification parfaite n'existe pas) ou devrions-nous former tous les développeurs à comprendre le domaine métier?
EDIT: n'oubliez pas dans votre réponse que la société peut utiliser des développeurs externes et qu'une formation sur tout le domaine peut durer environ 2 semaines.