Les règles suivantes sont énumérées dans l'ordre de leurs priorités.
La sécurité, dans tous ses aspects, est la règle numéro 1 d’un projet de développement informatique. Sans sécurité, il n’est pas possible de garantir les règles qui suivent. La sécurité est un processus, non un produit, de ce fait, il s’agit de respecter l’état de l’art, d’auditer régulièrement et d’appliquer les mesures nécessaires en cas de besoin. Il est judicieux d’être en veille sur les bulletins d’alerte de sécurité. Il est attendu que les socles logiciels puissent être mis-à-jours sans se préoccuper outre mesure des socles logiciels adjacents, le code doit être robuste.
Sans sécurité, la vie privée n’existe pas. D’un point de vue fonctionnel, il s’agit de faire respecter les lois en vigueur chapeauté par le « Règlement général sur la protection des données (RGPD) » dans tous les cas. En pratique, il est essentiel de laisser la liberté à l’utilisateur de créer, modifier, partager, sauvegarder, supprimer ses données. Surtout, l’automatisation des actions d’administration sur les données par la personne qui les possèdes facilite le respect du RGPD en minimisant les risques juridiques. L’usage d’outil externe, de tracking en particulier, ne devrait être envisagé que pour un réel bénéfice de l’entreprise ou de son client.
Il est nécessaire de rester dans la sobriété numérique et de ne rester que sur le périmètre des fonctionnalités réclamées par les utilisateurs finaux. Tout ajout de fonctionnalité non-utilisée augmente la maintenance, la dette technique, le temps de résolution des incidents, le coût global, etc. Dans le même but, on veillera également à ne pas tordre les outils techniques et rester le plus proche possible du natif. On se réfère donc à la documentation disponible, on prend conseil auprès de la communauté ou d’autres professionnels. On fait appel à de la prestation si besoin, surtout pour la vérification.
Parmi les bonnes pratiques, côté utilisabilité, il faut noter que le respect du « Référentiel général d'accessibilité pour les administrations (RGAA) » apporte une vraie plus-value à un logiciel en ayant un regard aussi bien porté sur l’accessibilité que les performances. Bien que le document soit destiné à l’administration française, il ne fait que reprendre et augmenter les bonnes pratiques en vigueur.
Technologiquement, il faut le plus possible utiliser les standards existants afin de faciliter les échanges potentiels entre les tiers externes et nous-même (Le « Référentiel général d'interopérabilité (RGI) » en fait par exemple une liste assez exhaustive).
Le développement est souhaitable en mode agile pour éviter les dérives trop importantes de coût et de délai tout en restant le plus proche possible du périmètre fonctionnel. Ce développement est à réaliser piloté par les tests.
La maintenance est nécessaire afin d’assurer la pérennité de la production. La maintenance corrective est évidement obligatoire afin d’assurer la sécurité des outils du quotidien et de limiter les impacts d’une faille de sécurité. La maintenance évolutive est amenée, au minimum, à répondre à un impératif d’ordre légal n’existant pas au moment de la mise en place du projet.
La dette technique n’est réellement indispensable que pour l’aspect purement métier, pour lequel, les clients sont parfaitement habilités à répondre aux problématiques soulevées. Réaliser un produit logiciel purement spécifique pour répondre aux besoins métier est donc une possibilité réaliste et réuni l'ensemble des points évoqué ici en un seul centre qui, s'il est bien maîtrisé, permet d'évoluer en douceur en limitant les coûts.
Les processus de sauvegarde et de mise-à-jour sont à prendre en compte dès la conception pour fiabiliser et connaître les actions à mener en cas d’incident. Idéalement, le choix de l’automatisation de l’intégration et du déploiement est préférable. De même pour la sauvegarde, au regard de la règlementation (RGPD) et des choix utilisateur. L’ensemble est documenté et testé !
Un logiciel doit rester sain. L’énumération de ces règles existent dans ce but. Le risque est l'addition de tous les points ci-dessus, son évaluation et sa maîtrise limite les impacts potentiels et rend possible la gestion générale d'un projet : coût, qualité, délai. Tous ce qui est un risque à un impact potentiel sur la qualité qui se traduira tôt ou tard par des coûts ou des délais supplémentaires.