Comment coder sur un calendrier très serré?

40

Je travaille sur un projet qui a un calendrier très serré. Je n'ai pas beaucoup de temps pour coder et tester (même si je travaille plus de 12 heures par jour, c'est toujours en retard) et le résultat est très fragile. Son code est également très dilemme.

Ce programme est utilisé par tous les bureaux de la société de notre client, située dans de nombreux pays. Je reçois régulièrement des appels téléphoniques à minuit au sujet des erreurs de notre utilisateur / testeur ou du fait qu’il ne sache pas utiliser certaines fonctionnalités.

Après trois ans sur ce projet, je me sens très stressé et je ne dors pas bien parce que je suis très inquiet des erreurs et des appels téléphoniques.

J'ai quelques questions:

  1. Pendant trois ans, tout le code que j'ai écrit est simplement le code de scénario d'utilisation parfait (il est donc facile à casser). Il est mal conçu et ne comporte aucun test unitaire. J'ai beaucoup de problèmes à cause de ce fait. Par conséquent, je veux savoir s'il est possible d'écrire du code qui fonctionne lorsque le projet a un calendrier très serré.
  2. Comment puis-je écrire un meilleur code dans le même laps de temps?
  3. Comment puis-je me vider l'esprit et ne pas m'inquiéter du travail quand je m'endors?
Anonyme
la source
9
Suggestion? Le plus évident et vous le savez !!!
Aditya P
25
Éteignez votre téléphone la nuit. Fixez des limites et respectez-les. Vous avez deux problèmes distincts ici. Le premier est que votre entreprise ne respecte pas le fait que les employés ont également une vie à vivre.
Tim Post
34
quittez le travail, obtenez-en un nouveau. aussi, apprendre à faire des tests unitaires
mauris
18
Les délais sont le problème de la direction. Si les délais sont toujours aussi serrés, ils doivent alors travailler à fournir de meilleures estimations - ne vous contentez pas de travailler comme un chien pour répondre à ce qu'ils pensaient .
Steven Evers le
4
Je suis sûr que si EA Games avait engagé SnOrfus, il le ferait.
Berin Loritsch le

Réponses:

30

Interdire les appels téléphoniques

Si vos utilisateurs se trouvent dans le monde entier, ils ne peuvent sûrement pas s'attendre à ce que vous répondiez à un téléphone lorsqu'il est 4 heures du matin et que vous êtes au lit. J'interdirais les appels téléphoniques et je passerais à d'autres moyens de communication qui pourraient mieux servir ce scénario (courrier électronique ou base de données de suivi des problèmes). Mais même au bureau, établissez un calendrier d’accessibilité par téléphone. Sinon, vous ne pouvez rien faire pendant que vous êtes au bureau.

Cela vous procurera un sommeil et un repos précieux.

Emploi du temps chargé

Si ce projet a été serré depuis trois ans, quelqu'un doit avoir suspecté que les choses ne fonctionnent pas vraiment. Il est peut-être temps que quelqu'un dise quelque chose aux planificateurs, et en particulier à vos utilisateurs / clients et à vos responsables, qu'il s'agisse d'un projet de la mort. Il est en développement depuis trois ans, il est en retard et il est plein de bugs. Le plan doit être complètement réévalué, le code existant doit être remanié et les nouvelles fonctionnalités ne doivent pas être développées tant que de nombreux problèmes ne sont pas résolus.

Ordre du chaos

Établissez une méthodologie de développement qui rendra les choses prévisibles et supportables pour vous. Si vous êtes un développeur, le fait de servir des appels téléphoniques dès leur arrivée ne vous permet pas de faire du travail. Chaque interruption vous prend 15 minutes pour revenir à votre point de départ. Les appels téléphoniques devraient être éteints . Au moins sur votre bureau parce que vous êtes un développeur. Si vous pouvez rediriger les appels téléphoniques vers quelqu'un d'autre, cela ne vous dérangera pas après chaque appel.

Établir une sorte de base de données d'incidents / bogues. Prenez le temps chaque matin lorsque vous arrivez au travail et hiérarchisez les nouveaux incidents (vous-même, votre équipe ou avec votre client / responsable). Essayez de les résoudre dans cet ordre de priorité et ne tentez même pas de penser aux appels téléphoniques.

Et qu'est-ce qui se passerait si

Que faire si vous ne pouvez pas éteindre votre téléphone et vous ne pouvez pas dire à vos utilisateurs qu'ils ne peuvent pas vous appeler quand ils le souhaitent? Si vous avez le numéro de téléphone de votre utilisateur, je vous suggère de faire le contraire: lorsqu'il vous appelle, avertissez-les et informez-les que vous les rappelez dès que le problème est résolu. Puis rappelez-les quand ils dorment. S'ils vous disent qu'ils dorment, souvenez-vous de leur réponse et utilisez-la lorsqu'ils vous appellent au milieu de la nuit, la prochaine fois. Les gens comprennent généralement mieux leur propre langue.

