web-dev-qa-db-fra.com

Comment déterminer le nombre de programmeurs nécessaires à un projet

Comment savez-vous combien de programmeurs un projet particulier doit réussir?

La société que je travaille pour remplir les commandes pour les entreprises clientes. Nous avons écrit un système de gestion de l'entrepôt interne qui gère la gestion des stocks de localisation, le traitement des commandes, la génération de factures, la facturation, l'audit de fret et les rapports (probablement 50 rapports). Il dispose également de fonctions de numérisation de code à barres et d'un portail client ainsi que des dizaines d'autres caractéristiques plus petites. Il comprend également un employé complet Timecock. Il s'intègre à QuickBooks, UPS et FedEx. Il gère le travail pendant au moins 50 clients différents différents dans leur fonctionnalité. Par exemple, nous importons des commandes à partir de fichiers que les clients envoient, mais chaque client envoie un format de fichier différent (CSV, Excel, Fichier plat et Services Web), nous avons donc bien sur une douzaine de méthodes de conversion de commande. Les exportations sont la même histoire.

Le projet est complexe et de plus en plus en complexité chaque jour avec plus d'un quart de ligne de code de code. Il s'agit d'environ 250 000 lignes de code VB.NET, 6 200 lignes de Ruby Code et peut-être 5 000 lignes de PHP. Il dispose également d'une base de données MySQL avec environ 200 tables.

En raison des besoins en constante évolution et des besoins différents des dizaines de clients, le code lui-même varie considérablement de la qualité d'un code extrêmement pauvre à relativement bon.

Actuellement, ce projet n'a qu'un seul programmeur - moi-même. Je fais aussi actuellement tout le soutien du produit pour notre société de 75 personnes environ. Cela inclut le dépannage et la mise en place de nouveaux clients et de nouvelles fonctionnalités nécessaires. De plus, nous essayons de réécrire le tout à être 100% Ruby sur Rails basé. Et nous souhaitons commercialiser tout le système dans le prochain année ou donc d'être utilisé par d'autres entreprises.

Actuellement, nous n'avons que moi-même comme programmeur mais je ne crois pas que cela suffit. Quelqu'un a-t-il des recommandations pour le nombre de programmeurs un projet de cette ampleur ou de la manière dont nous devrions continuer à déterminer la réponse à cette question? En particulier, étant donné que la direction souhaiterait que le produit soit une qualité commerciale d'ici l'année prochaine?

18
kstevens715

Je dirais au moins 5 personnes. Un pour le test, un pour spécifications, support et documentation et 3Dev. Il y a beaucoup de choses à tester en vous, donc un testeur dédié de 50% ne devrait pas être déraisonnable. Une personne qui écrit les exigences et disposant d'un support client configurant votre infrastructure pour les tests, etc. devrait être là. Trois développeurs que je ressens sont assez bas pour un projet comme celui-ci. Un large arrière-plan intégré à de nombreux systèmes tiers et une complète avec de nombreux rapports personnalisés. Je voudrais avoir.

  1. Un bon développeur de dossier (Persistence/Business Calk)
  2. Développement de la bonne extrémité/front d'extrémité fabriquant des classes d'action et une conception JavaScript CSS.
  3. Un grand développeur d'un grand développeur par intérim, mais aussi la fabrication de code dans toutes les couches avec une aide experte des deux autres. Ce développeur peut également faire des choses comme configurer Junit Framework Maven Jenkins Git Branching et ainsi de suite.

Que se passe-t-il si vous partez, devient malade prendre des vacances, etc. Une personne par projet n'est jamais intelligente. Ce n'est pas non plus bon d'être seul alors que vous n'évitez pas professionnellement sans collègue. Je travaille assez souvent seuls, créant de nouvelles architectures et ainsi de suite, souvent dans des équipes de 5 développeurs, mais je n'évolue jamais autant que lorsque je dis à un collègue permet de mettre en place cela ensemble et que nous vous voilons nous-mêmes une semaine parlant, en discutant et choisir des cadres. La programmation par paire est extrêmement donnée et ne peut pas être faite avec un device et qui rendra des critiques de code si vous vous sentez incertain? Si vous êtes coincé qui vous aidera? Je n'engagerais qu'un projet d'une personne si cela faisait partie d'une plus grande portée et que des ressources expertes pourraient être invitées si nécessaire. En tant que développeur, il ne faut pas être stressé de l'extérieur par conséquent, le gars de support client mentionné précédemment pourrait agir en tant que maître de Scrum bloquant tous les obstacles externes et il pouvait hiérarchiser le soutien, le nouveau CRS et la raison du client final s'ils veulent changer de besoin que vous avaient peur de.

3
Farmor

Bienvenue sur le monde de l'OfT Times difficile de ressourcement!

