1. l'utilisateur satisfait
  2. la sécurité
  3. les performances
  4. être scalaire (en architecture comme en ressource de développement)
  5. la souplesse de développement
    1. pour l'ajout de fonctionnalités
    2. pour la maintenance de fonctionnalités
    3. pour l'archivage de fonctionnalités (quand on en a plus besoin)
  6. déploiement et rollback
  7. rentabilité
  8. permet un contrôle du code

Il va falloir étoffer tout cela.

En pratique je sais que je ferai ca avec des méthodes agiles

la sécurité

Je prends en compte la qualité sécuritaire du code, les injections, les XSS, .... pour protéger l'application. Mais aussi la sécurité de l'utilisateur, l'utilisateur ne doit pas pouvoir être lésé. Dès qu'il y a "compte utilisateur', il faut des groupes, si possible non hiérachiques mais thématiques. (un membre du groupe d'administration technique a des droits qu'un admin commercial n'a pas ET VICE VERSA)

être scalaire

Pouvoir ajouter un hardware et zou on réparti la charge (quelle soit sur la vitesse, la quantité d'information, la sécurité,...) La redondance pour assurer et la redondance pour répartir la charge. Le code doit si pas le permettre, au moins rendre facile l'implémentation de ces redondances. (classiquement savoir séparer les lectures des écritures,

la rentabilité

cette valeur peut entrer en conflit avec les autres mais il ne faut surment pas l'ignorer, les méthodes agiles apportent déjà des solutions.

permettre le contrôle du code.

les tests, le test coverage, la documentation, les scanners de failles, les sections inutilisées ou désuète,

la souplesse de développement

en vue de l'ajout de fonctionnalités

C'est une évidence. Le code doit permettre facilement d'ajouter des nouvelles fonctionnalités.

en terme de maintenance de fonctionnalités

Parce que c'est ce qu'on fait le plus dans un projet vivant.

avec une optique archivage de fonctionnalités et non de suppression

Une fonctionnalité peut être amennée à disparaitre mais les pages affichées ne devrait pas forcément disparaître. Sur le web il y a trop d'info disparait trop vite pour l'utilisateur, des url qui exitaient ne répondent plus juste parce que l'info qu'elle ciblait à changé de place... et ca j'aime pas

permet un contrôle du code

le code doit être scanné par des outils qui vérifient de manière systématique et automatique ce qui peut l'être ainsi. Cela demande parfois d'adapter son style d'écriture.

Le code fournit aussi de quoi facilement traquer une erreur , une anomalie une attaque, via des logs et autre manière de faire remonter l'information