Question:
Gérer des délais irréalistes
TheM00s3
2015-07-21 10:21:59 UTC
view on stackexchange narkive permalink

Je demande des conseils sur la façon de gérer des délais irréalistes au travail. Le problème est que la société pour laquelle je travaille est en train de faire un énorme pivot, mais on s'attend à ce que le pivot se produise assez rapidement et que les solutions technologiques précédentes suffiront à faire une transition en douceur.

Au contraire, j'ai découvert récemment que le temps réel pour mettre en œuvre le nouveau produit va prendre quelques mois de plus que prévu, principalement parce que de nouvelles technologies devront être utilisées, et un grand quantité de refactors est nécessaire. Jusqu'à présent, l'équipe de direction n'a pas été très réceptive à cette nouvelle et espère que j'abandonnerai les refactors indispensables.

Je cherche des conseils sur la façon de gérer ce genre d'attentes irréalistes et comment aller de l'avant. J'aime beaucoup l'entreprise, mais je pense qu'il y a beaucoup de stress ici car l'entreprise perd quotidiennement beaucoup d'utilisateurs.

Bienvenue dans le monde de la programmation. Cela arrive à la plupart d'entre nous. La seule façon possible de gérer cette situation est d'augmenter vos forces, d'avoir un bon historique des échéances «réalistes» précédentes et de communiquer clairement ce que vous serez en mesure de faire dans un temps donné.
L'autre réponse est de déterminer combien peut être reporté après la date limite. Faites une adaptation quich-and-dirty maintenant, puis revenez et faites les refactorisations propres plus tard. C'est du génie logiciel, pas de l'informatique; "à temps et en dessous du budget" l'emporte parfois légitimement "mais cela nous coûtera moins cher à long terme si ...". Citant Steve Bois: "Faites-le fonctionner. Faites-le bien. Faites-le grand." Dans cet ordre.
@keshlam: bien que le monde réel s'arrête presque invariablement à "Make it work" :)
La refactorisation est effectuée pour rendre votre code plus facile à maintenir à l'avenir. Il est clair que le présent est une priorité beaucoup plus élevée que l'avenir dans votre entreprise, donc oui, vous devriez abandonner le refactoring. Vous devez communiquer une meilleure raison à vos gestionnaires pour laquelle les délais ne seront pas respectés
La refactorisation peut être nécessaire dès maintenant, car il peut être tout simplement impossible de faire fonctionner l'ancien code avec les nouvelles fonctionnalités. Si le code existant est suffisamment mauvais, la refactorisation peut être moins chère à court terme.
@gnasher: Absolument. Dans ce cas, vous devez être prêt à dire à la direction quelle est votre meilleure estimation du temps nécessaire, ce qui serait nécessaire pour atteindre son objectif (si possible du tout) ... puis faites de votre mieux pour l'amener à la date cible. en tous cas. Tant que vous avez été honnête (et, aussi important, précis) sur le temps nécessaire, ils peuvent être grincheux mais ne devraient pas vous blâmer pour leur choix de fixer une cible trop agressive. (Je ne dis pas que vous ne vous en voudrez pas, mais ...)
Pas très utile, mais une fois que nous avons eu un délai de 2 mois (mise en mai 2011) pour une intégration d'un système fiscal, que le fournisseur du système fiscal a déclaré n'avoir jamais vu terminé en moins de 19 mois. Nous avons dit que nous pouvions livrer en août, et nous avons livré en mars 2013. Nous leur avons dit que nous avions 5 mois d'avance sur le calendrier, nous n'avons jamais dit quel août.
Quatre réponses:
gnasher729
2015-07-21 11:15:11 UTC
view on stackexchange narkive permalink

S'il y a une échéance irréaliste, l'une des choses suivantes doit se produire:

  1. a. Prolonger la date limite / b. livrer après la date limite.
  2. Supprimer des fonctionnalités.
  3. Qualité de la baisse (attendez-vous à un crash ou à une perte de données ici et là).
  4. Faites appel à une personne hautement qualifiée qui peut contribuer de manière significative à la travail, c'est cher.
  5. Travaillez des heures ridicules et rendez-vous malade en conséquence, avec des résultats douteux.

Ce qui ne fonctionne pas, mais ce que votre direction semble faire, c'est

  1. Fermez les yeux et les oreilles à quiconque le dit vous la date limite est en danger.

Le numéro 5 a l'inconvénient de vous rendre malade, sans aucun avantage pour vous (l'entreprise ne va pas payer d'heures supplémentaires, ni vous remercier, mais réalisez que vous pouvez en profiter), et cela n'aide pas beaucoup de toute façon, c'est donc l'option que vous devez éviter et refuser à tout prix.

Je suggérerais de créer une liste de fonctionnalités qui pourraient être supprimées tout en ayant toujours un produit utile, et une liste de points où la qualité peut être baissée, y compris les conséquences évidentes. Votre direction doit alors décider quoi faire. Si nécessaire, faites-leur savoir que l'option 6 ne fonctionne pas (allez-y attentivement) et que l'option 1b. se produira automatiquement.

Ce que vous devez souligner, c'est que sans action, le délai ne sera pas respecté.

