Consultant et Architecte WEB/Applicatif
Expert technique Drupal/Symfony
Développeur PHP FULLSTACK

Mener un projet complexe avec succès !

Développeur web Toulouse
Partager sur linkedin
Partager sur twitter
Partager sur facebook

Vous souciez vous réellement de la sécurité et de la cohérence technico-fonctionnel de vos applications ?

Lorsque vous commandez une application, différents choix techniques sont à la charge de votre chef de projet/DSI mais aussi de votre prestataire. 

Votre application va donc rentrer dans différentes phases : 

  •  I. Architecture / Conception
  •  II. Développement
  •  III. Production (Maintenance et évolutions)
  •  IV. La fin de vie

I. Lors de la phase décisionnelle et d’architecture, le socle technique doit être challengé sur différents aspects et non seulement le coût à court terme :

  • La maintenabilité et l’évolutivité du socle à long terme
  • La capacité des équipes internes à appréhender la solution techniquement
  • La prédisposition du socle à répondre au besoin fonctionnel et technique
  • L’expertise des équipes du prestataire sur la solution retenue
  • La cohérence technique de la solution présentée

II. Lors de la phase de développement, si votre objectif de coût a été prédominant, alors le prestataire de développement devra économiser sur différents postes pouvant mettre à mal la conception et la sécurité de votre application :

  • Profil de coût optimisé (développeur junior, sous-traitance à l’étranger, Expert à mi-temps)
  • Temps de conception/développement restreint (Déséquilibre temps/qualité)
  • Phases de tests et de recettes minimisées
  • Audits de codes/sécurité outrepassés
  • Sacrifice de la documentation technique

III. Lorsque votre application est en production, les compétences sont elles toujours mobilisées et en poste, le budget suit-il ?

  • Les équipes internes ou chez le prestataire ont-elles changés ?
  • Les bugs et évolutions sont ils suivis ?
  • Un budget de mis à jour de sécurité est-il estimé et prévu trimestriellement/annuellement ?
  • L’application est-elle suivie ? De manière générale l’application est-elle passée au second plan voire oubliée ?

IV. Lors de la commande de votre application, avez vous estimé sa durée de vie et planifié des actions de refonte ou : 

  • Vous attendez l’aveu d’in-maintenabilité de votre application par le prestataire ?
  • Vous attendez une faille de sécurité majeure voire une fuite de données ?
  • Vous pensiez pas avoir besoin de planifier/estimer sa refonte

Commanditaire du projet, quelles erreurs sont à éviter ? 

Reprenons nos phases lors de la mise en oeuvre de votre projet : 

  •  I. Architecture / Conception
  •  II. Développement
  •  III. Production (Maintenance et évolutions)
  •  IV. La fin de vie

I. Lors de cette phase décisionnelle et d’architecture ne vous limitez pas au coût : 

  • Préparez-vous : Montez une équipe interne réellement apte techniquement à comprendre et à challenger le prestataire
  • Préparez-vous : Menez votre propre analyse sur les socles techniques pouvant répondre à votre besoin sans le communiquer aux prestataires
  • Préparez-vous : N’hésitez pas à organiser des soutenances pour sélectionner votre prestataire
  • Demandez un droit de regard sur l’équipe technique qui interviendra sur le développement de votre application
  • Demandez le scope projet compris et interprété par le prestataire
  • Demandez les risques identifiés sur le projet et les actions prévus
  • Si vous avez des doutes faite vous accompagner par un expert de votre côté
  • Identifiez la durée de vie de l’application commandée

I bis. Si le projet est dépendant d’une autre application assurez-vous : 

  • De fournir la documentation technique
  • D’identifier des référents techniques
  • L’application est-elle vieillissante ou est elle optimisée et maintenue ? Quelle est sa durée de vie ?
  • Peut-elle impacter négativement la nouvelle application (architecture, performance et sécurité) ?

II. Lors de la phase de développement engagez-vous :

  • Réalisez un suivi de projet en interne
  • Ecrivez et validez les spécifications
  • Demandez ou réalisez des audits de code
  • Rédigez un cahier de tests priorisé fonctionnel et comprenant les règles de sécurité
  • Participez aux tests et demandez/réalisez un rapport par lots
  • Demandez l’accès à la documentation technique du projet et suivez son évolution

III. Lorsque l’application est en production ne pensez pas que c’est fini, tout ne fait que commencer :

  • Maintenez votre équipe
  • Récoltez les bugs utilisateurs
  • Prévoyez un budget de maintenance et d’évolution
  • Prévoyez un budget pour les mises à jour de sécurité
  • Demandez un suivi régulier au prestataire et une mise à disposition de ses équipes
  • Testez les corrections et les évolutions, prenez en compte les tests de non-régressions et de sécurités
  • Analysez le comportement de votre prestataire, fait il son devoir de conseil ? Est-il pro-actif ? Où est il passé à un autre client ne ce souciant plus de vous ? 