S'ils utilisent un téléphone de bureau et que vous utilisez un téléphone mobile, vous ne pouvez donc pas les appeler en dehors des heures de travail, puis commencez à éteindre votre téléphone mobile après avoir quitté le bureau. Vous êtes là depuis 12 heures et vous méritez de ne pas travailler. Si le téléphone portable est votre téléphone personnel, votre entreprise doit vous en procurer un nouveau et vous devez en informer vos utilisateurs / clients. S'ils commencent à vous appeler après votre numéro personnel (parce qu'ils ne peuvent pas vous joindre pour votre entreprise, vous devez soit:

  1. ne ramasse pas
  2. faites-le répondre par un de vos amis en l'informant du mauvais numéro ou du fait que l'utilisateur d'origine de ce numéro ne l'utilise plus.

La chose la plus importante

Ne développez aucune nouvelle fonctionnalité avant d'avoir résolu les problèmes existants. Au moins haute et moyenne priorité.

Robert Koritnik
la source
6
Ne devenez pas agressif avec les utilisateurs. Si l'entreprise ne s'attend pas à ce que vous répondiez à votre téléphone en dehors des heures ouvrables, ne le faites pas. Il doit y avoir un autre numéro pour quelqu'un qui est en service.
JeffO
@ Jeff O: Je suis totalement d'accord. Mais depuis que cela dure depuis 3 ans, il semble prévu de répondre aux appels à ces heures inhumaines.
Robert Koritnik
1
Je suggérerais que vous leur disiez d'avance au lieu d'inciter. Ce ne serait pas tellement que les gens comprennent mieux leur propre langue, car ils ne veulent pas vous parler parce qu'ils vous trouvent désagréable.
Rei Miyasaka
3
"Rappelle-les quand ils dorment" "Les gens comprennent généralement mieux leur propre langue" bon;)
Achu
2
Honnêtement, s’il en arrive au scénario "Et si", la meilleure option est simplement de trouver un autre endroit où travailler. Il est malsain (pour la plupart) de travailler 12 heures par jour, et c'est encore pire lorsque vous êtes de garde. Certes, il devrait faire tout ce qui est en son pouvoir pour résoudre le problème, mais si tout le reste échoue, quittez. Cette situation n'est pas durable.
Dan Lyons
14

À moins que vous ne soyez la seule personne de l'équipe - dans ce cas, vous êtes probablement plus qu'à mi-chemin de l'épuisement professionnel - prenez le relais avec «le téléavertisseur». Cela devrait alléger la charge pour le moment.

Ensuite, vous devez indiquer à la direction qu'elle doit planifier une phase de réduction de la dette technique, c'est-à-dire des tests, le nettoyage du code, la refactorisation. Et cela doit être programmé bientôt. En règle générale, cela signifie que pendant un certain temps, il n’ya pas de nouveau code qui ne soit un refactoring ou un test. Sinon, ça va empirer.

Une fois dans cette phase, vous choisissez les sections les plus gênantes de la base de code, vous le refactorisez, vous le nettoyez et vous écrivez des tests pour tester la merde. Une fois que les appels ont cessé ou peuvent être traités sans que les développeurs ne deviennent fous, vous êtes prêt pour une autre phase de fonctionnalités (si c'est ce qu'ils veulent). À ce stade, vous écrivez des tests avec du nouveau code et continuez à exécuter les régressions. À l'heure actuelle, le logiciel sonne comme sur le chemin d'une réécriture.

Points de vente pour votre conversation avec votre patron:

  • Les tests automatisés peuvent arrêter ou réduire considérablement les régressions
  • Se concentrer sur la stabilité signifie que les utilisateurs auront moins de retards / arrêts de travail
  • Plus d'appels à minuit signifient qu'ils ne paient pas les heures supplémentaires
  • Plus d'appels à minuit, cela signifie que les développeurs ne vont pas s'épuiser aussi vite

Soyons honnêtes cependant. Jusqu'à présent, votre entreprise ne pensait pas que c'était un problème assez important pour résoudre le problème. vous allez vous épuiser. On dirait que personne dans la gestion n’a de réelle expérience en développement. Commencez à regarder.

Steven Evers
la source
Mieux encore, donnez le téléavertisseur au (x) responsable (s) qui vous a mis dans ce pétrin ... ou laissez-le tomber accidentellement dans un seau d'eau salée.
Stephen C
2
Si ce projet dure de manière chaotique depuis trois ans, je suppose que la phase du département technique durera quelques mois. Ils devraient d’abord arrêter de développer de nouvelles fonctionnalités pour résoudre 20% des problèmes les plus problématiques (car 80% d’entre eux sont heureusement rarement rencontrés), puis commencer par une refactorisation. Lorsque cela est fait, vous pouvez commencer à toucher les autres 80%. Mais ne commencez pas à développer de nouvelles fonctionnalités avant d'avoir résolu tous les problèmes actuels. Pourquoi? Le plus tôt vous résolvez un bug, le moins cher est de le résoudre. Même si dans votre cas, rien ne semble plus bon marché.
Robert Koritnik
@Robert Koritnik: Absolument. +1
Steven Evers
13

