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:
- 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é.
- Comment puis-je écrire un meilleur code dans le même laps de temps?
- Comment puis-je me vider l'esprit et ne pas m'inquiéter du travail quand je m'endors?
time-management
Anonyme
la source
la source
Réponses:
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:
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é.
la source
À 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:
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.
la source
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.
la source
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:
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:
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.
la source
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:
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.
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.
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.
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:
Maintenant que j'ai passé en revue tous les aspects liés à la médecine, voyons ce que vous pouvez faire avec votre travail:
En termes de programmation actuelle:
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.
la source
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.
la source
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
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.
la source
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.
C'est une façon polie de dire, je ne donne pas comme ***.
Suivez cela en faisant passer le "Scope Creep Dog" sur eux.
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 ...
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 ...
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 ...
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 ...
la source
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
la source
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.
la source
En ce moment, ce que vous pouvez faire est de
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
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.
la source
Essayez d'utiliser la technique pomodoro . De plus, j'ai 3 règles personnelles pour savoir si j'écris du bon ou du mauvais code que vous pourriez trouver utile.
la source
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.
la source