Je suis un développeur relativement nouveau. Professionnellement, j'ai programmé en C # pendant deux ans en tant que stagiaire et 6 mois en tant que développeur junior. Un ami de ma famille a besoin d'aide pour un projet écrit sur VB.net. Je n'ai jamais utilisé VB.net, donc je suis un peu inquiet.
Mais la vraie question vient du fait qu'une fois que j'ai regardé les documents du projet, j'ai le sentiment que rien de vraiment bon n'en sortira. J'ai le sentiment que cela causera plus de stress que ce que j'aimerais avoir dans ma vie actuellement.
Comment les développeurs expérimentés prennent-ils la décision de prendre ou non le projet? Quelles sont les bonnes mesures pour faciliter la décision?
Éditer
Cela ressemble en fait à un très gros ERP sur lequel il aimerait que je travaille et je ne pense pas qu'il sache quoi que ce soit sur la programmation, donc je ne pense pas que le fait que je sois très junior lui ait même traversé l'esprit.
Réponses:
D'après mon expérience: Ne faites jamais de travail impliquant de l'argent pour des membres de votre famille avec lesquels vous devez passer des vacances ou des amis que vous souhaitez conserver. L'une des parties impliquées aura toujours l'impression que l'autre partie facture trop ou ne paie pas assez et qu'elle a rendu service à l'autre partie. Lorsque la date limite arrive, ils sont généralement les moins compréhensifs, et ce sont généralement des trous de cul pendant le test bêta parce que si vous avez un bug - que vous allez - ils ne comprendront pas. C'est toujours un gâchis.
J'étais idéaliste et je pensais que tout le monde avait juste besoin de meilleures compétences interpersonnelles, mais non, c'est comme ça. Les personnes qui ne comprennent pas le processus de développement logiciel paniquent TOUJOURS lorsque quelque chose ne répond pas à leurs attentes dès le premier moment où elles le voient. Cela est vrai dans les affaires avec les chefs de projet autant qu'avec les membres de la famille. Le problème est que vous devez maintenir une relation avec votre famille et vos amis, et les choses ne sont jamais strictement commerciales.
Cela dit, si le projet va augmenter votre niveau de stress et que vous n'avez pas besoin d'argent, alors pourquoi le prendre? Surtout si vous avez déjà un travail de développement logiciel dans lequel vous souhaitez exceller, je dirais que vous devriez consacrer autant d'efforts à être excellent dans votre travail de jour car c'est là que vous serez finalement récompensé pour un travail de qualité.
Si vous avez besoin d'argent et que vous êtes d'accord avec la perte potentielle d'un ami de la famille, prenez le travail. La pire chose qui puisse arriver - à part les choses que j'ai mentionnées auparavant - est que vous apprenez ce que vous êtes et n'êtes pas bon, ou vous apprenez que vous mordez plus que vous ne pouvez mâcher, ce qui fait que le projet est mauvais maux de tête dus à votre inexpérience. Je l'ai fait deux fois avec mon emploi actuel - heureusement, j'ai des employeurs très compréhensifs. Bien que ce fut la misère alors que je me sentais mort dans l'eau, j'ai émergé un bien meilleur programmeur avec un ensemble de compétences beaucoup plus large qu'auparavant.
Il n'y a pas de calcul pour déterminer quels emplois abandonner et garder, seulement l'expérience et votre personnalité. Vous avez juste besoin de décider ce que vous appréciez et de le poursuivre. Choses à considérer:
Est-ce un projet sur lequel j'aimerais travailler? L'équipe est-elle une équipe avec laquelle j'aime travailler?
Quel type de paiement offriront-ils? Sinon, quel perfectionnement professionnel vais-je recevoir? Offrent-ils une sorte de risque partagé (c.-à-d. Options d'achat d'actions, pourcentage des bénéfices)? C'est un grand persuasif pour moi.
Quoi qu'il en soit, ce ne sont que des principes à utiliser dans votre prise de décision. Tout dépend de ce que vous appréciez. Par exemple, j'apprécie les défis intellectuels et le temps passé avec ma famille, donc j'accorde généralement une grande priorité à ce qu'est le projet et aux compétences que j'apprendrai à le faire. Cependant, je m'assure également de déclarer à l'avance que je ne travaille que 2 ou 3 nuits par semaine afin de pouvoir passer du temps avec ma femme et mes enfants car je travaille déjà toute la journée. J'ajuste le délai pour répondre à cette demande. S'ils n'aiment pas ça, alors je ne prends pas le travail.
Quoi que vous fassiez, assurez-vous d'indiquer clairement ce que vous ferez et ne ferez pas, et assurez-vous qu'ils énoncent clairement leurs attentes avant de prendre le poste. La pire chose qui puisse arriver est que le client ait des attentes non exprimées et que vous sous-estimiez ces attentes.
PS J'aimerais vraiment avoir lu cet article plus tôt dans ma carrière. Cela s'applique à mon dernier paragraphe. http://www.joelonsoftware.com/articles/fog0000000356.html
la source
Ai-je besoin du travail? Si oui, je "prends" le projet.
Combien de choix ai-je? Plus de 1? Je peux choisir entre les alternatives.
Seulement 1? Bien. C'est tout.
La question du «stress dans ma vie» est sans objet; le fait de ne pas prendre un projet signifie le non-maintien d'un emploi; ce qui a des conséquences désastreuses.
Si vous avez le genre de liberté financière où le «stress» est un facteur décisif, c'est vraiment génial.
la source
Que retirerez-vous de ce projet? Argent? Expérience? Autre chose?
Argent: il vient d'un membre de la famille (j'essaie de ne pas faire affaire avec la famille, mais c'est une toute autre discussion), il est petit (donc vous le dites bien), vous êtes assez junior, alors ne vous attendez pas à beaucoup de de l'argent (d'après mes expériences).
Expérience: vous apprenez une nouvelle langue! Cela pourrait être utile à l'avenir, peut vous donner un léger avantage sur les développeurs .NET qui ne connaissent que C #.
Mais votre instinct vous dit que ce projet sera mauvais . Pourquoi donc? Il semble que vous pourriez au moins en tirer une expérience.
La plupart des entrepreneurs commenceraient par regarder combien d'argent ils obtiendront pour décider d'entreprendre un projet. Idéalement, des projets plus difficiles génèrent plus d'argent. Si cela est difficile, il faut bien payer, mais je ne sais pas les détails de savoir si vous réellement aurez bien payé ...
En réponse aux détails de votre mise à jour: dites-lui que cela dépasse largement le cadre d'un seul programmeur junior. Vous pourrez peut-être faire quelques minutes de recherche et voir s'il existe un produit existant qui peut faire ce qu'il veut et voir si la page "Fonctionnalités" parle de personnalisation / plugins / extensibilité. Il peut également vouloir parler à un magasin de logiciels personnalisés si aucun produit existant n'est disponible, ou si un travail de programmation de plug-in approfondi doit être effectué. Il n'y a rien de mal à admettre qu'un projet est trop gros pour que vous puissiez le gérer - c'est beaucoup mieux que de le prendre en charge et d'échouer complètement (surtout s'il s'agit d'un membre de la famille - les fonctions familiales peuvent être maladroites et tendues pendant des années).
la source
Personnellement si cette phrase est impliquée, je ne prends pas le projet.
la source
En tant que pigiste, je n'accepte que les projets où je suis confiant de pouvoir le terminer à temps, dans le budget, de bonne qualité. Refuser un projet ne signifie pas chômage - du moins pas pour toujours. Accepter un projet que vous ne pouvez pas livrer coûte tout - argent, réputation, santé.
C'est parfois un peu plus difficile lorsqu'un bon client a besoin d'aide pour un nouveau projet qui ne correspond tout simplement pas à mes compétences; mais même alors, il vaut mieux être honnête et laisser quelqu'un d'autre le faire.
Dans votre cas, vous pouvez et devez refuser le projet - vous n'êtes pas assez expérimenté, vous ne connaissez pas la langue, c'est trop gros pour vous.
la source
Je fais de la programmation indépendante depuis plus de vingt ans. Pour qu'un projet réussisse vraiment, il faut au moins ce qui suit:
Vous décrivez un ami de la famille qui ne connaît rien à la programmation, qui veut que vous - un programmeur inexpérimenté - construisiez un système ERP en utilisant une technologie que vous ne connaissez pas.
Il me semble que cette situation manque définitivement sur # 1, # 3, # 6 et # 7, et peut-être tous. Comme le dit Adam sur Mythbusters, "c'est une recette pour un désastre."
Heck, je ne toucherais pas celui-ci avec un poteau de dix pieds moi-même. Je pourrais continuer encore et encore sur les autres drapeaux rouges que je vois ici, mais en gros, mon conseil est d'aller avec votre intuition, parce que vous avez raison: "rien de vraiment bon n'en sortira."
Puisque c'est un ami de la famille, si j'étais vous, je dirais simplement: "Vous avez un grand projet, et vous avez besoin de quelqu'un de vraiment bon, et je suis trop inexpérimenté pour vous donner les résultats que vous devriez avoir", et en rester là.
J'ai également constaté que lorsqu'un client a un problème dans un domaine, il est probable qu'il soit un problème dans d'autres. Un client potentiel qui envisagerait même de faire concevoir et mettre en œuvre un système ERP par un programmeur débutant est soit tellement ignorant qu'il constitue un danger pour lui-même et pour les autres, soit ridiculement bon marché, et l'un ou l'autre le mettrait dans ma liste de "rester à l'écart" .
FWIW, en tant que consultante / pigiste, je termine moi-même en remplissant les rôles de mon côté, avec les conseils de ma femme. Nous avons compris ce que sont tous ces éléments en voyant les projets échouer par manque - parfois, ce sont nos propres projets. Et même après vingt ans, et malgré la vérification de ces critères, je me retrouve toujours avec un projet occasionnel qui ne fonctionne pas - ce risque fait toujours partie du fait d'être en affaires. Je m'assure juste maintenant que les projets n'échouent pas à cause de tout ce que j'ai fait de mal et que les contrats sont structurés, donc je suis payé si l'autre côté échoue.
la source
Voulez-vous travailler avec les autres personnes impliquées?
Le projet n'est qu'une excuse pour rencontrer et s'associer avec les gens.
la source
Mon point de vue personnel serait de faire une petite exploration de ce qu'il veut, de quel calendrier, de quel type de coûts s'attend-il, etc. S'il s'agit en fait d'un gros ERP, l'aide pourrait durer des années et devenir vraiment laide. La gestion des déchets vs SAP serait un exemple de la façon dont cela pourrait coûter cher si vous voulez vraiment dire gros comme dans les budgets de projet à 9 chiffres.
Mon but en faisant l'exploration est de tracer une ligne dans le sable afin que ce soit clair pourquoi je pose les questions et ce que j'ai l'intention d'avoir en conséquence. "Dans quelle mesure est-ce que je vois cet être viable?" est la question que je me poserais en posant des questions sur la méthodologie, le budget et les délais, puis faire une petite recherche pour voir si les choses semblent être au niveau ou est-ce quelque chose qui peut se retrouver dans un site d'humour informatique comme The Daily WTF .
la source