Paramètres d'affichage

Choisissez un thème pour personnaliser l'apparence du site.

Produit fictif pour l'audit

Produit fictif pour jouer avec l'outil d'audit

Prod - Dev actifMétierMonolithe
Languages:Typescript
Dépendances:PostgreSQLRedis
Hébergement:Scalingo
Frontend:NextJS
Backend:NestJS
Authentification:ProConnect

Si vous constatez des erreurs dans ces informations, merci de nous les remonter.

Audit technique du produit Produit fictif pour l'audit

Comité d'investissement prévu pour le 14/09/2024

Ce questionnaire vise à recueillir des informations techniques sur le produit. Une réponse positive (Oui) est généralement attendue, mais une réponse négative (Non) peut être tout à fait appropriée en fonction du contexte. Dans ce cas, merci de préciser les raisons dans les commentaires.

Important : Le formulaire ne prend pas encore en charge l'édition simultanée. Si plusieurs personnes travaillent dessus en même temps, cela risque d'écraser les réponses des autres.

Merci pour votre contribution.

L'application est-elle déployée chez un hébergeur souverain ?Entreprise et serveurs en Union Européenne https://www.numerique.gouv.fr/services/cloud/doctrine/ https://www.numerique.gouv.fr/services/cloud/regles-doctrine/#contenu

Précédemment : Ne sais pas

Répondue

L'infrastructure de votre application est-elle scalable facilement, même manuellement ?
Précédemment : Non (50%) - azdazd

Répondue

Est-ce que l'application peut faire face à une montée en charge grâce à l'autoscaling ?

Précédemment : Ne sais pas - azdazd

Répondue

L'application est-elle déployée en haute disponibilité ?Cela implique d'avoir plusieurs instances pouvant répondre aux requêtes avec un load balancer. Ainsi, en cas de crash d'une instance les requêtes peuvent toujours être servies aux autres instances.
Précédemment : N/A - azd

Répondue

Les bases de données sont-elles déployées en haute disponibilité ?Redondance avec master/slave

Répondue

Votre infrastructure est-elle gérée "As Code" ?L'Infrastructure as Code (IaC) vous permet de documenter les changements d'infra et de remonter vos applications suite à un désastre. Par exemple Terraform ou son équivalent open source "OpenTOFU"

Répondue

Votre application a-t-elle un nom de domaine en .gouv.fr ?

Répondue

Monitorez-vous votre infrastructure ? Si oui, avec quels outils ?Par exemple avec des outils type Grafana, Newrelic, datadog

Répondue

Pour le monitoring de votre application, utilisez-vous l'instance Sentry proposée par l'Incubateur des territoires ?Sur https://sentry.incubateur.anct.gouv.fr . Si c'est https://sentry.incubateur.net il s'agit du Sentry de la DINUM.

Répondue

