Quels sont les livrables à donner au client pour une application web? [fermé]

11

J'ai terminé une application Web qui est essentiellement développée en PHP et n'est qu'une autre application Web ordinaire. Habituellement, lorsque je livre la version de production finale, je remets simplement la documentation du code et les informations d'architecture au client. Cependant, pour ce projet particulier, le client insiste pour avoir les données complètes d'entrée et de sortie sur le projet.

Je me demande donc ... Quels sont les documents techniques et non techniques obligatoires que je peux remettre à mon client en dehors des documentations de code et d'architecture?

(Il serait également plutôt intéressant de parler au client de diverses statistiques et données sur le projet afin qu'il sache réellement la quantité de travail impliqué et la fraîcheur du produit.)

espadon
la source
8
Les éléments obligatoires que le client obtient dépendent entièrement du contrat et de la loi de votre pays.
Falcon
2
Pourquoi cela n'est-il pas spécifié dans le contrat? Toute la documentation créée doit ajouter de la valeur (ou au moins une valeur perçue), pour vous, pour les futurs développeurs ou pour le client. Vous (devez) savoir quelle documentation ajoute de la valeur pour vous-même et les futurs développeurs, alors demandez à votre client exactement quelle documentation est nécessaire pour ajouter de la valeur, mettez-la dans le plan de projet et faites-la approuver.
Thomas Owens
Lesquelles le client veut-il ? Pouvez-vous obtenir des commentaires du directeur technique d'un client? Aussi: dans quel sens votre produit est-il "cool"? Pourriez-vous clarifier cela?
ZJR

Réponses:

9

Je pense que la liste devrait comprendre:

  • Les exigences non techniques (il y avait un tel document, non?)
  • Les exigences techniques
  • Un document "décisions" (s'il y en avait un) expliquant pourquoi certaines décisions ont été prises par rapport à d'autres. Cela peut déjà être dans un document d'exigences ou d'architecture différent, mais nous le faisons généralement séparément pour les grandes décisions.
  • Le code et autres ressources (fichiers image, CSS, etc ...)
  • Le modèle de base de données (sous forme de diagramme, de document, peu importe)
  • DDL pour créer la base de données.
  • DML pour amorcer la base de données.
  • Un document expliquant la configuration de l'application et le dépannage de base.
  • Une liste de tous les noms d'utilisateur importants et leurs mots de passe (pour les comptes d'administrateur), ainsi que des instructions sur la façon de changer le mot de passe. Idéalement, lorsqu'ils installent le site Web pour la première fois, ils devraient être invités à entrer un nouveau mot de passe administrateur, mais il s'agit davantage d'une question d'architecture.
  • Configuration système requise et pour les applications Web, exigences d'hébergement minimales également (l'application a-t-elle besoin de MySQL ou PostgreSQL? Combien de RAM?, Etc ...)

Toutes ces choses peuvent ne pas être disponibles (ou nécessaires) pour chaque projet, mais je pense que c'est un bon guide général.

FrustratedWithFormsDesigner
la source
"Une liste des noms d'utilisateur importants et leurs mots de passe (pour les comptes Admin)" : vraiment? Le développeur ne devrait jamais connaître de mot de passe une fois le site Web publié, en particulier celui des administrateurs. Si vous donnez au client la liste des mots de passe que vous avez utilisés pendant le développement, vous pouvez être sûr que le client ne les changera jamais.
Arseni Mourzenko
4
@MainMa: Je suppose que le client a la possibilité de changer les mots de passe et que l'une des premières instructions est "Changez vos mots de passe!"
FrustratedWithFormsDesigner
pourriez-vous s'il vous plaît clarifier pour le novice quelles sont les "exigences non techniques"?
Abe
1
@Abe: Les exigences non techniques signifieraient quelque chose comme «Cette application devrait permettre à un utilisateur de gérer ses propres comptes» et celle technique pourrait dire «Les services Web basés sur SOAP exposeront une interface qui permet à l'application cliente de gérer les comptes d'utilisateurs ".
FrustratedWithFormsDesigner
4

