Est-ce le travail d'un développeur de suggérer des exigences informatiques?

26

Je suis le seul développeur travaillant sur une application web qui touche à sa fin. Nous envisageons maintenant de le faire vivre dans peut-être quelques mois.

Il s'agit d'une application Web pour une entreprise non informatique. Bien qu'ils aient leur propre équipe informatique interne, ils m'ont demandé quelles seront les exigences matérielles pour les serveurs en direct, par exemple. RAM, 32 bits ou 64 bits.

Est-ce que l'équipe informatique interne ne devrait pas faire cela ou puisque je suis la seule personne travaillant sur le projet, est-ce ma responsabilité de leur faire connaître les exigences matérielles spécifiques qui peuvent avoir un impact sur les performances du projet?

La raison pour laquelle je pose cette question est que je ne l'ai pas fait auparavant. Toutes les fois, on me donnait un serveur et on me demandait de déployer des applications dessus. Je n'ai jamais eu à me soucier de la configuration du serveur, etc.

ashishjmeshram
la source
6
Ayant été des deux côtés de la médaille (plusieurs années d'expérience à la fois en informatique et en SD), je peux affirmer avec certitude que si j'avais un nickel à chaque fois qu'une équipe de développement me donnait une spécification matérielle qui correspond précisément à l'application, j'aurais 0,00 $. Probablement 90% étaient bien en deçà des spécifications et les autres avaient apparemment besoin de supercalculateurs. N'ayez pas peur de travailler avec l'informatique pour déterminer les spécifications matérielles! En combinant vos connaissances de l'application avec leurs connaissances des systèmes et de l'évolutivité, vous gagnerez beaucoup plus que d'essayer de définir une spécification CPU et RAM basée sur dev / test.
Justin ᚅᚔᚈᚄᚒᚔ

Réponses:

52

Bien qu'ils aient leur propre équipe informatique interne, ils m'ont demandé quelles seront les exigences matérielles pour les serveurs en direct, par exemple. RAM, 32 bits ou 64 bits.

Peut-être pensent-ils qu'en tant que développeur, vous avez plus d'informations que les exigences de l'application. Vous avez probablement exécuté l'application et savez combien de mémoire elle nécessite sous différentes charges.

Du point de vue du service informatique, ils sont heureux de fournir tout ce dont votre application a besoin. Ils pourraient probablement déterminer ce dont l'application a besoin par essais et erreurs, ou ils pourraient demander à l'un des gars de l'entreprise qui a probablement un aperçu du comportement de l'application son opinion.

Il n'est pas rare que les développeurs soient invités à faire des choses qui ne sont pas strictement dans leur description de travail . Vous devrez peut-être rédiger de la documentation, même s'il y a un rédacteur technique au sein du personnel. Vous devrez peut-être participer au processus de test même s'il existe un service d'assurance qualité. Ou vous pourriez être invité à aider à rédiger une proposition même s'il y a un analyste commercial sur le projet. C'est normal - vous faites partie d'une équipe, et votre principale préoccupation devrait être d'aider l'équipe à réussir. C'est également bon pour vous car cela élargit votre expérience et vous aide à comprendre ce que font les autres membres de l'équipe, et c'est bon pour l'entreprise car il diffuse des connaissances.

Caleb
la source
7
Heavy est à la tête d'un petit développeur de code-shop, car c'est lui qui doit porter plusieurs chapeaux.
Philip
1
J'ai récemment terminé une migration de site Wordpress. Ce n'est pas exactement ce que j'avais en tête lorsque j'ai décidé de devenir ingénieur logiciel, mais dans une petite équipe, en particulier dans une petite entreprise, vous faites ce qui doit être fait pour le bien de l'équipe, pas parce que cela correspond à votre idée de quel pourrait être votre travail idéal.
chanvre
15

est-il de ma responsabilité de les informer des exigences matérielles spécifiques qui peuvent avoir un impact sur les performances du projet?

Il est de la responsabilité d'un fournisseur de produits (votre entreprise, dans ce cas) de définir les exigences minimales pour le bon fonctionnement du produit. En tant que personne responsable au sein de votre entreprise; il peut s'agir du responsable technique du projet ( comme vous ) ou du CTO de votre entreprise - ce qui n'a pas d'importance pour votre client.

Cependant, une liste de spécifications minimales doit être fournie pour permettre un bon fonctionnement de ce produit sur une machine client et un serveur.

EL Yusubov
la source
4
Cette. L'équipe informatique ne sait pas à quel point votre application peut être exigeante. Sans cette connaissance, fournir un serveur est un coup de couteau dans le noir. S'ils ne savent pas et doivent fournir un serveur, vous obtiendrez généralement quelque chose de monstrueusement surdimensionné car ils ne veulent pas sous-dimensionner. À moins, bien sûr, qu'il n'y ait pas de budget, vous serez bloqué sur le petit serveur et blâmé pour tous les problèmes de performances qu'ils auront.
Brian Knoblauch
6

Dépendrait de quelques détails. Mais en général, ils peuvent au moins s'attendre à ce que vous leur donniez des exigences minimales, car vous devriez avoir une meilleure connaissance de la technologie que vous avez utilisée pour le projet. Vous sauriez quelle base de données est utilisée, si vous utilisiez un indexeur supplémentaire pour la recherche en texte intégral, qui nécessiterait peut-être plus de mémoire ou utiliserait des cœurs supplémentaires.

D'un autre côté, ils ont peut-être également des connaissances supplémentaires, comme le type de charge à attendre, le nombre de clients pouvant accéder au site, etc.

J'essayerais simplement d'entrer en contact direct avec l'équipe informatique et d'apporter les connaissances des deux côtés.

thorsten müller
la source
1

À ce stade du processus, ils devraient absolument vous demander ces informations. Le développeur / l'équipe de développement n'est pas seulement responsable de l'écriture du code. Il est de votre devoir de comprendre l'application que vous créez et tous ses rouages ​​internes. Cette connaissance aurait dû provenir de vos réunions de conception interne. Qui mieux pour évaluer le profil d'exécution du système avec toutes ses nuances que l'équipe / développeur qui l'a construit.

À la fin du jeu, je serais plus inquiet s'ils dictaient la configuration du serveur au lieu de me le demander.

cdkMoose
la source
0

Bien qu'ils aient leur propre équipe informatique interne, ils m'ont demandé quelles seront les exigences matérielles pour les serveurs en direct, par exemple. RAM, 32 bits ou 64 bits.

Les exigences matérielles ne signifient rien.

Bien que vous, en tant que développeur, puissiez penser en ces termes, méfiez-vous que personne du côté de l'entreprise ne se soucie réellement des réponses que vous donnez à ces questions. Ce qui importe est de savoir comment l'application Web exécute . Sur la base de cette question, je soupçonne que vous n'avez pas d'exigences de performances (telles que les demandes par seconde et le temps de chargement moyen d'une page). Vous devez fournir des conseils techniques pour développer les réponses à ces questions avant de vous soucier de la configuration matérielle requise.

Idéalement, vous ne devriez pas avoir à le faire seul: vous, un analyste d'entreprise, un informaticien qui connaît le coût d'un serveur et le chef de projet, devrait définir les exigences de performance et leur impact sur la portée / le calendrier / le budget. Une fois que vous êtes d'accord, vous et le service informatique pouvez travailler ensemble pour comprendre exactement ce que cela signifie, mais il y a de fortes chances que vous souhaitiez faire une optimisation de votre côté en plus d'y jeter du matériel.

Même si vous devez le faire vous-même, je vous recommande de documenter vos exigences de performances en termes mesurables qui ne sont pas des descriptions arbitraires du matériel - cela vous donnera également une marge de manœuvre pour revenir plus tard à l'informatique et demander plus si l'application n'est pas '' t performant à priser.

kojiro
la source
0

Vous ne pouvez pas vous attendre à ce qu'ils connaissent les exigences matérielles des logiciels qu'ils n'ont jamais vus. Les architectes et les développeurs principaux devraient avoir une idée approximative de la quantité de puissance de stockage et de traitement requise pour x-quantité de clients. Quant au nombre de clients que le logiciel doit prendre en charge, cela dépend du client et devrait vraiment être dans la spécification approuvée.

Lama inversé
la source