Quelle est la différence entre un architecte logiciel et un développeur logiciel ?


L'architecte logiciel est un rôle de spécialiste du développeur de logiciels qui passe la plupart de son temps à trouver des solutions pour répondre aux exigences "non fonctionnelles". Les exigences non fonctionnelles sont par exemple l'évolutivité (verticale et/ou horizontale), la réutilisation, la disponibilité, etc.

Dans une entreprise en démarrage, un architecte logiciel émerge souvent du développeur principal qui a développé un produit logiciel réussi pour son employeur, et qui est utilisé dans un autre projet avec quelques modifications/extensions. En tant que développeur principal, il définit des règles ou des lignes directrices sur la façon d'étendre ou de modifier son logiciel. Ainsi, il crée une sorte de couche, qui rend le développement du produit logiciel ultérieur plus rapide, moins cher.


Dans une entreprise établie, un architecte logiciel définira des exigences non fonctionnelles telles que l'évolutivité, la disponibilité, le partitionnement du logiciel avec son API ou une manière standardisée de développer une application, y compris le langage de programmation, le cadre logiciel, la bibliothèque tierce. Il développe souvent un prototype comme preuve de concept de sa conception. Par conséquent, la vie d'autres développeurs de logiciels qui doit mettre en œuvre l'exigence fonctionnelle, est plus facile parce que quelqu'un a fournir guideline et l'exemple.


Le résultat le plus tangible serait globalement moins de temps de développement, une qualité constante (mauvaise/bonne), des membres de l'équipe plus heureux. 🙂

Un architecte logiciel incompétent livre un diagramme de composants de très haut niveau généralement sans spécifier comment ces composants interagissent et laisse les développeurs se débrouiller pour livrer la mise en œuvre de l'exigence non fonctionnelle. Cet architecte fait l'excuse que l'architecture censé être de haut niveau, et doesn't règle et toucher le travail de codage sale.

En résumé, Software Developer est la personne qui développe la mise en œuvre des exigences.
L'architecte logiciel est un spécialiste qui développe et définit le système et la couche sous-jacente qui rend le travail des autres développeurs de logiciels plus facile.

.