Comment rédiger une analyse de projet ou une note de projet?
Nous sommes une petite (15 pers) création web/société de conception avec environ 8 à temps plein LAMPE de développeurs. Afin de réduire la quantité d'erreurs que nous faisons et pour éviter que nos budgets de dépassement nos estimations, j'ai introduit une sorte de technique de l'analyse de nos projets avant le développement débute. Ce n'est pas sorcier pour le développeur de l'application, mais dans notre secteur (webdev) il semble de moins que la pratique courante. Jusqu'à maintenant, nous avons reçu une petite brève de notre chef de projet assemblées (souvent moins d'une page) et a sauté la tête la première dans le développement avec certains catastrophique budgetting échecs.
Afin de s'attaquer à ce problème j'ai commencé à lire sur le sujet, j'ai lu CodeComplete2, Pragmatique Programmeur et The mythical Man-month. Je crois que j'ai attrapé les concepts de base de la préparation et de l'analyse d'un nouveau projet, mais je suis en manque d'exemples concrets. Quelqu'un sait-il d'un exemple d'analyse technique ou projet d'envergure, bref que je peux prendre un coup d'oeil à afin de mieux mettre les trucs que j'ai lu à la pratique? Je suis un grand fan de l'apprendre par exemple, pas besoin de dire que 🙂
source d'informationauteur ChrisR
Vous devez vous connecter pour publier un commentaire.
Malheureusement, la plupart de la portée du projet les documents commerciaux et les protégés de façon à ce qu'ils ne peuvent pas être publié, mais je suis heureux de pile vers le bas de mon expérience de ce qui fait un bon et j'ai inclus le genre de choses que j'avais l'espoir de voir.
La principale chose à retenir est ce que vous essayez d'atteindre - vous essayez d'obtenir une compréhension commune entre vous et le client sur ce qui se passe. De mauvaises estimations ne sont pas seulement à propos de la différence entre ce que vous avez pensé qu'il pourrait prendre et ce qu'elle a à prendre, mais aussi sur ce que vous pensiez que vous alliez offrir et ce que le client pensais que vous alliez offrir.
Une façon de chercher à documenter tout cela est si vous êtes couvert et si le client n'a revenir et à aller "où est le module de génération de rapports", vous pouvez juste le point de la phrase qui dit "il n'y aura pas de module de reporting" mais c'est pas vraiment ça. C'est vraiment sur le fait d'avoir cette conversation au début (où il peut être constructif) plutôt qu'à la fin (où il est susceptible d'être conflictuelle). Rappelez-vous cette si votre projet ou votre gestionnaire de compte commence à le rester trop dans le détail les sons négatif.
Alors, que devez-vous inclure:
Haut niveau de description de ce qui est fait - juste un ou deux paragraphes. C'est vraiment ne va pas à fournir les détails, mais il met en scène. Donc, dans cette section, vous dites que vous êtes en train de construire un site e-commerce pour vendre des widgets, que c'est un plutôt qu'un B2B B2C site, que le projet couvre l'intégralité de la conception et de la fabrication du site et ainsi de suite. Quelques paragraphes au plus.
De haut niveau, exigences fonctionnelles - bullet points décrivant les fonctions principales qui sera construit et conçu. Pour chaque entité de données de savoir s'il s'agit de créer, lire, mettre à jour et /ou de les supprimer, comme ce sera vous aider à mieux comprendre la tâche. Donc inclure la possibilité de créer/lire/mettre à jour/supprimer des utilisateurs, la possibilité de créer, lire et mettre à jour les commandes, la possibilité de créer/lire/mettre à jour/supprimer des catégories de produits, la possibilité de créer/lire/mettre à jour/supprimer des produits, y compris du texte, des images et de la vidéo.
Les exigences Non-fonctionnelles - un autre domaine où des tonnes de trucs à se manquer. Les exigences Non-fonctionnelles comprennent des choses comme la performance, la charge de l'utilisateur, l'audit, l'archivage, la sécurité et ainsi de suite. Pourrait sa place ici - même si c'est vraiment fonctionnelle, c'est quelque chose qui en quelque sorte est oublié car c'est souvent quelque chose qui prend en charge les systèmes d'utilisation, plutôt que d'être une partie de. Si vous ne faites pas quelque chose dans un domaine (par exemple, il n'y aura pas les pistes de vérification) puis l'état que clairement, peut-être dans une autre section intitulée...
Hors de Portée, les Choses vont venir au cours des discussions quant à savoir si quelque chose (un peu de fonctionnalités, une interface à l'autre système) est ou n'est pas inclus. Écrire ces vers le bas! L'un des domaines clés où le champ d'application échoue dans mon expérience est différente de la mémoire de ces conversations et de le faire sur papier avant de se débarrasser ou bien de cela. C'est un autre domaine où les rapports peuvent venir (ils savent qu'ils veulent rapports, mais pas ce qu', de sorte qu'il sorte de dérives alors vous livrer et ils se demandent où ils sont), mais aussi la gestion des utilisateurs (mot de passe de réinitialisation?) et de la sécurité.
Hypothèses À ce point au cours du projet, vous allez avoir de l'insuffisance de l'information à venir avec vraiment une estimation précise. C'est OK, vous pouvez combler les lacunes en vous-même, aussi longtemps que vous faites, il est clair que c'est ce que vous avez fait. Donc, si vous êtes faisant l'hypothèse qu'ils sont de vous fournir des modèles d'entreprise pour la pose de choses, alors écrivez-le. Si vous pensez qu'ils sont de fournir la copie et des images pour tout, de nouveau écrire.
Autres sections je voudrais examiner notamment:
Technique de la plate - forme si vous pensez qu'il est important de décrire la plate-forme technique à un niveau élevé (dans ce cas la LAMPE ainsi que tous les autres bits). Dans mon expérience, ce n'est pas une zone où le champ d'application de croyance qui se passe réellement, mais il a tendance à être deux minutes pour le faire, il ne peut pas nuire.
Interfaces avec d'autres systèmes - Dans mon expérience, une des choses qui ajoute de la complexité à tout projet est les choses sur lesquelles vous n'avez pas le contrôle complet, et l'un des domaines clés de ce qui se passe est que les interfaces avec d'autres systèmes. Lorsque vous traitez avec ces, il est toujours préférable d'énumérer les systèmes, le type d'interface et quelles sont les interactions vont avoir lieu. Donc, si vous êtes à la mise à jour de leur système de stock-dire vous, dire que c'est un service web, vous serez tir stock requêtes, la mise à jour des niveaux de stock et ainsi de suite.
Dépendances - Encore une fois, c'est en partie à l'extérieur de votre contrôle de la chose. Si il y a d'autres parties qui contribuent au projet (y compris le client), il peut être préférable à la liste de ce que vous attendez d'eux. Qui est-fournir la copie, dans ce format (c'est un bien structuré fichier Excel qui peuvent être facilement importées ou un million de documents Word)? Que penser d'un système de test pour les applications tierces, vous êtes attendus à l'interface avec? Quand avez-vous besoin de ces choses?
Espère que cette aide.
Edit: j'ai creusé et légèrement anonymisées un couple de modèles que j'ai utilisé dans mon dernier emploi. Ils sont internes (c'est-à nous étions une équipe interne en faisant le travail au sein de l'entreprise, par opposition à une équipe fait un travail pour un autre organisations), mais la structure et les principes sont les mêmes.
J'ai inclus un projet de mandat de modèle qui est à peu près le genre de document que vous souhaitez:
http://seventeensix.tumblr.com/post/749062608/a-sample-project-mandate-template
et une spécification de modèle qui pourrait également avoir des morceaux que vous trouverez utile:
http://seventeensix.tumblr.com/post/749077647/a-sample-specification-template
Le mandat de projet contient certains des échantillons réels de l'un des projets, il y a très fastidieux systèmes financiers paquet de conciliation), contiennent tous les deux de la structure, et un pointeur de ce qui se passe où, avec un exemple.
Ce sont tous de beaux livres. Je propose aussi d'ajouter "les Exigences de Logiciel 2" et "Peopleware: Productive des Projets et des Équipes" (je n'ai pas encore lu Peopleware; il a été sur ma liste de choses à faire pendant un certain temps, je le crains.)
Mais j'ai peur que il n'y a pas de substitut à l'expérience; si vous faites attention à ce que votre équipe a cité dans le passé, ce qu'il a effectivement eu à livrer, et essayer de trouver les raisons pour lesquelles vous avez été bon ou mauvais pour les pièces que vous avez été bon ou mauvais, vous allez apprendre à être mieux.
Dans mon expérience, il ne fait jamais de mal pour essayer de casser le gros problème en problèmes plus petits. Itérer. Quand vous pensez que vous avez finalement obtenu morceaux de prendre .5 à 1 programmeur-journée, alors vous êtes arrivés au point où j'ai eu le plus de succès lors de l'estimation de temps.
Bien sûr, vous devez garder à l'esprit les programmeurs travaillant pour vous: Alice peut-code un les solution en une demi-journée, Bob peut prendre une journée, et Charlie pourrait prendre deux jours pour y arriver, avec une heure de Bob pour la révision du code. Sachant que votre programmeur forces et les faiblesses permettra aussi de prendre de l'expérience.