Certaines techniques vous permettront peut-être de réaliser de légers gains de productivité, mais une augmentation de 5% de la production de travail est pire qu’inutile pour le moment. La vraie compétence qui vous manque ici est simple et fondamentale:

Apprenez à dire non

Dites non à toutes les attentes déraisonnables que vous savez déjà que vous devriez refuser. Tu sais ce qu'ils sont. C'est évident. Si vous ne pouvez pas dire non maintenant, trouvez un emploi où vous le pourrez. Les employeurs intelligents trouveront cette compétence souhaitable.

Rein Henrichs
la source
1
Plus que tout, c'est la compétence requise. Très bonne réponse!
Joe Z
8

Commencez par comprendre que votre projet va échouer si rien ne change. C'est l'étape la plus importante pour faire ce que vous devez faire. Un développeur ne peut pas maintenir 12 heures d'effort par jour et être capable de produire du code utile. Vous allez arriver à un point où vous créez des erreurs stupides et que vous perdez en fait des progrès, car vous devez commencer chaque jour à réparer ce que vous avez fait la veille. On dirait que vous êtes déjà là.

Deux problèmes majeurs doivent être résolus avant que vous puissiez retrouver la santé mentale:

  • La direction doit savoir que ce qu’elle fait ne fonctionne pas . Continuer à répéter les mêmes erreurs produira les mêmes résultats. Quelque chose doit changer.
  • Vous avez besoin de temps pour réparer ce que vous avez déjà. Cela signifie que vous avez besoin de temps pour planifier votre attaque et de 8 heures de travail par jour.
  • Vous devez changer votre façon de travailler. Comprenez que plus vous êtes stressé, plus vous avez une vision tunnel. Vous ne pouvez pas penser à des moyens créatifs de résoudre les problèmes ou même penser à ce qui se passe s'il y a un problème quand vous êtes stressé de la sorte. Sans compter que vous avez un risque accru de complications graves pour la santé. Trouvez des moyens de réduire votre stress et de le réduire.

Afin de remédier à votre situation, vous avez besoin de l’adhésion de la direction. Le problème est qu'ils ne ressentent pas la douleur et que vous ne voulez pas vous retrouver à l'hôpital avec un AVC pour attirer leur attention. La première étape consiste à expliquer à votre direction où vous vous trouvez et la pression que vous subissez. S'ils ne l'obtiennent pas, montez à un autre niveau de gestion. Ou éventuellement décrire vos conditions de travail au service des ressources humaines. Le fait de vous obliger à travailler plus de 8 heures par jour pendant de longues périodes peut constituer une violation de la loi, et le service des ressources humaines le saura à coup sûr.

En supposant que la direction entende votre demande, vous souhaitez prendre les mesures suivantes:

  • Arrêtez le saignement. Pas de nouvelles fonctionnalités, et quelqu'un d'autre gère les appels de service. Vous devez être concentré sur la tâche à accomplir.
  • Identifiez les bogues les plus graves qui doivent être corrigés et essayez de savoir combien de temps il faudra pour les résoudre. C'est une estimation approximative, et il vaut mieux avoir des nombres plus grands que des nombres plus bas. Pour prendre en compte les réunions et les interruptions tout au long de la journée, votre direction a besoin d'un devis basé sur un travail de 5 heures par jour. Cela laisse 3 heures pour les réunions et les interruptions.
  • Demandez à la direction d’accepter le calendrier révisé pour ces bogues critiques.
  • Demandez à la direction d'accepter que quelqu'un d'autre teste pour vous. Cela ne veut pas dire que vous ne pouvez pas faire votre travail. Il s’agit simplement de fournir une assurance qualité de sorte que chaque version soit meilleure que la précédente.
  • Maintenant, corrigez-les. Ecrivez des tests unitaires pour reproduire le problème afin de savoir quand vous le faites fonctionner. Plus important encore, vous saurez si quelque chose que vous avez fait à un autre endroit l'a brisé à nouveau. Refactoriser pour que le code fonctionne mieux.

Une fois que la publication du correctif de bogue critique est terminée, il est temps de planifier la prochaine. Toutes les fonctionnalités et les correctifs de bogues doivent être hiérarchisés et les versions doivent être planifiées autour d'un sous-ensemble de la charge de travail en attente. Vous constaterez que lorsque vous apportez un peu de raison à votre vie professionnelle, votre niveau de stress diminuera considérablement, votre qualité augmentera considérablement et vous serez globalement plus efficace.

Berin Loritsch
la source
6

Vous semblez souffrir de ce que je considère être un cas de fausse économie , et plus vous adhérez longtemps à ces choses qui ne fonctionnent pas, plus votre problème s'aggravera.

Quelques indicateurs clés:

  • Ce qui semble être un calendrier irréaliste.
    • J'assume une mauvaise compréhension des pratiques de développement saines de la part de la direction.
    • Je présume un manque de compréhension ou de soutien de la part de la direction.
  • Travailler 12 heures par jour.
  • Haut niveau de stress.
  • Manque de sommeil.
  • Anxiété.
  • Mauvaise attention à la conception et à la qualité du code.
  • Un manque d'un filet de sécurité de tests unitaires.