Recevez-vous une alerte en cas de downtime sur le produit ?par ex: updown.io (proposé par l'Incubateur)

Répondue

Recevez-vous une alerte en cas d'anomalie sur le produit ?Site très lent (alertes Grafana ou autre), utilisation serveurs anormale (disques durs, RAM, CPU), erreurs applicatives (alertes Sentry), etc...

Répondue

Un système de log centralisé est-il en place (ELK / etc…) ? Si oui quel outil ?

Répondue

Monitorez-vous les requetes lentes de votre base de données ?

Répondue

Publiez-vous un postmortem après un incident de production ? Quel public y a accès ?
Votre service utilise-t-il un CDN (Réseau de Diffusion de Contenus) ?https://fr.wikipedia.org/wiki/R%C3%A9seau_de_diffusion_de_contenu

Répondue

Un outil de mesure de statistiques web type Matomo est-il en place ?
Une procédure de backup et restore de la base de donnée est-elle en place ?

Répondue

Votre base de données est-elle infogérée (managée) ?Managée complètement par votre PaaS

Répondue

Les données sont-elles chiffrées au repos (at rest) ?Cela a pour but d'empêcher l'utilisation des données dans le cas d'une intrusion par exemple.

Répondue

La base de données a-t-elle un schéma homogène (Casse, Langue, ...) ?https://fr.wikipedia.org/wiki/Sensibilit%C3%A9_%C3%A0_la_casse

Répondue

Votre base de données comporte-t-elle des contraintes d'intégrité ?Contraintes de clé primaire, clé étrangère, d'unicité, etc...

Répondue

Avez-vous un processus de migration de schéma automatisé ?Fourni par exemple par Prisma, Doctrine, ...

Répondue

Utilisez vous un outil de visualisation des données de type metabase ?Par exemple pour exposer vos indicateurs. Si oui, précisez l'outil

Répondue

Y-a-t-il un readme permettant de contribuer au projet de manière autonome ?Faire tourner le projet en local, pratiques de contribution, ...

Répondue

Existe t-il un document de traitement des données (politique de confidentialité) ?Si oui, mettre le lien en commentaire https://rdv.anct.gouv.fr/politique_de_confidentialite

Répondue

Existe t-il un DAT (Dossier d'Architecture Technique) ? (si oui, merci de mettre le lien en commentaire)https://gitlab.com/groups/incubateur-territoires/startups/infrastructures-numeriques/-/wikis/Dossier-d'architecture-technique https://github.com/betagouv/rdv-service-public/blob/production/docs/architecture-technique.md

Répondue

Le DAT contient-il un diagramme du schéma de base de donnée ?

Répondue

Le DAT liste-t-il tous vos outils (logs, monitoring, ...) ?

Répondue

Un Single Sign-On (SSO) est-il implémenté pour vos utilisateurs ?ProConnect / AgentConnect / MonComptePro

Répondue

Existe-t-il une séparation claire entre la couche métier et la couche de présentation ?

Répondue

Votre équipe adhère-t-elle à un pattern d'organisation de code prédéfini et documenté ?Proposé par votre framework ou MVC / DDD / Autre

Répondue

Appliquez-vous des pratiques d’éco-conception ? Saisissez en commentaire le score obtenu sur le site https://www.ecoindex.fr/

Répondue

Documentez-vous vos décisions d'architecture ? Si oui merci de mettre le lien en commentairehttps://blog.octo.com/architecture-decision-record https://github.com/joelparkerhenderson/architecture-decision-record https://en.wikipedia.org/wiki/Architectural_decision#cite_note-15 https://github.com/betagouv/rdv-service-public/tree/production/docs/decisions

Répondue

Vos containers applicatif sont-ils stateless ?Stocker des données localement peut rendre la gestion opérationnelle plus complexe et risquée, notamment lors du passage à l'échelle. Il est préférable d'utiliser un autre service (base de données, stockage objet...) pour persister de la donnée.

Répondue

Utilisez-vous un ORM ?ORM : Outil qui traduit les données entre la base de données et les objets du code. Ex : Hibernate, SQLAlchemy, Entity Framework.

Répondue

Appliquez-vous les principes de KISS ou YAGNI dans le développement de ce produit ?https://fr.wikipedia.org/wiki/Principe_KISS https://fr.wikipedia.org/wiki/YAGNI

Répondue

Appliquez-vous les principes de SOLID dans le développement de ce produit ?https://fr.wikipedia.org/wiki/SOLID_(informatique)

Répondue

Appliquez-vous les principes de 12Factor dans le développement de ce produit ?https://12factor.net/fr/

Répondue

Votre produit inclut-il une déclaration d'accessibilité ?si oui, donnez le lien en commentaire

Répondue

Avez-vous fait un audit "Ten easy checks" ? Par exemple avec https://design.numerique.gouv.fr/outils/diagnostic-flash/ ou en atelier avec beta

Répondue

Existe t-il des tests de performances côté client (lighthouse) ?

Répondue

Le code est-il sur un repo public (GitHub/GitLab) ?

Répondue

Avez-vous un fichier de licence dans le repository ?Aide au choix de la license : https://licence-libre.incubateur.anct.gouv.fr/

Répondue

Existe t-il un fichier de contribution ? https://contributing.md/ https://gitlab.com/incubateur-territoires/startups/espace-sur-demande/application/-/blob/develop/CONTRIBUTING.md

Répondue

Les données du produit sont-elles disponibles sur data.gouv.fr ?

Répondue

L'API du projet est-elle publique ?Même si certains endpoint sont protégés par un système d'authentification

Répondue

Votre API est-elle documentée publiquement ?Swagger, OpenAPI, etc...

Répondue

Un fichier publiccode.yml est-il présent dans votre repository ?Au sein de l'incubateur nous portons les valeurs du code public, ce document permet une meilleur découvrabilité de votre projet public. https://yml.publiccode.tools/

Répondue

Contrôlez-vous automatiquement que vos dépendances (librairies) sont à jour ?Par exemple avec Dependabot Secure > security configuration (GitLab)

Répondue

Votre stack technique (langages, runtimes, bases de données, infrastructure) est-elle à jour ?Secure > security configuration (GitLab)

Répondue

Avez-vous un outil d'analyse statique du code en place ?Complexité cyclomatique, ... Par exemple SonarQube ou GitLab Code Quality

Répondue

Exécutez-vous systématiquement les tests automatisés pour chaque Pull Request ?

Répondue

Le code est-il parcouru à 80% par les tests automatisés (code coverage) ?

Répondue

L'acceptation de nouveau code dans la branche principale passe-t-elle par des pull requests ?

Répondue

Les pull requests sont-elles auditées par un autre développeur que l’auteur ?

Répondue

Les branches principales sont-elles protégées d’un commit direct ?

Répondue

Un pipeline d’intégration continue est-il en place ?

Répondue

Toute l'équipe travaille-t-elle sur un backlog commun dans le meme outil ? Par exemple un board Trello ou des issues GitLab

Répondue

Un standard de formatage de code et un linter sont-il en place ?

Répondue

En moyenne, un bug simple est-il corrigé et déployé en moins d'une heure ?

Répondue

Un nouveau développeur arrivant sur le projet livre-t-il en production lors de son premier jour ?Cette question vise à évaluer la simplicité du processus d'onboarding, pas la complexité de la contribution. On peut imaginer que le déploiement ne concerne qu'une correction de faute de frappe par exemple.

Répondue

Peut-on faire tourner le produit en local en 15 minutes ?

Répondue

Votre application est-elle en mono-repo ?On ne promeut pas forcément le mono-repo, on cherche avoir la vision globale sur votre produit.

Répondue

Les PM / PO / Stakeholders testent-ils les développements sur un environnement de test similaire à la prod ?Ces environnements sont parfois appelés feature apps ou review apps.

Répondue

Avez-vous un setup pour déployer automatiquement des features branch?des environnements ephemères pour chaque PR

Répondue

La CI / CD tourne-t-elle sur les PRs en moins de 15 minutes ?

Répondue

Les améliorations techniques sont-elles faciles à prioriser face aux nouvelles fonctionnalités ?Le travail de développement nécessite de travailler parfois sur des fonctionnalités du produit et d'autres fois de travailler à des sujets purements techniques qui n'apportent pas de nouvelles fonctionnalités. Ces sujets techniques peuvent cependant parfois être critiques pour la fiabilité et la qualité de l'application. Dans ces cas, il est important de pouvoir les prioriser correctement par rapport aux nouvelles fonctionnalités. À votre avis, est-ce que la communication avec les PM permet de correctement prioriser ces sujets ?

Répondue

Appliquez-vous un standard de nommage de commits, type conventional commit ?https://www.conventionalcommits.org/fr/v1.0.0/

Répondue

Ressentez-vous un climat de confiance qui permet de partager ouvertement les difficultés et les succès durant les retros ?
Votre équipe a-t-elle défini et documenté des critères clairs pour considérer qu'une tâche est "prête à être développée" (Definition of Ready) ?
Votre équipe utilise-t-elle une Definition of Done (DoD) explicite et partagée par tous les membres pour valider qu'une fonctionnalité est terminée ?
L’équipe trouve-t-elle que les rétrospectives contribuent réellement à l’amélioration du travail au quotidien ?
Disposez-vous d'un glossaire expliquant le vocabulaire métier ?

Répondue

Vos utilisateurs ont-il accès à un changelog pour votre projet ?https://keepachangelog.com/fr/1.1.0/

Répondue

Adoptez-vous une approche guidée par l'impact pour introduire vos nouvelles fonctionnalités ?Par exemple : Commencer avec la version la plus minimale de la fonctionnalité, mesurer son impact. Décider si il faut continuer ou pas à investir sur cette fonctionnalitée.
Utilisez-vous des frameworks pour la conception produit ?Par exemple Shape Up, dual-track agile, lean UX, etc...
Avez-vous essayé la méthode de calibrage par cohortes pour comparer des groupes avec et sans votre produit ?https://doc.incubateur.net/communaute/solliciter-et-contribuer-a-la-communaute/je-sollicite-de-laide-transverse/cauchemar-a-beta-la-mesure-dimpact
Faites-vous de la recherche utilisateur ?https://designgouv.notion.site/La-recherche-utilisateur-27f77d6e829a4187817be6f91398a78e
Disposez-vous d'une cartographie des parcours utilisateurs (user journey) à jour ?

Répondue

Organisez-vous des rétrospectives au moins une fois tous les deux mois ?
Les rétrospectives aboutissent-elles systématiquement à des actions concrètes à mettre en place ?
Avez-vous un facilitateur désigné pour animer la rétro et s’assurer que tout le monde s’exprime ?
Utilisez-vous les chiffrement pour les données en transit ?Par exemple utilisation de HTTPS entre le client et le serveur, ou TLS entre le serveur et la base de données.

Répondue

Avez-vous en place une détection des secrets dans le code exécuté sur la CI ?Par exemple détection GitLab / GitHub / SonarQube https://docs.gitlab.com/ee/user/application_security/secret_detection/ https://gitleaks.io/

Répondue

Est-ce qu'un outil de detection des fuites de secret est mis en place dans un pre-commit ?Pour détecter par exemple si quelqu'un push le .env avec des secrets de production https://docs.gitlab.com/ee/user/application_security/secret_detection/ https://docs.gitlab.com/ee/user/application_security/secret_detection/secret_push_protection/

Répondue

Utilisez-vous des MFAs (https://fr.wikipedia.org/wiki/Double_authentification) pour accéder aux interfaces d'administration de vos outils et infras ?Ex. : - dépôt de code (GitLab, GitHub...) - accès à l'interface d'administration de l'hébergeur - sentry - grafana - plus généralement, tous les outils qui concourent au bon fonctionnement du service...

Répondue

Utilisez vous des commits signés ?https://docs.gitlab.com/ee/user/project/repository/signed_commits/ https://docs.github.com/en/authentication/managing-commit-signature-verification/signing-commits

Répondue

Ce produit a t-il reçu une homologations de sécurité (RGS) ?

Répondue

Ce produit dispose t-il d'un dossier sur le service MonServiceSécurisé suivi par le responsable sécurité de l'incubateur ?

Répondue

Disposez-vous d'une politique de sécurité ?https://fr.wikipedia.org/wiki/Politique_de_s%C3%A9curit%C3%A9_du_syst%C3%A8me_d%27information

Répondue

Disposez-vous d'une procédure de réponse aux incidents de sécurité ?

Répondue

Utilisez-vous un gestionnaire de mots de passe pour la génération, le stockage et le partage de secrets au sein de la startup ?https://www.notion.so/incubateurdesterritoires/La-boite-outils-tech-41e41e42094e4a85b876520a03cb044c?pvs=4#616778a9ecac45faa06373845ae2dbdb

Répondue

Tous les membres de l'équipe utilisent-ils un gestionnaire de mot de passe pour leurs accès nominatifs aux outils de dev et d'infra ?Par exemple le compte de l'hébergeur, le compte GitLab ou GitHub... https://www.notion.so/incubateurdesterritoires/La-boite-outils-tech-41e41e42094e4a85b876520a03cb044c?pvs=4#616778a9ecac45faa06373845ae2dbdb

Répondue

Tous les mots de passes utilisés sont-ils uniques et générés aléatoirement ?(via un gestionnaire de mots de passe par exemple)

Répondue

Un lien security.txt est-il mis en place sur votre service ?https://securitytxt.org/

Répondue

Votre produit est-il protégé par un service anti-DDoS (déni de service distribué) ?https://cyber.gouv.fr/publications/denis-de-service-distribues-ddos

Répondue

Votre metabase a-t-il accès à des données personnelles sur votre base de données ?Des solutions existent, par exemple PGAnonymizer https://www.notion.so/incubateurdesterritoires/Metabase-on-scalingo-119744bf03dd8006a55ccaffd62a26af
Votre metabase utilise-t-il un utilisateur dédié avec des permissions en lecture seule pour accéder à la base de données ?
Publiez-vous le budget de votre startup ?

Répondue

La fiche beta.gouv.fr de la startup est-elle à jour (membres, repo, stats, budget, ...) ?

Répondue

Les indicateurs de votre produit dans Dashlord sont-ils au minimum à la note E et exempts de tout avertissement (warning) ?https://dashlord.incubateur.anct.gouv.fr/

Répondue

Y a t-il dans votre équipe des notes de frais pour l'outillage ?précisez en commentaire les produits concernés
Votre produit a-t-il fait l'objet d'un Atelier impact ?https://doc.incubateur.net/communaute/solliciter-et-contribuer-a-la-communaute/je-sollicite-de-laide-transverse/cauchemar-a-beta-la-mesure-dimpact
Avez-vous défini et collecté des métriques d'impact ?https://doc.incubateur.net/communaute/gerer-son-produit/la-vie-du-produit/investigation/definir-et-mesurer-limpact
Une page stats est-elle en place pour visualiser vos métriques d'impact ?
Est-ce que la page stats est régulièrement consultée par votre équipe et vos sponsors ?
Prenez-vous le temps de remettre en question régulièrement vos métriques d'impact ?
Avez-vous intégré une boucle de feedback à votre produit ?Si oui, précisez comment est collecté le feedback utilisateur. Par exemple https://jedonnemonavis.numerique.gouv.fr/
Evaluez-vous régulièrement l'utilité perçue de votre service ?Par exemple avec le Net Promoter Score (nécessite un minimum de ~100 / 200 réponses pour être statistiquement pertinent)
Disposez-vous d'une stratégie de déploiement territorial documentée ?
Mesurez-vous le coût d'acquisition de nouveaux utilisateurs ou territoires ?

Répondue

Avez-vous calculé le retour sur investissement (ROI) pour les collectivités qui adoptent votre solution ?
Avez-vous un plan de communication ou marketing pour promouvoir votre solution ?
Avez-vous un suivi des taux de conversion à chaque étape du parcours d'adoption (découverte, essai, adoption régulière) ?
Collaborez-vous ou avez-vous tenté de collaborer avec d'autres startups d'État ou services publics numériques pour créer des synergies ?
Avez-vous documenté votre proposition de valeur afin d'aligner l'équipe autour de celle-ci ?
Votre produit est-il référencé sur le comptoir du libre de l'addulact ?https://comptoir-du-libre.org/fr/softwares Process pour référencer votre produit : https://docs.numerique.gouv.fr/docs/a39920d1-ab80-4b94-b237-f066e35e251e/