On code pour la production, jamais pour la démonstration.
Aucun affichage de mise au point ne survit à la livraison, aucune valeur codée en dur « pour l'instant ». Ce qui part en ligne est ce qui sera relu dans trois ans.
Pas d'équipe commerciale qui promet, de chef de projet qui traduit, puis de développeur qui découvre. La personne qui vous écoute est celle qui écrit le code, et celle qui répondra dans deux ans quand la loi aura changé.
Aucun affichage de mise au point ne survit à la livraison, aucune valeur codée en dur « pour l'instant ». Ce qui part en ligne est ce qui sera relu dans trois ans.
Une seule concaténation de chaîne dans une requête suffit à ouvrir la base entière. Il n'y en a aucune — c'est vérifiable ligne par ligne, pas une déclaration d'intention.
Un nom de client peut contenir une apostrophe, un guillemet, une balise. Il est traité comme du texte, jamais comme du code, y compris quand il vient de votre propre base.
Le contrôle dans le navigateur sert le confort de l'utilisateur. Il ne sert à rien contre quelqu'un qui a désactivé le script — donc rien n'est admis sans être revérifié côté serveur.
Mots de passe de base, clés d'envoi, jetons : hors du dépôt, hors du dossier web, hors des sauvegardes qui circulent.
L'ancien système reste debout pendant la bascule. On coupe quand le nouveau a fait ses preuves, pas le jour de la mise en ligne.
Un correctif n'est pas « fait » parce qu'il est écrit : il est fait quand il a été testé sur le système réel. Si un test échoue, c'est dit — avec la sortie du test.
Index sur ce qui filtre et ce qui trie, pas de requête dans une boucle, images au bon format, pages qui s'affichent avant qu'on ait le temps de s'impatienter.
Les outils changent tous les dix-huit mois ; les besoins de votre entreprise, non. Nous choisissons des techniques que nous saurons maintenir dans cinq ans, sur un hébergement ordinaire, sans dépendre d'une bibliothèque abandonnée par son auteur.
Le socle. Pas de cadre applicatif lourd imposé : ce qui est nécessaire, écrit proprement, et qui tourne sur un hébergement mutualisé comme sur un serveur dédié.
Une page doit s'afficher avant que le script n'ait chargé. Le navigateur sait déjà faire des fenêtres, des accordéons et des sélecteurs de date — autant s'en servir.
Application native quand la caméra, le scanner ou le mode hors-ligne l'imposent. Application web installable quand ça n'apporterait rien de plus.
Une base se conçoit avant d'être remplie. Les modifications de schéma sont additives et rejouables : on ne perd pas une colonne parce qu'une mise à jour s'est mal passée.
Même en désordre. C'est justement le désordre qui décrit le mieux le besoin.