Je veux savoir s'il est possible d'écrire du code qui fonctionne quand le projet a un calendrier très serré?

La reponse courte est oui. La réponse longue est que c'est complexe et qu'il faudra un changement radical de perception de la part de la direction et peut-être aussi du client, ainsi qu'un effort herculéen de votre part ... mais j'y reviendrai dans un instant.

Comment puis-je écrire un meilleur code dans le même laps de temps?

De manière réaliste, vous ne pouvez pas si votre hypothèse est que vous pouvez faire tout ce qui vous fera gagner du temps et toujours obtenir un résultat parfait. Vous devez appliquer des techniques qui augmenteront le temps nécessaire à l’implémentation de votre code, car il vous faudra du temps pour vous concentrer sur la précision des détails. Cela prend du temps et c’est ici que vos fausses économies vous font le plus mal. Cependant, en améliorant les choses, vous améliorez la qualité de votre code, ce qui, à son tour, réduira la fragilité de votre système. Encore une fois, je vais expliquer ceci plus bas.

Comment puis-je me vider l'esprit et ne pas m'inquiéter du travail quand je m'endors?

L'anxiété provoque un manque de sommeil et perdre du sommeil crée de l'anxiété. Il s’agit d’un cercle vicieux s’il en existait un et, s’il n’est pas maîtrisé, il risque de conduire au jumeau diabolique de l’anxiété, la Dépression . La perte chronique de sommeil, qui, je suppose, est probablement associée à un manque d'exercice et à de mauvaises habitudes nutritionnelles, tout cela peut entraîner une fatigue chronique . Tout cela est symptomatique de tous les problèmes auxquels vous êtes confrontés sur votre lieu de travail et des problèmes qui en résultent, vous êtes susceptible de faire face dans votre vie à la maison. C’est là que se trouve la plus grande preuve de fausse économie et c’est probablement le problème le plus grave à traiter en premier.

J'apprécie également toutes les suggestions.

Je devrais d’abord préciser que je ne suis pas un professionnel de la santé, mais vous devriez demander conseil à votre médecin avant de prendre des mesures. Je noterai toutefois que j'ai vécu les expériences que vous décrivez dans votre message et que je sais à quel point il est difficile de faire face et à quel point il est important d'agir. J'ai vécu la dépression, l'anxiété, la fatigue chronique, le stress et tous les autres petits méchants qui les accompagnent. Je vais donc vous donner quelques conseils basés sur ces expériences:

  • Consultez votre médecin et discutez de vos symptômes. Dites au médecin si vous êtes fatigué, si vous vous sentez déprimé ou inquiet la plupart du temps, si vous avez souvent le rhume et la grippe et comment vous vous êtes senti physiquement. Si votre médecin le permet, on vous proposera probablement des médicaments contre l'anxiété, voire même la dépression. Même si vous êtes réticent, laissez l'orgueil à la porte et prenez-le tel que prescrit. Ils vous aident vraiment et vous permettent de trouver la force de faire face à tout ce qui est à venir.
  • Recherchez un bon psychologue pour discuter de votre problème tel que vous le connaissez et qui peut vous aider à explorer ce que vous ressentez à ce sujet et à élaborer des stratégies pour le résoudre. Une partie de ce que l'on vous demande de faire peut sembler inutile ou un peu fade. Faites-le quand même, car encore une fois, cela aide vraiment, en particulier de vous apprendre spécifiquement à vider votre esprit.
  • Évitez les somnifères sauf si vous en avez vraiment besoin, car vous pourriez en devenir dépendant et aggraver vos problèmes de sommeil. Personnellement, je ne les prends que lorsque je suis incapable de trouver le sommeil dont j'ai besoin après un week-end, et c'est généralement quand j'ai eu un week-end paresseux et insatisfait.
  • Envisagez de changer votre régime alimentaire. Sérieusement couper la caféine, car elle contribue seulement à un niveau d'anxiété élevé. Réduisez vos glucides et équilibrez votre régime alimentaire. Par là, je veux dire manger davantage de fruits et de légumes naturels, réduire la quantité de viande rouge que vous consommez et réduire la consommation de graisses et d'huiles. Découpez les boissons non alcoolisées et limitez-vous à une seule tasse de café par jour s'il vous est impossible d'abandonner. L'alimentation est essentielle pour vous aider à lutter contre la fatigue. Aussi, mangez votre dernier repas plus tôt afin de ne pas vous coucher le ventre plein.
  • Faites de l'exercice tous les jours. Obtenez une séance d’entraînement intense au moins une fois par semaine et marchez ou faites du vélo pendant au moins 30 minutes chaque jour jusqu’au point de sueur au moins. Cela aidera à vous fatiguer physiquement, ce qui vous aidera avec votre sommeil et votre fatigue.
  • Changez vos habitudes de sommeil. Veillez à vous lever tôt pour le travail. Vous devez donc vous coucher plus tôt que vous ne le souhaitez. Si vous ne pouvez pas dormir, reposez-vous dans une pièce sombre et lisez quelque chose d'ennuyeux. Ne vous inquiétez pas si vous ne pouvez pas vous endormir immédiatement.