La question n'est pas celle de la taille du projet VS Taille de l'équipe. C'est une idée fausse très courante qui cachent souvent d'autres problèmes qui sont généralement liés à la gestion. Le problème est tout à propos de Portée. Vous devez décider de ce que vous pouvez réaliser avec vos ressources actuelles - vous. Ensuite, vous devez décider si votre capacité de manipulation de la charge de travail suffit à gérer la tâche dans les délais impartis que vous avez été attribués. Ainsi, vos besoins de projet doivent être identifiés et cachés.

  • Voulez-vous passer du temps à nettoyer la base de code existante?
  • Est-ce une exigence fondamentale pour assurer le succès du projet?
  • Avez-vous de nouvelles fonctionnalités à ajouter au système? Quels sont les aspects les plus importants de votre projet qui doit être traité et quels sont les éléments mineurs qui figurent sur la liste de souhaits?
  • Est-ce que l'une des conditions requises soit abandonnée, soit au moins reportée jusqu'à la prochaine version d'entretien?

Lorsque vous avez une idée du champ d'application de vos besoins, vous pouvez déterminer plus facilement la charge de travail nécessaire pour obtenir un résultat dans un délai déterminé. Si vos ressources sont susceptibles d'être sututilisées, vous aurez besoin de plus de personnel. Si vos ressources sont susceptibles d'être sous-utilisées, vous pourrez peut-être vous trouver de plus près de votre échéance ou d'augmenter la portée de votre projet.

Si votre gut-instinct vous dit que vous n'avez pas assez de personnel pour gérer le projet, vous pouvez être correct, mais vous devez comprendre pourquoi vous êtes que vous vous indiquez cela. Il ne suffit pas de simplement avoir un sentiment. Au lieu de cela, vous devez pouvoir examiner le problème scientifiquement afin de fournir une preuve de sauvegarde de votre instinct, et vous devez être prêt à faire face à la possibilité que vous puissiez vous tromper. Une fois que vous avez rassemblé votre témoignage - c.-à-d .: Scoped the Project, vous devez donc vraiment vous asseoir avec votre gestion et faire une affaire pour réduire la portée du projet ou augmenter les ressources disponibles pour assurer le succès du projet, basé sur la réussite du projet. sur les preuves à portée de main.

8
S.Robins

Le succès du produit/projet dépendra de l'engagement de la société dont le payant. S'ils vont embaucher plus de programmeurs/personnel de soutien, il y aura une diminution inhérente de la productivité du programmeur, qui sache doit former, enseigner, gérer, etc. Pas que c'est une mauvaise chose. Mais il y aura Soyez une diminution avant toute augmentation. Il existe également la nécessité pour les analystes, les gestionnaires, les ventes et le support du produit une fois qu'il est disponible dans le commerce.

L'hébergement d'une application commerciale est beaucoup plus que de créer une plate-forme solide. Il existe des exigences de soutien, un support technique, une fixation de bogues, une formation utilisateur, etc.

avez-vous une bonne procédure d'analyse/de spécifications/estimations en place? Sinon, Démarrer maintenant, vous pouvez le faire par vous-même.

travaillez-vous votre cerveau en ce moment? Si tel est le cas, soyez prêt à travailler deux fois plus difficile si vous êtes censé gérer ce processus et continuer à développer (augmenter?) ..

et voici la réponse de mon expérience précédente étant dans une situation similaire dans la tarification du sud de la Californie:

5-6 personnes && ~ 500k

  • 1 Développeur principal/manager porteur de tous les chapeaux (~ 100k - 120k)

  • 2 programmeurs Sr (très capable, auto-entraînement) avec une bonne compréhension et des compétences de la DB (2x ~ 80 - 100k)

  • 1 chef de projet pour interfacer avec la direction ($$?) Cette personne devrait également pouvoir comprendre les besoins de l'application et communiquer ces besoins directement aux programmeurs

  • 1? (HTML/UI) Développeur? Avec des compétences JavaScript (je déteste la programmation du code d'interface utilisateur/balisage)

  • 1? Personne de base de données? Cependant, la plupart des meilleurs programmeurs n'ont aucun problème à créer des structures de données évolutives, cependant, si vous souhaitez obtenir des problèmes d'optimisation, vous voudrez au moins avoir un consultant

6
hanzolo

1 programmeur sur une grosse basebase avec tout La responsabilité de la configuration, de la mise à l'essai, de la communication, de la prise en charge, de la documentation et de la correction de bugs ne sera pas beaucoup de temps pour écrire un nouveau code ou ajouter des fonctionnalités (ou même refactoring vieux code).

Casser votre semaine par le pourcentage de ces tâches obligatoires qui n'éloignent pas l'entreprise et vous serez surpris de la manière dont la gestion rapide engage une aide supplémentaire.

Les grands projets ont une certaine quantité de surcharge associée qui ne disparaîtra pas (surtout si la mise en œuvre/les tests avec de nouveaux clients tout le temps que vous semblez être). C'est la raison pour laquelle vous avez des rotations et un soutien en général; Donc, certains de ceux de l'équipe ont le temps de travailler sur de nouvelles fonctionnalités.

Vous voudrez peut-être aussi regarder dans des livres sur l'estimation logicielle. Ces livres peuvent ne pas ressembler à d'avoir grand chose à dire, mais ils contiennent des études de cas intéressantes provenant de divers domaines et de répondre à leurs revendications avec des preuves.

2
brian