IV. A vous l’application immortelle, attendez, c’est faux : 

  • Comme vu au point « I. » anticipé la fin de vie de l’application, économisez, dé-priorisez les dernières évolutions, … Pensez refonte ! 
  • Faite le point en interne sur le travail de votre prestataire et le coût à long terme de la relation
  • Faite le bilan ! Ce que vous souhaitez ajouter, améliorer et supprimer autant techniquement que fonctionnellement
  • Vous éviterez ainsi l’in-maintenabilité et des failles de sécurités supplémentaires.

Prestataire de développement êtes vous réellement dans l’accompagnement ?

Reprenons nos phases lors de la mise en oeuvre de votre projet : 

  •  I. Architecture / Conception
  •  II. Développement
  •  III. Production (Maintenance et évolutions)
  •  IV. La fin de vie

I. Ne sous estimez pas cette phase d’architecture :

  • Investissez sur un chef de projet expérimenté et impliqué
  • Investissez sur vos meilleurs profils afin d’identifier les opportunités techniques
  • Investissez sur vos meilleurs profils et capitalisez sur votre expérience pour identifier et limiter les risques
  • Soyez transparent sur l’équipe prévue sur le projet, n’ayez pas peur de justifier les différents profils
  • Justifiez vos choix techniques et mettez en lumière les risques pour le commanditaire
  • Impliquez autant que possible le commanditaire dans la conception, investissez dans la co-construction
  • Identifiez un référent technique sur le projet qui de pair avec le chef de projet accompagnera votre client

II. Tenez la barre, la théorie passe à la pratique :

  • Réalisez une documentation technique du projet
  • Suivez scrupuleusement les spécifications techniques et faites les évoluer et valider
  • Formez et accompagnez votre équipe si besoin
  • Maintenez l’équipe de développement en place
  • Réalisez des audits de code en interne
  • Réalisez différents niveaux de tests (croisés entre les développeurs, automatisés et fonctionnel par le chef de projet)
  • Partagez au plus tôt les risques identifier, les oublies ou les points de blocage

III. L’application est en production, on passe du sprint à l’endurance : 

  • Maintenez au moins une partie de l’équipe en place ainsi que le référent pour la TMA
  • Testez vos corrections et évolutions, celles-ci ne doivent pas créer des régressions
  • Continuez d’accompagner votre client, soyez pro-actif sur la remontée de bug, les possibilités d’évolution, …
  • Faite votre devoir de conseil sur les risques de sécurités et les nécessités de mises à jour (même si le client a un budget faible)
  • Même si votre client n’a pas de budget continuez à faire vivre la connaissance projet (gardez la à disposition à minima)
  • Faite un suivi régulier avec votre client, budgétaire, fonctionnel, taux bugs, …

IV. Laisser la responsabilité au client ? Grave erreur

  •  Une application en fin de vie rime avec failles de sécurité grandissante
  •  Ne pas faire votre devoir de conseil sur les risques de sécurité vous expose, si des failles sont exposées et si des données fuites
  •  Partagez les risques argumentés avec votre client, il sera décisionnaire sur les actions à mener, proposer lui des solutions
  •  Vous avez accompagné votre client activement, proposez lui de renouveler sa confiance et accompagnez le à nouveau pour une refonte

En conclusion que retenir de ces 3 précédentes parties :

  • Le commanditaire et le prestataire de services sont tous les deux acteurs lors du développement d’un projet. 
  • Il n’y a pas d’incompétents juste une organisation ambiguë basée sur des non dits budgétaires, orientant le projet
  • Tout le monde n’a pas le même niveau de responsabilité, mais tout le monde est responsable de la réussite ou pas d’un projet

Commanditaire du projet :

  • Avant de vous lancer ayez connaissance de tous les tenants et aboutissants d’un projet (développé précédemment)
  • Restreindre les coûts n’est pas bénéfique pour un projet que l’on souhaite conçu honnêtement et sur lequel on souhaite être exigeant
  • Restreindre les coûts ne rassure pas le prestataire sur l’implication du client
  • Restreindre les coûts n’est pas incompatible avec « optimiser les coûts », soyez co-constructif
  • Construisez une équipe interne apte; et non suffisante avec des profils sélectionnés par défaut
  • Estimez la durée de vie, évaluez les coûts, limitez les risques, ciblez de nouveaux objectifs
  • Ne sous estimez la sécurité de votre application et les risques légaux à supporter
  • Remettez en question vos outils déjà en place

Prestataire de services : 

  • Soyez transparent sur le cycle de vie de l’application dès le départ afin d’éviter tout malentendu ou mauvaises surprises
  • Assurez vous de la maturité du commanditaire afin de cadrer au mieux le projet et la relation, vous êtes le professionnel !
  • Ne pas faire son devoir de conseil volontairement pour X raisons n’est pas bénéfique et peut vous être fatal
  • Un projet est votre projet, même si le budget de maintenance est faible ne le laissez pas fuir ou vous prendrez des risques
  • Soyez rentable mais pas simplement vénal, accompagnez votre client ce ne sera que bénéfique sur le long terme
  • Assurez vous de contrôler la qualité de chaque livrables
  •  Impliquez vos équipes, présentez leurs les objectifs projets et la valorisation d’une réussite

Soyez honnête, soyez loyal. 

📩 Vous souhaitez un vif accompagnement ? Contactez-moi.