Maintenant que j'ai passé en revue tous les aspects liés à la médecine, voyons ce que vous pouvez faire avec votre travail:

  • Quelqu'un a suggéré d'utiliser la technique Pomadoro. Ceci est également connu comme la boxe de temps, et je pense que c'est une bonne idée. Vous vous concentrez intensément pendant 20 à 25 minutes, puis vous prenez une petite pause. Je vous suggère de vous lever et de vous déplacer pendant environ 3 à 5 minutes et de regarder au loin pour vous reposer les yeux. Essayez de ne pas penser à vos tâches pendant ce temps. Prenez un verre, allez dans la salle de bain ou déplacez-vous simplement dans votre bureau pendant une courte période.
  • En fonction de votre relation avec votre patron, trouvez un moyen de vous rencontrer et discutez de vos préoccupations concernant l'impact de l'horaire de travail sur votre santé. Dites-lui que vous ne voulez pas risquer de laisser tomber le client de l'entreprise et que vous souhaitez essayer de développer une stratégie qui vous permet de continuer à faire votre travail, mais que cela signifie que vous avez besoin prendre le temps de régler vos problèmes de santé. Utilisez-le en dernier recours, car il serait préférable d'expliquer les fausses économies en jeu, telles que:
    • Les travailleurs fatigués se retrouvent avec une efficacité considérablement réduite, alors que les travailleurs non fatigués ont la capacité de faire plus dans un laps de temps plus court, et j'essaierais de vous fournir des chiffres et des études que vous pouvez utiliser pour vous aider. Avec un bon patron, vous ne devriez même pas avoir besoin de ça. Les articles suivants peuvent vous être utiles: article 1 , article 2 , article 3
    • Ignorer les tests et prêter attention à certains des petits détails vous coûte plus tard. Examinez le concept de dette technique comme point de départ.
  • Essayez de réduire votre temps de travail à 8 à 9 heures par jour.
  • Réservez une période de vacances et évadez-vous un moment dans un endroit calme. Même si vous ne faites que conduire votre voiture dans les bois et camper pendant une semaine. Sérieusement, ne faites rien pendant un moment pour recharger vos batteries.

En termes de programmation actuelle:

  • Lisez les livres Clean Code et Refactoring et prenez le temps d’appliquer les techniques qu’il contient. Cela vous aidera à résoudre le problème de la qualité du code. Comme je l'ai mentionné précédemment, cela semblera prendre plus de temps, mais vous passerez moins de temps à régler les problèmes et les problèmes résultant de la façon dont vous avez déjà travaillé.
  • Trouvez des outils que vous pouvez intégrer à votre environnement de développement afin de vous aider dans vos efforts pour améliorer la qualité du code. Par exemple, si vous développez dans Visual Studio, l’utilisation combinée d’outils tels que Resharper et NCrunch peut contribuer à augmenter considérablement votre efficacité globale si vous les utilisez religieusement et si vous appliquez déjà les bonnes techniques décrites dans les ouvrages que j’ai mentionnés. .
  • Rédigez des tests unitaires et utilisez une approche test d’abord. Cela semblera vous ralentir le plus, mais vous accélérerez votre développement lorsque vous aurez des tests, car ils peuvent contribuer à réduire le temps de débogage et vous donner la confiance nécessaire pour modifier le code testé. Ecrivez vos tests pour satisfaire les exigences et non pour satisfaire le code. Cela concentrera vos efforts de test de manière constructive, ce qui réduira au minimum le temps consacré aux tests.

Le plus important de tous, vous devez gérer les attentes, en commençant par les vôtres. Vous n'êtes qu'humain et vous ne pouvez en faire autant à un moment donné. Vous devez gérer les attentes de votre supérieur hiérarchique et demander à votre supérieur hiérarchique de gérer vous-même directement les attentes de vos clients. Cela signifie sérieusement donner la priorité au travail que vous faites. Allouez du temps pour les nouvelles fonctionnalités et du temps pour les bogues, et présumez que vos échéances vont s'écouler. Lorsque vous traitez avec la possibilité de ne pas respecter les dates de livraison, ne promettez que de fournir un ensemble de fonctionnalités essentielles et laissez le reste de la fonctionnalité aussi "agréable à avoir si possible". Prochaine date de livraison, vous suivez à nouveau ce processus, en augmentant les priorités de la livraison précédente "sympa à avoir", etc. Intégrez cela dans votre méthodologie de développement comme point de départ minimum, et ensuite, après quelques livraisons, passez en revue afin d’améliorer l’efficacité de vos processus. Les changements apportés à votre style de vie sont les plus efficaces. Toutefois, vous pouvez toujours rationaliser votre travail, par exemple, réduire les frais généraux liés à la documentation et à la communication entre vous et les utilisateurs finaux.

