Comment savez-vous combien de programmeurs un projet particulier doit réussir?
L'entreprise pour laquelle je travaille exécute les commandes des entreprises clientes. Nous avons écrit un système de gestion d'entrepôt interne qui gère la gestion des stocks en fonction de l'emplacement, le traitement des commandes, la génération du connaissement, la facturation, l'audit du fret et les rapports (probablement 50 rapports). Il possède également des fonctions de lecture de codes-barres et un portail client ainsi que des dizaines d'autres fonctionnalités plus petites. Il comprend également un horodatage complet des employés. Il s'intègre avec Quickbooks, UPS et FedEx. Il gère le travail d'au moins 50 clients, tous différant légèrement par leurs fonctionnalités. Par exemple, nous importons des commandes à partir de fichiers envoyés par les clients, mais chaque client envoie un format de fichier différent (csv, excel, fichier plat et services Web), nous avons donc bien plus d'une douzaine de méthodes de conversion de commande configurées. Les exportations sont la même histoire.
Le projet est complexe et de plus en plus complexe chaque jour avec plus d'un quart de million de lignes de code. C'est environ 250 000 lignes de code VB.NET, 6 200 lignes de code Ruby et peut-être 5 000 lignes de PHP. Il possède également une base de données MySQL avec environ 200 tables.
En raison des exigences en constante évolution et des besoins différents de dizaines de clients, le code lui-même varie considérablement en qualité, d'un code extrêmement médiocre à un code relativement bon.
Actuellement, ce projet n'a qu'un seul programmeur - moi-même. Je fais également actuellement tout le support produit pour notre entreprise de 75 personnes environ. Cela inclut le dépannage et la configuration de nouveaux clients et toutes les nouvelles fonctionnalités nécessaires. De plus, nous essayons de réécrire le tout pour qu'il soit basé à 100% sur Ruby on Rails. Et nous aimerions commercialiser l'ensemble du système au cours de la prochaine année pour être utilisé par d'autres sociétés.
Actuellement, nous n'avons que moi-même en tant que programmeur mais je ne pense pas que cela soit suffisant. Quelqu'un a-t-il des recommandations sur le nombre de programmeurs qu'un projet de cette ampleur devrait avoir ou sur la façon de déterminer la réponse à cette question? Particulièrement compte tenu du fait que la direction souhaite que le produit soit de qualité commerciale d'ici l'année prochaine?
la source
Réponses:
Je dirais au moins 5 personnes. Un pour le test, un pour les spécifications, le support et la documentation et 3devs. Il y a beaucoup de choses à tester dans votre cas, donc un testeur dédié à 50% ne devrait pas être déraisonnable. Une personne écrivant les exigences et ayant un support client pour configurer votre infrastructure pour les tests, etc. devrait être là. Je pense que trois développeurs sont assez faibles pour un projet comme celui-ci. Un grand back-end qui est intégré à de nombreux systèmes tiers et un front complet avec un très grand nombre de rapports personnalisés. Je voudrais avoir.
Que se passe-t-il si vous partez, tombez malade, prenez des vacances, etc. Une personne par projet n'est jamais intelligente. Il n'est pas non plus bon d'être seul car vous n'évoluez pas professionnellement sans collègues. Je travaille assez souvent seul, en mettant en place de nouvelles architectures et ainsi de suite, souvent en équipes de disons 5 développeurs mais je n'évolue jamais autant que quand je dis à un collègue de laisser mettre cela en place ensemble et nous nous enfermons une semaine à parler, discuter et choisir des cadres. La programmation par paire est extrêmement généreuse et ne peut pas être effectuée avec un seul développeur, et qui fera des révisions de code si vous n'êtes pas sûr? Si vous êtes coincé, qui vous aidera? Je n'entreprendrais un projet d'une seule personne que s'il faisait partie d'une plus grande portée et pouvait faire appel à des ressources d'experts si nécessaire.
la source
Bienvenue dans le monde souvent difficile des ressources !
Le problème n'est pas celui de la taille du projet par rapport à la taille de l'équipe. C'est une idée fausse très courante qui cache souvent d'autres problèmes qui sont généralement liés à la gestion. Le problème est lié à la portée . Vous devez décider de ce que vous pouvez réaliser avec vos ressources actuelles - alias vous. Ensuite, vous devez décider si votre capacité à gérer la charge de travail est suffisante pour gérer la tâche dans les délais qui vous ont été alloués. Ainsi, les besoins de votre projet doivent être identifiés et définis.
Lorsque vous avez une idée de l'étendue de vos besoins, vous pouvez plus facilement déterminer la charge de travail requise pour obtenir un résultat dans un certain délai. Si vos ressources sont susceptibles d'être surexploitées, vous aurez besoin de plus de personnel. Si vos ressources sont susceptibles d'être sous-utilisées, vous pouvez vous retrouver à rapprocher votre échéance ou augmenter la portée de votre projet.
Si votre instinct vous dit que vous n'avez pas assez de personnel pour gérer le projet, vous avez peut-être raison, mais vous devez comprendre pourquoi c'est ce que vous dites instinct. Il ne suffit pas d'avoir simplement un sentiment. Au lieu de cela, vous devez être en mesure d'examiner le problème scientifiquement afin de fournir des preuves pour sauvegarder vos instincts, et vous devez être prêt à faire face à la possibilité que vos instincts puissent même avoir tort. Une fois que vous avez rassemblé vos preuves - c'est-à-dire: la portée du projet, vous devez vraiment vous asseoir avec votre direction et plaider en faveur de la réduction de la portée du projet ou de l'augmentation des ressources disponibles pour assurer la réussite du projet, sur la base sur la preuve à portée de main.
la source
Le succès du produit / projet dépendra de l'engagement de l'entreprise qui l'a payé. S'ils vont embaucher plus de programmeurs / personnel de soutien, il y aura une baisse inhérente de productivité de la part d'un seul programmeur, qui sait qu'il doit former, enseigner, gérer, etc. non pas que c'est une mauvaise chose .. mais il y aura être une diminution avant que toute augmentation ne soit réalisée .. il y a aussi le besoin d'analystes commerciaux, de gestionnaires, des ventes et du support du produit une fois qu'il est commercialisé ..
L'hébergement d'une application commerciale est bien plus que la simple création d'une plateforme solide. il y a des exigences de support, un support technique, une correction de bugs, une formation des utilisateurs, etc.
avez-vous une bonne procédure d'analyse / spécifications / estimation en place? sinon, commencez maintenant , vous pouvez le faire vous-même.
travaillez-vous votre cerveau en ce moment? Si c'est le cas, préparez-vous à travailler deux fois plus dur si vous êtes censé gérer ce processus et continuer à développer (augmenter en raison?).
et voici la réponse de mon expérience précédente dans une situation similaire dans la tarification de la région sud de la Californie:
5-6 personnes && ~ 500k
1 développeur principal / gestionnaire portant tous les chapeaux (~ 100k - 120k)
2 programmeurs Sr. (très capables, autonomes) avec une bonne compréhension et compétences en DB (2x ~ 80 - 100k)
1 Chef de projet pour l'interface avec la direction ($$?), Cette personne doit également être en mesure de comprendre les besoins de l'application et de communiquer ces besoins directement aux programmeurs.
1? (HTML / UI) développeur? avec des compétences javascript (je déteste la programmation UI / code de balisage)
1? Personne de la base de données? cependant, la plupart des bons programmeurs n'ont aucun problème à créer des structures de données évolutives, cependant, si vous allez avoir des problèmes d'optimisation, vous voudrez au moins avoir un consultant
la source
1 programmeur sur une grande base de code avec tous la responsabilité de configurer, tester, communiquer, soutenir, documenter et corriger les bogues n'aura pas beaucoup de temps pour écrire du nouveau code ou ajouter des fonctionnalités (ou même refactoriser l'ancien code).
Répartissez votre semaine en fonction du pourcentage de ces tâches obligatoires qui ne développent pas l'entreprise et vous serez surpris de la rapidité avec laquelle la direction embauche de l'aide supplémentaire.
Les grands projets ont une certaine quantité de frais généraux associés qui ne disparaîtront pas (surtout si vous implémentez / testez de nouveaux clients tout le temps comme vous semblez l'être). C'est la raison pour laquelle vous avez des rotations de support et un support en général; certains membres de l'équipe ont donc le temps de travailler sur de nouvelles fonctionnalités.
Vous pouvez également consulter des livres sur l'estimation de logiciels. Ces livres peuvent ne pas sembler avoir beaucoup à dire, mais ils contiennent des études de cas intéressantes dans divers domaines et étayent leurs affirmations par des preuves.
la source