Je travaille sur un projet qui a un horaire très serré. Je n'ai pas beaucoup de temps pour coder et tester (même si je travaille plus de 12 heures de tous les jours, il est toujours 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 nos clients, située dans de nombreux pays. Je reçois régulièrement des appels téléphoniques à minuit sur les erreurs de notre utilisateur/testeur ou sur eux ne sachant pas comment utiliser certaines fonctionnalités.
Après trois ans sur ce projet, je me sens très stressé et je ne peux pas bien dormir parce que je suis très inquiet des erreurs et des appels téléphoniques.
J'ai quelques questions:
Si vos utilisateurs sont à travers le monde, ils ne peuvent sûrement pas s'attendre à ce que vous prenez un téléphone quand il est 4 heures du matin et vous êtes au lit. J'achèterais les appels téléphoniques et passerais à d'autres moyens de communication qui peuvent mieux servir ce scénario (courrier électronique ou suivi de suivi de la DB). Mais même au bureau, effectuez un programme d'accessibilité au téléphone programmé. Sinon, vous ne pouvez rien faire pendant le temps que vous êtes au bureau.
Cela vous fera votre sommeil de valeur et vous reposera.
Si ce projet a été serré pendant trois ans, quelqu'un doit avoir soupçonné quelque chose que les choses ne fonctionnent pas vraiment. Peut-être que c'est une fois que quelqu'un raconte que quelqu'un raconte les planificateurs quelque chose et surtout vos utilisateurs/client et vos gestionnaires qu'il s'agit d'un projet de mort-mars. Cela a été en développement depuis trois ans, il est retardé et il est plein de bugs. Le plan devrait être complètement réévalué, le code existant doit être refacturé et de nouvelles fonctionnalités ne doivent pas être développées tant que de nombreux problèmes sont résolus.
Établissez une méthodologie de développement qui rendra les choses prévisibles et supportables pour vous. Si vous êtes un développeur, servez des appels téléphoniques tels qu'ils viennent ne vous permettent aucun travail. Chaque interruption vous emmène 15 minutes pour revenir à l'endroit où vous vous êtes arrêté. Les appels téléphoniques doivent être OFF. Au moins sur votre bureau parce que vous êtes un développeur. Si vous pouvez rediriger des appels téléphoniques vers quelqu'un d'autre qui ne vous dérangera pas après chaque appel que le faire.
Établissez une sorte de base de données incidente/bugs. Prenez le temps tous les matins lorsque vous vous rendez au travail et donnez la priorité à de nouveaux incidents (vous-même, votre équipe ou avec votre client/gérant). Essayez de les résoudre dans cette commande de priorité après des mots et n'essayez même pas de penser aux appels téléphoniques.
Et si vous ne pouvez pas éteindre votre téléphone et que vous ne pouvez pas dire à vos utilisateurs, ils ne peuvent pas vous appeler à tout moment? Si vous avez le numéro de téléphone de votre utilisateur, je vous suggère de faire le contraire: quand ils vous appellent, commencez-les et informez-les des rappelez-les quand il est résolu. Puis appelez-les quand ils dorment. S'ils vous disent qu'ils sont en train de dormir, souvenez-vous de leur réponse et utilisez-le quand ils vous appellent au milieu de la nuit la prochaine fois. Les gens comprennent généralement leur propre langue mieux.
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 dehors des heures de travail et ils peuvent, alors commencez à éteindre votre téléphone portable après avoir quitté le bureau. Vous avez été là pendant 12 heures et vous méritez pour sortir du travail. Si le téléphone mobile est votre personnal, votre entreprise devrait vous en obtenir un nouveau et vous devez informer vos utilisateurs/clients. S'ils commencent ensuite à vous appeler sur votre personnelle (car ils ne peuvent pas vous joindre à votre entreprise, vous non plus:
Ne développez aucune nouvelle fonctionnalité avant de résoudre les problèmes existants. Au moins élevé et moyen de priorité.
Sauf si vous êtes la seule personne de l'équipe - auquel cas, vous êtes probablement plus de mi-cheminement sur la route de l'épuisement professionnel - à tour de rôle avec "le pager". Cela devrait alléger la charge pour l'instant.
Ensuite, vous devez lancer à la direction qu'ils doivent planifier une phase pour rembourser la dette technique - cela signifie des tests, le nettoyage de code, le refactoring. Et il doit être programmé bientôt. Généralement, cela signifie que pendant un moment il y a aucun nouveau code qui n'est pas un refactoring ou un test. Sinon, ça va aller pire.
Une fois dans cette phase, vous choisissez les sections les plus gênantes du codeBase, le refacteur, le nettoyez-la et écrivez des tests pour tester la merde. Une fois que les appels s'arrêtent, ou peuvent être traités sans que les devs 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 un nouveau code et continuez à courir les régressions. En ce moment, le logiciel ressemble à celui sur le chemin d'une nouvelle écriture.
Points de vente pour votre conversation avec votre patron:
Soyons honnêtes cependant. Jusqu'à présent, votre entreprise n'a pas pensé que c'était un problème assez important pour faire quelque chose à propos de; Vous allez brûler. On dirait que personne dans la direction n'a d'expérience de développement réelle. Commencer à regarder.
Bien qu'il puisse y avoir des techniques qui vous permettront d'atteindre de petits gains de productivité, une augmentation de 5% de la production de travail est pire que inutile pour vous maintenant. La vraie compétence que vous manquez ici est simple et fondamentale:
apprendre à dire non
Dites non à toutes les attentes déraisonnables que vous savez déjà que vous devriez vous refuser. Vous savez ce qu'ils sont. Cela est évident. Si vous ne pouvez pas dire non maintenant, trouvez un emploi où vous pouvez. Les employeurs intelligents trouveront cette compétence souhaitable.
Commencez par comprendre que votre projet est 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 par jour d'effort et être capable de produire du code utile. Vous arriverez à un point où vous créez des erreurs stupides et perdez réellement des progrès, car vous devez commencer chaque journée à fixer ce que vous avez fait la veille. On dirait que vous êtes déjà là.
Il y a deux problèmes majeurs à traiter avant que vous puissiez avoir de la manité à nouveau:
Afin de résoudre votre situation, vous avez besoin d'un buy-in de gestion. Le problème est qu'ils ne ressentent pas la douleur et vous ne voulez pas vous retrouver à l'hôpital avec un accident vasculaire cérébral pour attirer leur attention. La première étape consiste à expliquer à votre gestion où vous êtes, et la pression que vous avez sous. S'ils ne l'obtiennent pas, montez un autre niveau de gestion. Ou éventuellement décrire vos conditions de travail au département des ressources humaines. Vous obligeant à travailler plus de 8 heures par jour pendant de longues périodes mai être une violation de la loi et le département des ressources humaines saura sûrement.
En supposant que la direction entend votre plaidoyer, vous souhaitez prendre les actions suivantes:
Une fois que vous avez cette sortie critique du correctif de bugs, il est temps de plan le prochain. Toutes les fonctionnalités et les correctifs de bugs doivent être hiérarchisés et les communiqués doivent être planifiés autour d'un sous-ensemble de la charge de travail en attente. Vous constaterez que lorsque vous apportez une certaine mentale dans votre vie professionnelle, votre niveau de stress ira bien, votre qualité ira bien, et vous serez globalement plus efficace.
Vous semblez souffrir de ce que je considère comme un cas de fausse économie, et plus vous adhérez à ces choses Cela ne fonctionne pas, le pire que votre problème obtiendra.
Quelques indicateurs clés:
Je veux savoir si c'est que cela est réalisable d'écrire du code qui fonctionne lorsque le projet a un horaire très serré?
La reponse courte est oui. La longue réponse est complexe et nécessitera un changement massif de perceptions pour le compte de la direction et éventuellement du client également, et un effort herculéen de votre part ... mais je reviendrai à tout cela dans un instant.
Comment puis-je écrire un meilleur code dans le même 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 que vous obtiendrez toujours un résultat parfait. Vous devez appliquer des techniques qui augmenteront le temps nécessaire pour mettre en œuvre votre code, car vous auriez besoin de prendre du temps pour vous concentrer sur le droit de détail. Cela prend du temps et c'est ici où vos fausses économies vous font le plus mal. Cependant, en faisant des choses de meilleure manière, vous améliorez la qualité de votre code et cela entraînera à son tour de réduire la fragilité de votre système. Encore une fois, je vais expliquer cela plus loin.
Comment puis-je nettoyer mon esprit et ne vous inquiétez pas du travail quand je vais dormir?
L'anxiété provoque un manque de sommeil et perdre le sommeil crée une anxiété. C'est un cercle vicieux s'il y en avait un, et si ce n'est pas coché, conduira probablement à la jumeau diabolique de l'anxiété, dépression. Une perte chronique de sommeil, que je suppose est probablement combinée à un manque d'exercice et probablement de mauvaises habitudes nutritionnelles, tout risque d'entraîner fatigue chronique. Tout cela est symptomatique de tous les problèmes rencontrés sur votre lieu de travail et les problèmes qui en résultent sont susceptibles d'être confrontés à votre vie personnelle. C'est là que la plus grande preuve de fausses économies réside, et c'est probablement le problème le plus grave que vous devez faire face au premier.
Je souhaite également la bienvenue des suggestions.
Je devrais d'abord indiquer que je ne suis pas un professionnel de la santé, vous devriez vraiment demander conseil à votre médecin avant d'agir sur n'importe quoi. Je noterai cependant que j'ai vécu dans les expériences que vous avez décrites dans votre publication, et je sais à quel point il est difficile de traiter et de la manière dont il est important de faire quelque chose à ce sujet. J'ai vécu la dépression, l'anxiété, la fatigue chronique, les stress et tous les autres petits nasties qui les accompagnent, alors je vous proposerai des conseils basés sur ces expériences:
Maintenant que j'ai parcouru tous les éléments médicalement liés, regardons à ce que vous pouvez faire de votre travail:
En termes de matériel de programmation réelle:
Plus important de tous, vous devez gérer les attentes, en commençant par votre propre. Vous n'êtes que humain et ne peut faire que beaucoup à tout moment. Vous devez gérer les attentes de votre patron et avoir votre patron 9or vous-même directement) gérer les attentes de vos clients. Cela signifie sérieusement hiérarchiser le travail que vous faites. Allouez le temps pour de nouvelles fonctionnalités et du temps pour les bogues et supposez que vos délais glisseront. Lorsqu'il s'agit de la possibilité de glisser des dates de livraison, promettez uniquement de fournir un ensemble de fonctionnalités critiques et de laisser le reste des fonctionnalités comme "agréable d'avoir si possible". Date de livraison suivante, vous passez à nouveau sur ce processus, augmentant ainsi les priorités de la livraison préalable "Nice à Haves", etc. Construisez-la dans votre méthodologie de développement comme point de départ minimum, puis examinez après quelques livraisons afin de voir où vous pouvez régler vos processus améliorer votre efficacité. Les plus grandes gains d'efficacité proviendront de vos changements de style de vie, mais il y a toujours peu de choses que vous pouvez faire pour rationaliser votre travail, comme réduire les frais généraux relatives à la documentation et à la communication entre vous et les utilisateurs finaux.
Être proactif dans tout cela. Montrez à votre patron que vous pouvez travailler ensemble pour améliorer considérablement les choses, ce qui reflètera finalement bien sur vous et la société.
En outre, ne prenez aucune décision drastique maintenant. Attendez que vous ayez traité votre santé et votre charge de travail et voyez comment vous allez passer un moment. Lorsque votre esprit devient plus claire, et quand vous sentez que vous êtes dans un meilleur endroit, il sera temps de décider si cela vaut la peine de rester ou s'il est temps de passer à autre chose. Ce que je dis essentiellement, c'est de faire face à un problème à la fois et de laisser le reste à ragoûter un peu jusqu'à ce qu'ils ont besoin de votre attention.
Si votre horaire est serré, vous devez être compulsif sur Ne vous répétez pas vous-même . Identifiez les méthodes les plus utilisées et assurez-vous qu'ils sont réutilisés fortement.
Planifiez ce que vous allez travailler aujourd'hui, écrivez-le et respectez-le. Essayez de limiter ce que vous devez vous rappeler à une heure à sept éléments ou moins.
J'irais un pas de plus et éviter de répéter les autres travaux. Utilisez les bibliothèques de la langue 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 font une chose seulement. Je limite une méthode pour prendre des décisions ou faire des choses. La cohésion de votre code devrait augmenter pendant que le couplage diminue. Vous devriez trouver des tests 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 quelles que soient les techniques vous permettant d'éviter de penser à des trivalities.
Vous devrez éviter les interruptions. Chaque interruption vous coûtera environ 15 minutes sur le calendrier. Protégez votre temps.
Si tel est long terme, rendez-vous à la maison lorsque vous trouvez que votre performance commence à décoller. Si vous travaillez constamment 12 heures de 12 heures, votre performance est probablement à propos de ce que vous obtiendriez pendant 8 heures de travail. Vous ne remarquerez peut-être pas à quel point votre performance est dégradée. Prenez les quatre heures supplémentaires pour obtenir de l'exercice et de vous reposer. Voyez si vous pouvez avoir une sieste mi-journée ou prendre quelques heures après le déjeuner.
Si j'étais vous, je parlerais à mon responsable et m'expliquerais que les délais qu'ils établissent sont irréalistes. Si vous continuez à travailler comme ça, ils penseront que tout va bien, ils ne seront pas au courant des problèmes que vous rencontrez et vous finirez par ajouter de plus en plus de code mal écrit à votre système tous les jours, ce qui compliquera encore votre travail encore plus loin.
Comme alternative, vous pouvez toujours passer à un autre travail :-)
Suivez tout ce que vous faites
Prenez le temps de suivre tout ce que vous faites et combien de temps vous et votre équipe passez à votre équipe. Cela finira par être ce que vous apportez à la direction pour leur montrer que vous devez faire les choses différemment. Si vous ne disposez pas des faits froid et dur sur ce que vous faites et combien de temps vous passez la résolution des problèmes qui sont signalés par d'autres, il sera beaucoup plus difficile de les convaincre que les changements doivent être apportés. Chaque heure doit être suivie par tout le monde afin que cela soit précis. Ce doit être utilisé pour dire que vous avez passé 80 heures au cours des 3 dernières semaines de fixation d'un système qui aurait pu être reconstruit à partir du sol dans le même laps de temps.
Essayez de changer de choses
Utilisez le suivi que vous avez rassemblé et les grandes suggestions que d'autres ont apporté pour mettre en place un plan d'amélioration du logiciel. Choisissez les parties du logiciel qui causent le plus de problèmes. Mettez ensemble le plan que vous pensez apportera des choses à un rythme gérable normal. Donnez-lui le temps de travail.
Préparez-vous au fait qu'il peut être temps de partir
Si la direction n'est pas disposée à changer de choses et à travailler avec vous, il peut être temps de penser à continuer. Je suis d'accord avec les autres que vous brûlez. Commencez à préparer votre CV et votre portefeuille. Les choses peuvent s'améliorer et vous n'aurez pas à passer à autre chose, mais si la direction n'ache pas pour apporter des modifications, passez à autre chose. Votre santé mentale et physique est plus importante que de rester dans un travail qui vous prend tellement sur vous.
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. Vous avez besoin d'une personne dédiée à votre temps de développement, à limiter le fluage de portée, à gérer les attentes, etc.
Vous faites un travail créatif pour gagner sa 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. Lire la carte "puissance supérieure" :
Vos utilisateurs vous dérangent pour de nouvelles fonctionnalités, mais vous avez vraiment besoin de temps pour vous concentrer sur une version de bug-correction. Qui a dit que vous deviez parler aux utilisateurs? Est-il de votre responsabilité d'écrire les contrats? Est-ce votre travail de gérer les attentes des clients? Avez-vous le pouvoir de décision final de dicter les termes du contrat?
Non? Alors pourquoi êtes-vous seul responsable d'interagir avec le client? Le développement est difficile et prend beaucoup de concentration. Vous avez besoin de la capacité de récupérer le temps de développement et vous pouvez le faire avec un bon PM et une bonne excuse.
Indépendamment de ce que votre PM vous fait par rapport à vous, si les clients commencent à vous déranger de modifications en dehors de la spécification disent simplement.
"Les changements de négociation en dehors de la spécification sont au-dessus de ma qualité de paiement ..."
C'est une façon polie de dire, je ne donne pas un s ***.
Suivez-les en vous en savourant le "chien du fluage" sur eux.
"Si vous voulez modifier la spécification, vous devez entrer en contact avec mon PM"
Maintenant laissez-moi tranquille. La capacité d'un utilisateur à interagir directement avec les développeurs est autorisée comme un privilège qui peut être enlevé. Si ce n'est pas le cas, votre gestion vous manque.
2. Gestion des attentes 101
Qui dans leur droite pense que vous pouvez travailler un calendrier aussi folle et HANDER 24/7 TECH TECH. Vous avez besoin de quelqu'un pour vous défendre, car votre temps est précieux et doit être dédié à votre métier.
Ceci s'applique aux clients ainsi que la société que vous travaillez. Pour les clients, s'ils dépassent, vous pouvez toujours demander ...
"Ce service est-il écrit dans le contrat?"
Si ce n'est pas le cas, vous avez le droit de rejeter les demandes alors. Ne me trompez pas, c'est bien d'aller au-dessus et au-delà de rendre vos clients heureux, mais il est tout aussi important de leur faire connaître la différence entre ce qui est attendu et ce que vous leur donnez comme une faveur.
Pour la société que vous travaillez, vous avez besoin de quelqu'un pour porter le message ...
"Est-ce que le travail est invité à faire égal à ma qualité de paiement?"
C'est-à-dire que vous payez 60k par an pour dépenser 50% de votre temps à faire du support technique téléphonique qui est une position de paiement beaucoup plus faible. Il s'agit d'un sujet dangereux pour réussir afin que vous ayez besoin d'un PM Vous pouvez faire confiance à vous faire un bon cas pour vous. L'argument que vous devriez faire à lui est ...
"Je suis payé 60k par an, mais la moitié de ma productivité potentielle est gaspillée sur le travail menial."
Ou bien, vous m'avez embauché et perdez volontiers de l'argent sur cet investissement en me faisant passer la moitié de mon temps à remplir une position de qualité inférieure. Croyez-le ou non, en optimisant votre potentiel, ils peuvent gagner plus d'argent à long terme.
En ce qui concerne les affaires, c'est un enfer de beaucoup plus facile d'obtenir la société à changer de position si vous pouvez présenter une situation gagnant-gagnant. Vous n'avez pas besoin d'être un maître de négociation pour celui-ci à coller. Bien sûr, si les ressources de l'entreprise sont limitées, cela peut vous arracher sur vous.
. Tout le monde pourrait parfois utiliser une pom-pom girl parfois
Un bon PM sera naturellement une personne-personne. Le cœur de ce qu'ils font, c'est des relations avec les gens. Un bon PM aura la capacité de dire à votre client Ce qu'ils ne veulent pas entendre et les avoir toujours à pied heureux.
Ils peuvent également être une excellente source de soutien moral lorsque les temps deviennent difficiles. Un zoot de morale simple ne devrait pas être trop pour un bon PM pour gérer si vous demandez. Vous avez besoin de quelqu'un de votre côté, sinon votre moral goutte et le travail se sent accablant.
Si vous n'avez pas de plus en plus de personnes dans l'organisation qui est responsable de la gestion des attentes, votre gestion échoue et les hauts ups ne sont probablement pas sensibilisés à la manière dont le projet fait le problème.
C'est la raison principale que j'évite de travailler pour des sociétés comme la peste. J'ai eu la chance de travailler pour des entreprises plus petites où j'ai une personne plus haute, je peux discuter honnêtement des problèmes avec qui tiendra ce que je dois dire en toute confiance et prendre des mesures si nécessaire.
Vous avez besoin de quelqu'un de votre côté pour vous aider à vous tenir conformément aux exigences de l'entreprise et à gérer les distractions. Si vous n'avez pas cela et qu'il n'y a pas d'espoir de le trouver à l'avenir, bonne chance ...
En ce moment ce que vous pouvez faire est de
Cela signifiera qu'au moins ce que vous faites d'ici a été approuvé par deux personnes, espérons-le, d'améliorer ces bits de code.
Que peut-on faire d'autre dépend de la gestion. Vous voudrez peut-être leur montrer cette question avec les réponses!
Interdiction d'interdiction des appels téléphoniques et met en œuvre un "bugs strict à la règle du suivi des bugs". Ensuite, votre premier déménagement de la journée consiste à enregistrer les bugs nouvellement entrés, à nettoyer les dupes, à la priorité et à vous rendre au travail sur les corrections de bugs. Et assurez-vous que vos corrections de bugs réalisent réellement le bogue et n'introduisez pas de nouveaux bugs.
Comment faites-vous cette dernière partie? En modélisant les cas de test sur votre code existant. Si vous avez des fonctions, testez-les qu'ils entrent et génèrent ce que vous attendez et qu'ils échouent bien si vous leur donnez de la jonque. Utilisez une sorte de test automatisé de l'interface utilisateur pour tester l'intégration et la performance avant-verso.
Vous n'êtes pas en train de sortir du lit à 3h du matin pour résoudre des problèmes de code, êtes-vous? Si oui, vous méritez tout ce que vous obtenez.
Waouh Waouh Waouh ! Tenez vos chevaux cow-boy!. Vous semblez avoir le développement tout faux là-bas. Vous manquez des fondamentaux logiciels ici pendant le codage. Ouais brosse sur tes bases ... La vie sera beaucoup plus facile.
Retour à l'école maintenant
*Doit lire
J'aime faire une liste de TODO, triez-la par ordre de nécessité et coller à cet ordre inconditionnellement - même si j'ai envie de procrastiner des tâches.
Vous seriez surpris de savoir combien de temps vous pouvez sauver simplement en réduisant le temps que vous passez à vous demander quoi travailler sur la suivante.
Essayez d'utiliser la technique Pomodoro . De plus, j'ai règles personnelles Pour savoir si j'écris du bon ou du mauvais code que vous pourriez trouver utile.
Vous et les développeurs comme vous, sont la seule raison pour laquelle je puisse penser à une licence de développement de logiciels, comme les médecins et les avocats. De cette façon, votre licence peut être révoquée pour ne pas suivre les bonnes pratiques de programmation de base minimale. Non seulement cela protégerait-il l'industrie des incompétents, mais il protégera également ces programmeurs compétents de gestionnaires qui insistent sur le fait que leurs programmeurs ne suivent pas de bonnes pratiques.
FYI, pratiquement tout le monde travaille sur une date limite serrée. Toutefois, ces développeurs qui savent ce qu'ils font suivent les meilleures pratiques, car il obtient le travail plus rapide à long terme. Ensuite, ils n'ont pas à travailler 12 heures pendant 3 ans de suite.