Soyez proactif dans tout cela. Montrez à votre patron que vous pouvez tous deux travailler ensemble pour améliorer réellement les choses, ce qui finira par bien se refléter sur vous et sur l’entreprise dans son ensemble.

Aussi, ne prenez pas de décisions drastiques maintenant. Attendez d'avoir traité votre santé et votre charge de travail et voyez comment vous allez pendant un moment. Lorsque votre esprit deviendra plus clair et que vous sentirez que vous êtes dans un meilleur endroit, vous aurez le temps de décider s'il vaut la peine de rester ou s'il est temps de passer à autre chose. Ce que je veux dire, en gros, c'est de régler un problème à la fois et de laisser les autres faire un peu de ragoût jusqu'à ce qu'ils aient besoin de votre attention.

S.Robins
la source
4

Si votre emploi du temps est serré, vous devez être compulsif avec Ne vous répétez pas . Identifiez les méthodes les plus utilisées et assurez-vous qu'elles sont fortement réutilisées.

Planifiez ce sur quoi vous allez travailler aujourd'hui, écrivez-le et respectez-le. Essayez de limiter ce que vous devez vous rappeler en tout temps à sept ou moins d’éléments.

Je ferais un pas de plus et éviterais de répéter le travail des autres. Utilisez les bibliothèques du langage autant que possible. Utilisez des bibliothèques tierces si possible.

Il peut sembler que cela prend plus de temps pour écrire mais viser des méthodes qui ne font qu'une chose. Je limite une méthode à prendre des décisions ou à faire des choses. La cohésion de votre code devrait augmenter tandis que le couplage diminue. Vous devriez trouver que le test est plus facile. Cela se prête bien à la décomposition progressive.

Simplifier autant que possible. Utilisez des modèles, des listes de contrôle et toutes les techniques vous permettant d’éviter de penser à des futilités.

Vous devrez éviter les interruptions. Chaque interruption vous coûtera environ 15 minutes. Protégez votre temps.

Si c'est à long terme, rentrez chez vous lorsque votre performance commence à être à la traîne. Si vous travaillez constamment 12 heures par jour, votre performance indiquera probablement ce que vous obtiendrez en travaillant 8 heures par jour. Vous ne remarquerez peut-être pas à quel point votre performance est dégradée. Prenez quatre heures de plus pour faire de l'exercice et vous reposer. Voyez si vous pouvez faire une sieste à la mi-journée ou prendre quelques heures de repos après le déjeuner.

BillThor
la source
4

Si j'étais vous, je parlerais à mon responsable et je lui expliquerais que les délais qu'ils fixent sont irréalistes. Si vous continuez à travailler comme cela, ils penseront que tout va bien, ils ne seront pas au courant des problèmes que vous rencontrez et vous finirez par ajouter chaque jour de plus en plus de code mal écrit à votre système, ce qui compliquera votre travail encore plus loin.

Au lieu de cela, vous pouvez toujours changer d'emploi :-)


la source
2

Suivre tout ce que vous faites

Prenez le temps de suivre tout ce que vous faites et combien de temps vous et votre équipe y consacrez. Cela finira par être ce que vous apportez à la direction pour lui montrer que vous devez faire les choses différemment. Si vous ne possédez pas les faits difficiles sur ce que vous faites et le temps que vous passez à régler les problèmes signalés par d'autres, il sera beaucoup plus difficile de les convaincre de la nécessité d'apporter des modifications. Tout le monde doit suivre chaque heure pour que cela soit exact. Cela doit être utilisé pour dire que vous avez passé 80 heures au cours des 3 dernières semaines à réparer un système qui aurait pu être reconstruit à partir de la base dans le même temps.

Essayer de changer les choses

Utilisez le suivi que vous avez rassemblé et les excellentes suggestions faites par d’autres pour élaborer un plan d’amélioration du logiciel. Choisissez les parties du logiciel qui posent le plus de problèmes. Mettez en place le plan qui, selon vous, permettra de faire avancer les choses à un rythme normal. Donnez-lui le temps de travailler.

Préparez-vous au fait qu'il est peut-être temps de partir

Si la direction n'est pas disposée à changer les choses et à travailler avec vous, il est peut-être temps de penser à passer à autre chose. Je suis d'accord avec les autres que vous êtes en train de vous épuiser. Commencez à préparer votre CV et votre portfolio. Les choses peuvent s'améliorer et vous n'aurez pas à passer à autre chose, mais si la direction n'accepte pas d'apporter des modifications, passez à autre chose. Votre santé mentale et physique est plus importante que de conserver un travail qui vous enlève tellement.

Amy Patterson
la source
Je ne suis pas d'accord avec la partie "Tout suivre", car si ces données sont transmises à la direction, elle pourrait très bien critiquer la moindre imperfection dans la façon dont l'employé gère son temps. Cela aggravera le stress de l'employé.
Acumenus
2

Pour l'amour de Dieu, où est votre chef de projet?

Si vous n'avez pas de chef de projet pour vous aider à établir du temps productif, vous en avez besoin d'un. Vous avez besoin d'une personne dédiée à respecter votre temps de développement, à limiter le fluage de la portée, à gérer les attentes, etc.