Je ne suis tombé dessus que récemment, mais c'est un excellent résumé avec quelques règles de la vie d'entreprise que j'emporte partout où je vais.
Michael A
2015-07-21 11:14:29 UTC
view on stackexchange narkive permalink

Premièrement, acceptez que si c'est vraiment le cas, ce n'est pas correct. Trop de programmeurs ramènent leur travail à la maison avec eux et restent silencieux sur ces problèmes, laissant la direction dans le noir (même s'ils semblent ne pas l'être).

Vous ne voulez jamais non plus présenter un problème sans une sorte de raisonnement ou une solution. Pour ce faire, la communication est essentielle. Non seulement en disant à votre responsable que vous ne pourrez pas atteindre une date limite, mais en affinant la façon dont vous le communiquez.

Si j'étais à votre place, je décomposerais le travail en éléments et placerais le calendrier et les délais autour de chacun d'eux. Vous pouvez ensuite l'utiliser pour expliquer exactement pourquoi le délai n'est pas réalisable, avec des données concrètes sur lesquelles l'entreprise peut se sentir à l'aise pour prendre une décision. Si vous êtes à l'aise pour le faire (en fonction de votre niveau et de l'équipe), vous pouvez même suggérer des compromis qui pourraient être faits (avec des changements ou votre propre calendrier) pour aider à remettre le projet sur les rails.

Si cela ne fonctionne pas, je continue souvent de mettre à jour une feuille de calcul lorsque le projet commence à envoyer un résumé hebdomadaire (ou si nécessaire quotidiennement) des éléments de travail qui ont été terminés, des obstacles à l'exécution du travail et du calendrier prévu.

Matiss
2015-07-22 02:34:03 UTC
view on stackexchange narkive permalink

Tout d'abord, il semble que votre entreprise abuse du concept de délais et d'estimations - les estimations sont des estimations et c'est tout ce qu'elles sont. Personne, jamais, ne devrait s'attendre à ce qu'une estimation corresponde exactement à une date limite et la date limite devrait avoir un tampon de sécurité très raisonnable sur l'estimation pour exactement ces situations. Livrer plus tôt, c'est bien, mais livrer après la date limite ne l'est pas.

En modifiant les réponses précédentes, et d'après mon expérience précédente, cela pourrait tout aussi bien être un problème de communication pour une raison simple: les cadres manquent souvent de techniques les compétences et la compréhension, et en termes simples, ils sous-estiment l'importance de la qualité des logiciels, qui est apparemment un réel besoin dans ce cas, car vous avez déclaré que beaucoup de refactoring sera nécessaire. Sur cette base, vous devriez probablement présenter à la direction le fait que le faire plus tard coûtera plus cher, car la dette technique ne fait qu'augmenter et le problème qui existe déjà ne disparaîtra pas simplement s'il est reporté - il augmentera en gravité à mesure que vous en ajouterez de plus en plus. complexité du projet, et cette augmentation sera exponentielle au point où le maintien du projet absorbera une énorme quantité de ressources. Je ne pense pas qu'une direction avisée transmettra cela si elle est absolument certaine qu'elle perdra de l'argent si cela continue de la même manière.

S'il s'agit d'un produit intérieur, l'argument selon lequel nous devrions produire quelque chose qui fonctionne bien au lieu d'un gâteau à moitié cuit devrait passer avec brio.

S'il s'agit d'un produit pour un client externe, encore plus - les gens sont généralement assez raisonnables pour accepter de prolonger les délais si cela signifie que le résultat final s'améliorera par ordre de grandeur.

Enfin, mais non des moindres, vous devriez comprendre pourquoi cette sous-estimation flagrante s'est produite en premier lieu et placer un mécanisme pour l'empêcher de se produire à l'avenir - les techniciens n'étaient-ils pas impliqués dans les estimations? Quelque chose d'important a-t-il été exclu des estimations, et si oui, pourquoi? Et si tel est le cas, pourquoi le délai n'a-t-il pas été prolongé après qu'il s'est avéré irréaliste?

user8365
2015-07-21 20:40:59 UTC
view on stackexchange narkive permalink

Désolé, mais je pense que vous abordez le problème d'un point de vue trop technique. Il est facile d'accuser la direction de ne pas être raisonnable, surtout si elle n'est pas techniquement avertie, mais vous perdez des clients. C'est une réalité.

Comme toutes les situations d'urgence (pertes et dommages graves avec peu de temps et de ressources), vous devez trier. Dans votre cas, cela doit se produire à la fois dans les zones Refactoring et Feature / Requirements. Synchronisez ces deux si possible. Si la fonctionnalité A permet de conserver le plus de clients, refactorisez cette partie de la base de code si nécessaire. Limitez au moins le refactoring dans les zones présentant le moins d'intérêt pour vos clients. Je me rends compte que vous êtes peut-être en train de refactoriser des zones, des utilitaires ou des frameworks généralisés.

Je suis sceptique quant à cette grande transformation à un moment où les clients ne sont pas satisfaits de votre application. Réparez ce que vous avez pour résoudre leurs problèmes. Si vous pouvez me faire traverser la rivière, je n'ai pas besoin d'un nouveau pont.



Ce Q&R a été automatiquement traduit de la langue anglaise.Le contenu original est disponible sur stackexchange, que nous remercions pour la licence cc by-sa 3.0 sous laquelle il est distribué.
Loading...