Je semble être bloqué à plusieurs reprises dans une situation où les dates de sortie ne sont pas définies sur la base de quelque chose de technique, mais parce que quelqu'un dans les ventes s'est engagé auprès d'un client d'ici là. Sur la base de discussions avec des amis en développement dans d'autres entreprises, la même chose semble se produire.
"Voici l'ensemble des fonctionnalités validées et voici la date de sortie validée", et il est difficile de contester car à ce stade, il y a de l'argent sur elle, et cela l'emporte sur tout.
En général, existe-t-il un moyen de repousser cela? Sinon pour cette version, qu'en sera-t-il à l'avenir? Le problème que j'ai, c'est que la seule façon dont je vois une façon de le faire, et c'est en faisant de mon mieux, mais de libérer le logiciel "tel quel", pour ainsi dire.
Je ne veux pas publier de logiciels contenant des bogues car c'est mon nom attaché, mais faire 80 semaines d'heures pendant des mois à la fois justifie la date de sortie fixée arbitrairement.
edit: pour mémoire, je ne fais pas 80 semaines d'heure maintenant, cela me vient à l'esprit comme ce qui serait nécessaire pour couvrir l'ensemble des fonctionnalités attendues d'ici la date de sortie.
Arrêtez de faire les semaines de 80 heures. Ceci est un renforcement positif. Parce qu'ils obtiennent le produit à temps avec les coûts attendus, ils vont continuer à le faire, peu importe ce qu'il vous fait.
S'ils ne peuvent pas prévoir correctement leur temps, c'est la faute de la direction. Pas le vôtre.
Laissez-les manquer quelques délais.
En général, existe-t-il un moyen de repousser cela? Sinon pour cette version, qu'en sera-t-il à l'avenir?
Bien sûr, il y a: Laissez-les échouer mal avec cette approche. Rien n'enseigne aussi bien que l'échec.
Faites-vous estimation avant de commencer et montrez-le pour eux. Alors faites de votre mieux, écrivez du bon code, arrêtez compensant pour leur stupidité avec votre temps libre, et quand ils se plaignent ensuite, rappelez-les de l'estimation du temps que vous leur aviez montrée, basée sur des principes d'ingénierie.
Et vous feriez mieux de commencer à le faire avec le projet current.
S'ils continuent de vous blâmer pour le problème, vous feriez mieux de commencer à chercher un nouvel emploi, car rien ne les convaincra qu'ils sont le problème.
Après coup, je pense que cette question justifie en fait un lien vers la célèbre histoire d'EA telle qu'elle figure dans l'un des livres de Joel: EA: The Human Story.
Cela se produit généralement en raison d'une incitation perverse - les vendeurs sont payés à la commission, tandis que le personnel de production est payé sur le salaire. Les vendeurs disposent de plusieurs leviers pour travailler: fonctionnalités, coût et date de livraison. Ils ont une forte dissuasion à réduire les coûts, car cela réduit généralement leur commission, ils ont donc tendance à augmenter les fonctionnalités et la date de livraison (en termes d'être plus tôt). Ils pousseront ceux-ci le plus haut possible afin de conclure l'accord.
Essayez de le voir de leur point de vue, juste un instant. Ils ont aussi une famille à nourrir - et si la différence entre conclure une vente sur laquelle je travaille depuis des mois ne fait que couper quelques semaines du calendrier, alors c'est une tentation incroyable, surtout si je ne le fais pas vraiment comprendre ce que cela signifie.
La tentation est de dire "il en sera toujours ainsi et il en sera toujours ainsi". Mais un endroit où j'ai travaillé avait au moins une solution PROPOSÉE, si elle n'était pas mise en œuvre ... un gestionnaire a finalement levé les mains et a dit: "si les heures supplémentaires des programmeurs sont utilisées pour conclure une vente, alors ils devraient recevoir une partie de la Commission." Il n'a pas été mis en œuvre, mais il aurait aligné les incitations de chacun plus étroitement ... les programmeurs auraient été ravis d'entendre parler d'une nouvelle fonctionnalité qui devait sortir en peu de temps, car ils anticipaient la commission et la les vendeurs seraient MOINS aptes à créer ces circonstances, car ils seraient moins susceptibles de travailler à leur avantage.
L'équipe de développement doit être consultée sur ces décisions sinon vous ne sortirez jamais de ce cycle. Si vous ne gérez pas l'équipe, l'un de vos supérieurs hiérarchiques doit plaider pour l'équipe de développement. S'ils font partie du problème, vous voudrez peut-être envisager d'autres options d'emploi.
De manière générale, les ventes ne doivent pas s'engager sur quoi que ce soit sans l'acceptation de la gestion des produits, qui doit évidemment consulter l'équipe de développement pour les délais. Il n'y a vraiment aucune bonne excuse pour contourner cela dans une grande ou une petite entreprise, car finalement l'équipe des ventes prendra un peu de chaleur pour la sous-livraison (que ce soit en qualité ou en portée).
C'est presque une chose universelle dans les petites entreprises car elles ont un plus grand besoin de conclure un accord. Jusqu'à ce que je sois amené aux réunions de vente dans mon entreprise, j'étais amer à ce sujet, mais je peux au moins comprendre comment et pourquoi cela se produit un peu plus.
Les clients le veulent rapidement et beaucoup joueront dur pour l'obtenir. Cela encourage les ventes à respecter les engagements de temps juste pour faire signer quelque chose. Un contrat signé est de l'or car vous pouvez acquérir du capital ou du crédit en en utilisant un. Parfois, il vaut mieux avoir un délai serré que rien sur quoi travailler.
D'autres fois, si c'est un marché chaud et qu'il y a beaucoup de concurrents, l'entreprise a un besoin imminent de livrer un produit plus rapidement que tout le monde. Une entreprise plus grande ou avec plus de capital peut toujours embaucher plus de ressources, une plus petite ne peut pas.
Là où c'est scummy, c'est quand les délais sont vraiment artificiels et c'est poussé par les ventes et la gestion pour obtenir de gros bonus pour eux-mêmes.
Ne prenez pas l'habitude de travailler plus de 45 heures par semaine, c'est mauvais pour votre santé et cela vient en premier.
J'ai travaillé des deux côtés de la maison. N'oubliez pas que sans vendeurs, il n'y aurait pas d'emplois ou de projets en aval.
Comment lutter contre le sur-engagement des ventes : Estimer, puis prendre au moins un multiple de 130% (prévoir toujours une contingence minimale de 30%). Fournir et documenter ladite estimation. Sachez que vos estimations d'effort seront réduites dans le processus de vente. C'est OK, il suffit que la direction découpe l'accord de licence/vente/commission toute réduction de ces heures. Si vous êtes une entreprise publique, cela devient difficile avec VSOE , mais jusqu'à ce que vous frappiez les vendeurs avec la responsabilité des contrats d'avance au cours de leur processus de vente, cela deviendra votre responsabilité plus tard.
Il existe de nombreuses stratégies que vous pouvez utiliser, mais vous aurez généralement besoin de l'approbation ou de l'adhésion de la direction.
Payer les développeurs des heures supplémentaires à un taux plus élevé. Travailler des heures supplémentaires n'est pas si mal quand vous gagnez beaucoup d'argent en le faisant. Et si cela commence à affecter la gestion des résultats de l'entreprise, cela exercera une pression sur les ventes pour faire une meilleure estimation du travail.
Payer les vendeurs en fonction du profit au lieu des ventes brutes. Chaque heure de travail qu'ils n'incluent pas dans leur estimation nuit à leur commission.
Limitez le nombre d'heures que les développeurs peuvent travailler à 40 (ou quelle que soit la semaine de travail standard dans votre partie du monde).
Faites travailler les commerciaux toutes les heures de travail des développeurs. S'ils veulent que vous travailliez des heures supplémentaires pour réaliser leur projet, ils doivent être là aussi. Trouvez quelque chose d'utile pour eux, comme écrire de la documentation ou produire des copies calligraphiées et éclairées à la main de Design Patterns et The C++ Standard Template Library.
Demandez aux développeurs d'estimer chaque travail au lieu de laisser les vendeurs le faire. Au moins de cette façon, vous obtenez une certaine capacité à rendre le calendrier plus raisonnable. Ce n'est pas une excellente solution, cependant ... les développeurs sont souvent terribles pour estimer le travail requis. Même si l'estimation est raisonnable, des événements imprévus peuvent vous empêcher d'atteindre votre cible. De plus, nous avons tous tendance à ne pas travailler au début d'un long projet avec la même urgence que nous à l'approche de l'échéance. Ce sont ces facteurs qui motivent les courts cycles de développement que les partisans Agiles épousent.
Adoptez l'approche "agile" et refusez de vous engager. Devenir agile nécessitera beaucoup plus d'implication des clients, mais cela peut également leur donner plus de flexibilité car ils ne doivent pas nécessairement s'engager dès le départ sur la forme finale du projet. Les ventes peuvent ne pas être satisfaites de cela au début, mais elles peuvent changer de ton quand elles réalisent que cela peut offrir de nombreuses opportunités de vendre plus de travail.
Je pense que la solution la moins attrayante est tout ce qui fait mal paraître l'équipe de vente aux yeux des clients potentiels. L'équipe commerciale est le visage de l'entreprise. Les faire paraître mauvais nuit à l'ensemble de l'entreprise, et cela ne résoudra peut-être pas le problème - ils pourraient avoir l'impression de devoir faire encore mieux pour le client afin de regagner leur confiance.
Il y a déjà beaucoup de suggestions judicieuses dans les réponses, qui, espérons-le, peuvent aider à résoudre cette relation dysfonctionnelle. Mais à la fin, vous décidez combien vous voulez travailler.
Il est facile de faire pression sur des collègues pour qu'ils surmenent. Mais vous sacrifiez votre vie personnelle quand vous faites cela.
Voici ce que vous pouvez faire:
J'ai quitté mon dernier emploi parce que je faisais toujours des heures supplémentaires et qu'on me demandait toujours de travailler plus. Je leur ai dit clairement dans mon entretien de sortie que j'aimais beaucoup de choses sur le travail, mais que je ne voyais pas la fin des heures supplémentaires en vue.
J'ai également clairement exprimé ce désir dans mon entretien pour mon nouvel emploi et j'ai reçu une réponse enthousiaste. Ils ont tenu leur parole: on me demande rarement de faire des heures supplémentaires ici.
Mon ancien employeur a un taux de roulement élevé des développeurs et a de la difficulté à recruter ces jours-ci car ils ont la réputation de surmener. Peut-être que le coût supplémentaire du recrutement et de la formation leur donnera une leçon. Sinon, ce n'est pas mon problème.
Souvenons-nous d'abord que nous avons tous généralement des emplois pour soutenir les accords que les vendeurs font plutôt que pour construire un art de programmation techniquement parfait. S'ils ne font pas les affaires, vous n'avez pas d'emploi.
Cela dit, l'astuce consiste à trouver des moyens de travailler avec les ventes pour que tout le monde soit beau. Les processus où l'équipe technique peut au moins exprimer une opinion sur les propositions avant qu'elles ne sortent sont essentiels. Trouver des moyens créatifs de gérer la rémunération aide également beaucoup - si les ventes doivent "faire basculer" l'ingénierie lorsque celle-ci engage des heures supplémentaires massives, ce qui rend un calendrier irréaliste efficace, il semble réduire considérablement la fréquence des projets de marche de la mort.
C'est quelque chose que vous devez apporter à votre responsable (il y a des responsables du développement, non?) Et expliquer le problème. C'est un changement qui doit se produire au niveau organisationnel - les ventes doivent obtenir l'adhésion du développement avant de prendre des engagements, et avant que cela ne se produise, elles doivent obtenir cette direction de leurs patrons.
Il n'y a rien que vous puissiez faire pour concrétiser le changement, mais vous devriez certainement en parler à votre responsable.
En plus d'essayer de changer la culture (bonne chance), chaque fois qu'ils viennent à vous avec un délai que vous ne pouvez pas respecter, repoussez - avec des chiffres. Décomposez le projet et montrez-leur votre estimation du temps. Si c'est un projet de six semaines, dites-leur. Si cela a été promis au client dans quatre semaines, vous ne pouvez pas le faire et vous devez diffuser cette information le plus rapidement possible. Espérons que vos vendeurs pourront revenir vers le client et définir de meilleures attentes, ou travailler avec vous pour trouver un ensemble de fonctionnalités acceptable plus petit à livrer dans les délais promis, avec les fonctionnalités supplémentaires à ajouter plus tard.
Modifier pour ajouter: Ne les laissez pas parler de votre estimation. Soyez sûr que c'est correct et respectez-le. Ils vont essayer de négocier avec vous, mais ne les laissez pas.
Une suggestion qui n'a pas encore été émise: rétrospectives.
Ne dites pas "non, je ne fais pas d'heures supplémentaires", ce qui encourage toujours les autres développeurs à se précipiter et à vous faire mal paraître.
Mais dites très clairement à votre direction que chaque fois que vous devez faire plus de 40 heures par semaine pour faire un travail, toutes les personnes impliquées dans le projet doivent s'asseoir dans une pièce après le produit est livré , déterminez ce qui a mal tourné et ce que nous pouvons faire pour que cela ne se reproduise plus. Ou, mieux encore, chaque projet devrait avoir une rétrospective pour discuter de ce qui s'est bien passé et Qu'est ce qui ne s'est pas bien passé.
Si vous avez raison et que les vendeurs sont trop engagés, cela deviendra très clair très rapidement. Mais ne devancez pas la conclusion et ne soyez pas contradictoire à l'avance. Parlez-en en termes de choses que votre équipe peut faire pour livrer à temps sans faire d'heures supplémentaires.
Vous ne savez jamais, vous pouvez même trouver des améliorations à vos propres processus qui peuvent rendre l'estimation du vendeur plus réalisable.
Il n'y a absolument aucun moyen de lutter entièrement contre cela. La nature même des ventes est trop engageante. En tant que représentant commercial, vous êtes là pour faire disparaître comme par magie les problèmes du client potentiel. Les bons commerciaux ne feront que légèrement exagérer, les mauvais seront très embarrassants.
Tout ce que vous faites ne fera qu'aggraver ou créer des tensions entre les gens du produit et les vendeurs (au moins). Vous pouvez faire de gros efforts pour éviter de très mauvaises gaffes de la part de vos commerciaux, mais en fin de compte, les développeurs et les commerciaux sont payés sur le même compte bancaire. Votre entreprise réussira ou échouera en tant qu'unité, alors le déclenchement d'une guerre civile avec des ventes ne sera pas utile.
Si vous avez un ou plusieurs commerciaux qui se gênent habituellement, la direction des ventes s'occupera du problème. En tant que développeur, vous n'aurez pas le pouvoir de faire quoi que ce soit, vous devez donc vous concentrer sur la livraison du meilleur produit possible avec le temps et les ressources qu'ils vous donnent.
Il est difficile de répondre sans connaître la structure de votre entreprise.
Voici quelques outils généraux pour vous aider:
En ayant convenu contrôles de qualité, vous avez une raison professionnelle de ne pas pouvoir publier de logiciel buggé. Vous devrez peut-être convaincre vos patrons pourquoi c'est important (j'espère que non), mais il y a beaucoup de littérature là-bas pour vous aider.
En ayant une feuille de route du produit, les ventes savent ce qu'elles peuvent et ne peuvent pas promettre aux clients. S'ils veulent changer la feuille de route, ils doivent le soulever avec le chef de produit/chef de projet/chef de développement ou toute autre personne qui la change.
S'ils promettent à un client quelque chose qui n'a pas déjà été accepté, pas de chance. J'espère que votre feuille de route est basée sur données du marché sur les besoins des clients. "Que proposez-vous exactement que nous supprimions de ces 8 autres fonctionnalités hautement prioritaires dont nous avons la preuve que nos clients ont besoin?"
Enfin, comme déjà prévu, ne travaillez pas 80 semaines par heure. Vous n'aidez même pas l'entreprise en faisant cela parce que vous les aidez simplement à creuser un trou plus profond.
Déjà de très bonnes réponses ici. J'ajouterai simplement que vous ne devriez pas être poussé à respecter ses délais à votre détriment. De plus, j'aurais certainement un mot avec le vendeur et je lui rappellerai que s'il sur-promet et que la société ne peut pas tenir ses promesses, il (et la société) ne fera pas confiance à l'avenir, lui perdant de futures commissions (et peut-être son travail), il est donc dans son intérêt d'être réaliste (c'est-à-dire de consulter le personnel de programmation) afin qu'il gagne la confiance dans l'entreprise. À court terme, il peut gagner à être irréaliste, mais à long terme, il perdra en nuisant à sa réputation auprès des clients, de son employeur et des futurs employeurs via de mauvaises références.
Comme les vendeurs comprennent l'argent plus que toute autre chose, parlez-lui en ces termes.
Non
J'ai essayé d'en faire une réponse à deux lettres et la pile ne me laissait pas ... mais la réponse est
Non
Ce qui n'est pas tout à fait vrai si vous possédez/dirigez l'entreprise, bien sûr. Si vous êtes dans la position that, vous pouvez faire glisser l'équipe de vente par les oreilles et "parler". Si, cependant et comme je le soupçonne, vous n'êtes qu'un technicien "modeste", votre seul recours est de porter plainte "contre" la chaîne de commandement. Cela étant dit, mon expérience a été que dans les entreprises où cela se produit, la direction est consciente de la situation et s'en fiche.
Montrez-leur cette image (ou ceci ) et dites-leur que vous travaillez avec un triangle impossible.
·-----------------------·
/ \ \
· \ ·-------------------·
\ \ \ /
\ \ \-----------· /
\ \ \ / / /
\ \ \ / / /
\ \ \ / / /
\ \ / / /
\ \ / / /
\ · / /
\ / /
\ / /
\ / /
·---·
Dans tout projet, si vous corrigez deux coins de ces trois:
... alors le troisième est le seul flexible. Ce qui le rend impossible, ce sont les attentes. S'ils fixent toujours le temps trop court et la portée trop grande, la qualité en souffrira toujours. Dans un projet agile, les trois coins sont plus ou moins flexibles.
(Avertissement: j'exclus le facteur Coût du triangle de projet traditionnel et je fais de la qualité le coin. Le temps est le coût en projets logiciels.)
J'espère que vous réussirez à vous diriger vers une gestion de projet plus agile.
Avec le développement Agile, nous voyons des consultants vendre des points pour ~ 1000-1500 chacun. Si vous pouvez modifier le processus de vente en fonction de l'échelle de points, l'équipe de vente sera obligée de travailler avec l'équipe de développement pour arriver à des estimations raisonnables.
Tout se résume à un point critique; Si vous ne pensez pas pouvoir maintenir le rythme nécessaire pour respecter le calendrier des ventes promis, alors ne vous engagez pas dans le travail. Si les ventes sont excessives, ce n'est pas votre problème, jusqu'à ce que vous acceptiez le travail. ALORS c'est votre problème. Rappelez à votre patron que tous les vendeurs doivent dire oui et ils reçoivent le chèque; vous êtes celui qui tient réellement ses promesses, donc si vous dites que cela ne fonctionnera pas, votre patron devrait écouter. Si vous avez la malchance d'avoir un manager qui écoute sa force de vente plus que sa force de développement en ce qui est et n'est pas possible, alors vous avez le PHB Dilbert-esque, et vous devriez mettre à jour votre CV.
C'est une des raisons pour lesquelles j'aime Agile; l'équipe de développement est impliquée dans le processus dès les premières discussions de conception. Vous pouvez calibrer un "point" des deux extrémités; l'équipe de développement décide (explicitement ou empiriquement) à peu près combien d'heures de développement sont inhérentes à un point, que la direction peut ensuite utiliser pour calculer des points par semaine, des points par mois, etc., ce qui conduit à un chiffre en dollars. À ce stade, votre équipe de vente dispose désormais de chiffres relatifs au coût et au temps requis pour les niveaux de personnel actuels pour obtenir la portée actuelle. S'ils surpromettent une fois qu'ils ont ces chiffres, ils sont fous.
Spécifiez le travail après qu'ils vous l'ont donné et faites-leur savoir combien de temps cela prendra. Puis, quand ils en parlent, dites-leur.
"Je suis désolé que vous ayez pris cet engagement, mais compte tenu des ressources à ma disposition Cela prendra X heures pour terminer"
Faites ça à chaque fois ... ça a marché pour moi.
Fondamentalement, dites-leur qu'ils peuvent l'avoir rapide, bon marché et bon, choisissez-en deux.