Vous faites un travail créatif pour gagner votre vie. Si vous n'avez pas de barrière entre vos clients / utilisateurs et vous, comment pouvez-vous vous concentrer efficacement sur votre développement?

Un bon PM peut être bon pour beaucoup de choses ...

1. Pour jouer à la carte "Puissance supérieure":

Vos utilisateurs vous bogue pour de nouvelles fonctionnalités, mais vous avez vraiment besoin de temps pour vous concentrer sur une version de correction de bugs. Qui a dit que vous deviez parler aux utilisateurs? Est-ce votre responsabilité de rédiger les contrats? Est-ce votre travail de gérer les attentes des clients? Avez-vous le pouvoir de décision final pour dicter les termes du contrat?

Non? Alors pourquoi êtes-vous l'unique responsable de l'interaction avec le client? Le développement est difficile et demande beaucoup de concentration. Vous avez besoin de la capacité de récupérer du temps de développement et vous pouvez le faire avec un bon PM et une bonne excuse.

Indépendamment de ce que votre PM fait par rapport à vous, si les clients commencent à vous importuner au sujet de modifications en dehors des spécifications, dites-le simplement.

"Négocier des modifications non conformes aux spécifications dépasse mon niveau de rémunération ..."

C'est une façon polie de dire, je ne donne pas comme ***.

Suivez cela en faisant passer le "Scope Creep Dog" sur eux.

"Si vous voulez apporter des modifications aux spécifications, vous devrez contacter mon PM"

Maintenant laissez-moi tranquille. La capacité d'un utilisateur à interagir directement avec les développeurs est autorisée en tant que privilège pouvant être retiré. Si ce n'est pas le cas, votre gestion vous manque.

2. Gérer les attentes 101

Qui, dans son esprit, pense que vous pouvez travailler sur un horaire aussi fou et gérer un support technique 24/7. Vous avez besoin de quelqu'un pour vous défendre, car votre temps est précieux et devrait être consacré à votre métier.

Cela s'applique aux clients et à l'entreprise pour laquelle vous travaillez. Pour les clients, s'ils dépassent les limites, vous pouvez toujours demander ...

"Ce service est-il écrit dans le contrat?"

Si ce n'est pas le cas, vous avez alors le droit de rejeter les demandes. Ne vous méprenez pas, il est agréable d'aller au-delà pour rendre vos clients heureux, mais il est tout aussi important de leur faire savoir la différence entre ce qui est attendu et ce que vous leur donnez comme faveur.

Pour l'entreprise pour laquelle vous travaillez, vous avez besoin de quelqu'un qui porte le message ...

"Est-ce que le travail qu'on me demande de faire est égal à mon niveau de salaire?"

C'est-à-dire qu'ils vous paient 60 000 $ par an pour passer 50% de votre temps à l'assistance téléphonique, ce qui est une position beaucoup moins rémunérée. C'est un sujet dangereux à aborder et vous avez donc besoin d'un Premier ministre en qui vous pouvez avoir confiance pour vous défendre. L'argument que vous devriez lui présenter est ...

"Je suis payé 60 000 $ par an, mais la moitié de ma productivité potentielle est gaspillée en travail subalterne."

Ou bien, vous m'avez engagé et perdez volontiers de l'argent sur cet investissement en me faisant passer la moitié de mon temps à occuper un poste subalterne. Croyez-le ou non, en maximisant votre potentiel, ils peuvent gagner plus d'argent à long terme.

Dans le monde des affaires, il est bien plus facile de faire changer de position si on peut présenter une situation gagnant-gagnant. Vous n'êtes pas obligé d'être un maître de la négociation pour que celui-ci s'en colle. Bien sûr, si les ressources de l'entreprise sont limitées, cela peut se retourner contre vous.

3. Tout le monde pourrait parfois utiliser une pom-pom girl

Un bon Premier ministre sera naturellement une personne humaine. Les relations interpersonnelles sont au cœur de leurs activités. Un bon PM aura la possibilité de dire à votre client ce qu'il ne veut pas entendre et de le laisser partir heureux.

Ils peuvent également être une excellente source de soutien moral lorsque les temps sont durs. Un simple coup de pouce moral ne devrait pas être trop difficile à gérer pour un bon PM si vous le lui demandez. Vous avez besoin de quelqu'un de votre côté, sinon votre moral baisse et le travail semble accablant.


Si aucune personne de haut niveau dans l'organisation n'est chargée de gérer les attentes, votre gestion échoue et les supérieurs ne sont probablement même pas au courant de la gravité du projet.

C'est la principale raison pour laquelle j'évite de travailler pour des sociétés comme la peste. J'ai eu la chance de travailler pour de petites entreprises où j'ai quelqu'un de plus haut placé. Je peux honnêtement discuter des problèmes avec qui gardera ce que j'ai à dire en toute confiance et agir si nécessaire.