En plus de la très bonne réponse de FrustratedWithFormsDesigner, je voudrais dire ce que les documents non techniques incluent (comme nous l'avons fait):

  • les données d'analyse: que vous a dit le client lorsque vous avez parlé pour la première fois des exigences?
  • l'offre que vous avez faite:

    • le document d'exigence du produit
    • et le document de spécification fonctionnelle

    qui ensemble agissent comme une sorte de contrat sur ce que vous devez faire et ce que vous attendez
    du client pendant le développement, ainsi que le temps et les coûts estimés.

  • la spécification, y compris les protocoles d'examen, les cas d'utilisation et les plans de test, les résultats des tests

  • la conception en UML et tous les documents correspondants

  • la documentation du code source (doxygen ou autre)

  • le manuel et les directives d'installation

  • le montant réel final des ressources (temps et argent) utilisées pour le projet, afin que vous puissiez rédiger une facture

  • certains clients souhaitent également les protocoles de réunion, qui constituent alors une extension du "document de décisions" mentionné ci-dessus

J'espère que c'est ce que vous cherchiez.

Quelqu'un d'autre
la source
3

Suivez la documentation applicable à votre projet parmi les suivantes: vous en avez peut-être déjà quelques-unes.

Documentation technique:

  • Détails sur PHP et informations sur son utilité pour le projet
  • Détails sur le back-end et informations sur son utilité pour le projet
  • Informations sur la connectivité à la base de données ainsi que des images appropriées illustrant le flux de données
  • Informations sur d'autres langages de programmation ou applications impliqués dans le projet comme XML, HTML, etc.
  • Fichier d'aide FAQ

Préparez des documents avec des captures d'écran et mettez en surbrillance le code approprié (si nécessaire) pour les éléments suivants:

  • Informations sur l'application frontale comme les objets ou les contrôles, les propriétés des objets, etc.
  • Informations sur les requêtes de base de données (si elles ne sont pas déjà présentes)
  • Informations sur les propriétés de la base de données telles que la clé primaire, la clé étrangère, etc. et comment elles garantissent la cohérence et l'exactitude des données.
  • Guide détaillé tout au long du projet en utilisant des captures d'écran de tous les types d'écran possibles en utilisant à la fois le front-end et le back-end après l'avoir exécuté avec des exemples de données, sans répétition de types de données ou d'écran similaires, dans un ordre logique.
  • Saisissez des données non valides et montrez qu'il est impossible de le faire car vous avez effectué la validation des données à l'avant et à l'arrière.
    /* This step is not applicable if you have not used any object for getting direct input from the user like Text Field as it is obvious that you cannot get invalid data through indirect input. */

  • Montrez qu'il n'y a pas d'erreur dans le programme ou d'incohérence dans les données en cas de panne soudaine du serveur ou du système client en expliquant le code correspondant.

  • Après avoir donné des exemples de données via le front-end, vous pouvez inclure des exemples de requêtes dans le back-end pour une récupération directe des données du serveur et également des exemples de requêtes DML qui peuvent aider à préparer des statistiques vitales de vos données.

Vous devez les vérifier par vous-même avant de les documenter afin que si votre client demande une démonstration avec des exemples de données, vous pouvez montrer comment le projet fonctionne réellement. Assurez-vous également que votre code frontal comporte des lignes de commentaires appropriées.

  • Enfin, concluez avec les statistiques comme le nombre total de lignes de code, le nombre total de jours consacrés au projet, le nombre total de fois que vous avez vérifié le projet, une liste de toutes les applications utilisées et d'autres informations techniques et non techniques.


    Documentation non technique:

  • Détails sur la licence du projet, le cas échéant.
  • Aspects commerciaux du projet, le cas échéant.
IndRaj95
la source
2

Se méfier

La documentation potentielle que vous pourriez fournir au client est pratiquement infinie. Le temps supplémentaire requis pour générer la documentation que vous n'avez pas déjà n'est pas payé.

Pourquoi le client souhaite-t-il cette documentation (au-delà du code source)? Que va-t-on en faire? C'est pour qui?

Les réponses à ces questions aideront à réduire la portée de ce qu'il faut offrir.

Il est essentiel que vous et le client conveniez exactement de la documentation à fournir et de la compensation éventuelle des efforts supplémentaires.

Ne jouez pas à des jeux de devinettes. La plupart de la documentation technique serait inutile pour le client type (non technique).

Steven A. Lowe
la source
1

Je diviserais probablement ceci en quelques catégories de document:

Guides:

  • Guide d'installation, comment configurer cela sur un serveur.
  • Guide de l'administrateur, pour savoir comment configurer et exécuter l'application pour des performances optimales. La sécurité serait également quelque chose à couvrir ici juste pour que l'on sache quels mots de passe cette application possède et utilise pour s'exécuter.

Soutien:

  • En cas de problème, quel type de procédures proposeriez-vous? Offrez-vous une assistance pendant une certaine période? Je donnerais probablement encore un guide ou deux dans ce domaine juste pour que quelqu'un d'autre sache certaines des choses les plus faciles à essayer comme le redémarrage des services ou le redémarrage d'un serveur.

Points d'intégration:

  • Existe-t-il des points d'intégration tiers pour cette application qui font qu'elle dépend d'autres fournisseurs que votre code?
JB King
la source