Vous avez besoin de quelqu'un de votre côté pour vous aider à rester en phase avec les besoins de votre entreprise et à gérer les distractions. Si vous ne l'avez pas et qu'il n'y a aucun espoir de le trouver à l'avenir, bonne chance ...

Evan Plaice
la source
1

Waouh Waouh Waouh ! Tenez vos chevaux cow-boy!. Vous semblez avoir un développement tout faux là-bas. Certains principes fondamentaux du logiciel sont manquants ici lors du codage. Ouais, revoyez vos bases ... la vie sera beaucoup plus facile.

La rentrée scolaire maintenant

  1. Programmes de développement rapide de logiciels de matriçage *
  2. Mois mythique *

*Doit lire

Imran Omar Bukhsh
la source
2
prochaine question - comment coder et réussir à lire des livres dans des délais serrés :-D
Ventsyslav Raikov
1
@Bond - mec, nous aurions déjà dû lire ces livres avant de commencer le projet. Sinon, nous devons comprendre que l’apprentissage continu fait partie de notre développement logiciel. Nous ne devrions pas penser que la lecture ne fait pas partie de notre travail quotidien. Nous devrions déjà avoir lu pendant un certain temps tous les jours. Je pense que c’est le droit d’un développeur de logiciel de passer une partie de son temps à lire, même pendant les heures de bureau. J'ai personnellement vu que même lire seulement 5 pages par jour avait un impact énorme. Commencer à lire maintenant vous aidera à gagner du temps dans votre prochain projet.
Imran Omar Bukhsh
absolument d'accord avec vous mec, je lis chaque jour. Mais je ne travaille pas (ce qui, je suppose, signifie code dans la question ci-dessus) 12 heures par jour. Si je le faisais, je ne lirais certainement aucun livre. Il y a plus dans la vie que le travail.
Ventsyslav Raikov
@Bond - vrai, mais il ne restera plus beaucoup de vie si nous ne travaillons pas correctement. Dans mon entreprise, je travaille 5 heures par jour. Nous avons fabriqué un moteur rampant en environ un an et demi. Nous avons plus d'un million de visiteurs par mois.
Imran Omar Bukhsh
1

J'aime faire une liste TODO, la trier par ordre de nécessité et m'en tenir à cet ordre sans condition - même si j'ai envie de remettre à plus tard certaines tâches.

Vous seriez surpris de voir combien de temps vous pouvez économiser simplement en réduisant le temps que vous passez à vous demander quoi travailler ensuite.

Rei Miyasaka
la source
1

En ce moment, ce que vous pouvez faire est de

  • Jumeler avec un collègue
  • Tout code que vous écrivez ou modifiez, vous devez accepter d'être assez bon. De préférence en tant que programmation en paire, n'effectuez une évaluation par les pairs que si vous ne pouvez pas coupler un programme.
  • ne vous en écartez pas!

Cela signifie qu'au moins ce que vous faites désormais a été approuvé par DEUX personnes qui espèrent améliorer ces éléments de code.

Ce qui peut encore être fait dépend de la direction. Vous voudrez peut-être leur montrer cette question avec les réponses!


la source
Je suis fortement en désaccord avec la programmation en binôme. Ce n'est pas ainsi que travaillent les penseurs indépendants ou les esprits créatifs. En outre, il ne remplace jamais un examen par une équipe.
Acumenus
1

Interdire les appels téléphoniques et implémenter une règle stricte "les bugs ne vont que dans le suivi des bogues" Ensuite, votre premier geste de la journée consiste à trier les nouveaux bogues saisis, à nettoyer les dupes, à hiérarchiser les priorités et à commencer à travailler sur les correctifs de bogues EN PREMIER. Et assurez-vous que vos corrections de bogues résolvent réellement le bogue et n'introduisent pas de nouveaux bogues.

Comment faites-vous cette dernière partie? En intégrant des cas de test sur votre code existant. Si vous avez des fonctions, vérifiez qu'elles entrent et sortent ce que vous attendez, et qu'elles échouent bien si vous leur donnez du courrier indésirable. Utilisez une sorte de test d'interface utilisateur automatisé pour tester l'intégration et les performances de bout en bout.

Tu ne sors pas vraiment du lit à 3h du matin pour résoudre des problèmes de code, n'est-ce pas? Si oui, vous méritez tout ce que vous obtenez.

Dan Ray
la source
0

Vous et les développeurs comme vous êtes la seule raison pour laquelle je peux penser à exiger une licence de développement de logiciel, comme les médecins et les avocats. De cette façon, votre licence peut être révoquée si vous ne respectez pas les bonnes pratiques minimales en matière de programmation de base. Cela protégerait non seulement l'industrie des incompétents, mais également les programmeurs compétents des gestionnaires qui insistent pour que leurs programmeurs ne suivent pas les bonnes pratiques.

Pour votre information, pratiquement tout le monde travaille dans des délais serrés. Cependant, les développeurs qui savent ce qu'ils font suivent les meilleures pratiques, car le travail est fait plus rapidement à long terme. Ensuite, ils ne doivent pas travailler 12 heures par jour pendant trois années consécutives.

Tremper
la source