Gérer la frustration quand les choses ne fonctionnent pas [fermé]

62

Vous avez déjà essayé d'implémenter quelque chose de simple, mais pour une raison étrange, cela ne fonctionne pas.

Vous essayez donc une solution possible mais quelque chose d'autre ne fonctionne pas. Vous continuez à essayer différentes solutions, mais à chaque fois, quelque chose de différent ne fonctionne pas.

Chaque fois que vous vous rapprochez d'un pas, vous obtenez également un (ou plusieurs) pas de plus pour résoudre ce problème et cela fait maintenant 3 heures que cela aurait dû vous prendre 10 minutes. Et ce n'est toujours pas résolu.

Personne dans votre entreprise ne peut vous aider et vous êtes sur le point de passer votre poing à travers votre écran.


À ce stade, vous êtes tellement frustré que vous ne pouvez plus penser clairement au problème. Que devriez-vous faire à ce stade? Ou que pouvez-vous faire pour éviter d'atteindre ce point?

JD Isaacks
la source
3
Je pense que vous et moi venons / avons la même expérience.
AndrewKS
19
Mettez-le sur SO et offrez une prime.
JeffO
4
Si seulement c'était si simple. Certains de ces types de problèmes font partie des nombreuses questions sans réponse / sans réponse / sans réponse.
Aditya P
2
Cette question semble être hors sujet, car elle appartient à lieu de
travail.stackexchange.com
Le même problème de mon et même question.
Anwar

Réponses:

69

Bien que ce soit un problème réel, il n’est pas spécifique à la programmation. Cependant, il est à mon humble avis qu’il mérite une place sur ce forum.

Mes suggestions: faites une pause . Promenez-vous, méditez, dormez, faites de l'activité physique * - faites quelque chose de complètement différent pour permettre à votre cerveau de se détendre et de sortir de l'ornière mentale , tout en laissant votre subconscient régler le problème en paix. Habituellement, les résultats sont étonnamment rapides - il vous suffit de vous en informer. Mais si votre esprit conscient répète désespérément les mêmes cycles de pensées encore et encore, il ne pourra écouter rien d'autre.

que pouvez-vous faire pour éviter d'atteindre ce point?

Les techniques de relaxation et de pleine conscience sont essentielles pour surmonter les réactions de stress et permettent à votre esprit de se concentrer clairement. Et les pratiquer rapporte vraiment. Quand quelqu'un a de l'expérience dans ces domaines, il peut déjà remarquer que le niveau de stress augmente avant que la frustration ne prenne le dessus . Ensuite, on peut interrompre le cycle de pensées, par exemple en prenant quelques respirations profondes ou en pratiquant quelques minutes de relaxation. C'est peut-être tout ce qui est nécessaire à ce stade.

* embrasse ton partenaire, caresse ton animal de compagnie - suggestions de ma femme :-)

Péter Török
la source
12
+1, notre esprit tente TOUJOURS de résoudre des problèmes, simplement parce que nous n'essayons pas consciemment de le résoudre, notre esprit est toujours en train de se désintégrer. C'est pourquoi vous vous souvenez apparemment d'un nom à l'improviste, une heure après ne pas pouvoir le rappeler. Et réveillez-vous avec un problème résolu au milieu de la nuit. Un excellent livre expliquant ceci est la pensée et l'apprentissage pragmatiques: refactor your
wetware
+1 Je ne pourrais pas dire mieux moi-même. En fait, je sors de mon cube, quitte le bureau et me promène en ville, appelle ma femme et retourne au bureau. Fonctionne presque 100% du temps.
M. Ant
9
Et ne travaillez pas plus de 8 heures par jour. Plus vous êtes fatigué, plus vous êtes frustré.
HLGEM
3
Quand je fais une pause pour faire pipi, le problème est souvent résolu au moment où je retourne à mon bureau. C'est comme si votre subconscient attendait que votre conscience se taise.
barrycarter
1
@junxiong, ces techniques peuvent être utilisées même lorsque le temps presse, mais cela nécessite de l'expérience. Une personne qui médite depuis des années, par exemple, peut se contrôler et se calmer en quelques minutes, voire quelques secondes. Mais il est très difficile d’apprendre quelque chose de nouveau - et en particulier de pleine conscience - sous la pression du temps imparti. Si tout échoue, prenez cette leçon comme une leçon importante et une fois l'échéance passée, commencez à vous préparer à la prochaine crise en analysant votre comportement et en appliquant certaines des techniques mentionnées ici ou dans d'autres réponses.
Péter Török
35

sa fait maintenant 3 heures quand cela aurait dû vous prendre 10 minutes.

Le mot magique est devrait . Frappe ça de ton vocabulaire.

Qui a dit que cela devrait prendre 10 minutes? Qui spécifiquement? Quelle était la base factuelle de leur demande?

Si vous l'avez déjà fait 3 fois auparavant, et chaque fois que vous aviez près de 10 minutes, vous avez une base rationnelle pour un devrait .

Si vous ne l'avez jamais fait auparavant, dire devrait, c'est vous préparer à l'échec. Vous devriez arrêter d'utiliser devrait aujourd'hui.

S.Lott
la source
2
Bien sûr, vous avez fait beaucoup de choses un million de fois, puis un jour, cessez de travailler. Un fichier corrompu dans du code généré automatiquement peut être très frustrant, et il est parfois extrêmement difficile à déboguer. Je pense à des moments où j'ai accidentellement nommé deux choses du même nom, puis utilisé un outil de refactoring pour changer toutes les occurrences où le nom est apparu. J'ai fait ce mouvement insensé à quelques reprises avec des classes en conflit avec mes classes générées par ORM. Faites quelque chose comme ça, et vous feriez mieux d’espérer que vous avez été bon avec les check-ins.
Morgan Herlocker
1
@Prof Plum: "J'ai fait plusieurs fois ce mouvement stupide". Excellent point. Cela signifie que l’attente doit inclure du temps pour ce déménagement insensé. Encore une fois, le "devrait" devrait inclure tous les faits, pas les "si tout allait bien", et exclure les faits de "mouvement stupide".
S.Lott
22

Trouvez quelqu'un à utiliser comme caisse de résonance

Même si personne n’a une expertise précise de votre travail, c’est une bonne idée de parler de ces sujets fréquemment. Le simple fait d'utiliser quelqu'un comme caisse de résonance peut faire tourner votre esprit. Vous allez penser à de nouvelles choses à essayer. Cela vous permettra également d’éviter un peu de stress et de vous faire un nouvel ami. En général, il est également sain que l’équipe se sente à l'aise de partager et de se sentir compatissante pour créer une atmosphère d’équipe propice à la résolution de ce type de problèmes.

Doug T.
la source
7
Même si la personne n'a pas la moindre idée de ce que vous lui dites, le simple fait d'en parler aide à clarifier les choses.
Michael Brown
2
@Mike, même si cette "personne" est un ours en peluche, il fonctionne toujours dans un pourcentage étonnamment élevé des cas (il y a une histoire vraie à ce sujet dans le dictionnaire du pirate informatique AFAIR)
Péter Török le
3
@ Mike Brown - voir "
jeudi
1
Caoutchouc Canard Débogage? pfft. Je garde un Debugging Goomba sur mon bureau pour cette raison, les canards sont meilleurs pour la gestion de projet.
Glasnt
Ouais j'allais dire que ... était trop paresseux pour établir le lien: P
Michael Brown
9

Éloignez-vous un moment et faites autre chose. Passez une bonne nuit de sommeil et revenez au problème le matin.

Aussi, ne vous en faites pas. Votre estimation de dix minutes est clairement incorrecte et cela se produit tout le temps.

jete
la source
9

J'ai quelques pas quand j'atteins ce point. Normalement, je peux trouver une solution si je prends le temps de prendre du recul et de réfléchir.

Étape 1: Éloignez-vous du problème et effacez votre esprit. Revenez quand vous n'êtes pas frustré et que vous pouvez le regarder avec un esprit neuf.

Étape 2: Retournez au code et voyez s’il vous manque quelque chose. Demandez à quelqu'un de faire un deuxième regard si vous ne pouvez tout simplement pas en faire la tête ou la queue.

Étape 3: Supprimez le code de l'équation. Quel est le problème que vous essayez de résoudre? Écrivez-le sur un morceau de papier ou un tableau blanc. Discutez du problème avec quelqu'un pour obtenir son opinion sur le problème et sa solution.

Étape 4: Contactez la communauté pour voir si elle a une solution ou si quelqu'un d'autre a déjà heurté le même mur.

Celles-ci peuvent être résumées comme suit: «Arrêtez le piratage et sortez du code».

Tyanna
la source
J'utilise le tableau blanc tout le temps. Très utile pour visualiser pendant le débogage.
Michael K
L'étape 3 consiste à changer le domaine du problème pour voir si un succès parallèle peut être réutilisé. C'est aussi appelé utiliser une métaphore.
Kurucu
2

Je voudrais poser une question ici et demander à la communauté de vous aider à la résoudre. Moins stressant de cette façon.

Bernard
la source
6
Parfois, le simple fait d'écrire la question mènera à la solution
JoelFan, le
1

J'ai un autre type de solution - Dormir !!

Lorsque vous êtes frustré par un problème, vous ne pouvez pas en sortir facilement. Il est donc préférable que vous deveniez si fatigué d’essayer de résoudre le problème et de vous endormir.

Lorsque vous vous réveillez, vous ressentez un sentiment de fraîcheur et vous pouvez à nouveau penser clairement au problème. Je le fais parfois.

ruben
la source
Je ne veux pas être tatillon, mais cette solution "différente" a été mentionnée dans au moins deux réponses précédentes.
Péter Török
1
ce que je voulais dire -> ne pas simplement prendre une pause, marcher ou dormir plutôt devenir fatigué d’essayer de résoudre le problème et puis dormir. parce que quand vous avez le problème en vous, vous pourriez ne pas en sortir facilement
ruben
1

Ce que j’ai tendance à faire lorsque j’atteins ce stade, c’est trouver quelque chose qui puisse m'aider à regagner un peu de confiance. Cela peut être résoudre un casse-tête Sudoku ou Kenken, effectuer une tâche administrative insensée, telle que remplir ma feuille de temps ou se promener. La clé ici est pour moi d’avoir un sentiment de réussite dans cette distraction, c’est d’aider à me remonter le moral pour pouvoir remonter à cheval et remonter dans le bleu sauvage, y mélanger quelques métaphores.

Pour ce qui est d'éviter de devenir aussi mauvais, je suggérerais probablement une stratégie de boxe chronométrée, de sorte que si vous croyez que quelque chose prend 10 minutes et que c'est soudain une heure plus tard, avec peu de progrès, je m'arrêterais pour une petite pause plutôt que d'essayer de continuer à me cogner la tête contre le mur.

JB King
la source
1

J'ai un nom spécial pour ce genre de situation: bataille de programmation épique .

Si je n'ai pas eu au moins une bataille épique de programmation avec un langage ou un outil de programmation spécifique et si j'ai résolu le problème, je ne peux pas me dire si je peux utiliser un tel langage ou un tel outil de programmation.

Voilà donc ma solution: la mentaliser comme une bagarre et une épreuve de courage et d’endurance . Si je ne peux pas résoudre le problème, alors je " vis pour me battre un autre jour ".

Il peut sembler un peu ridicule, mais ce sera plus amusant et gratifiant de penser en ces termes (comme il était une sorte de jeu , vous devez gagner) au lieu de souffrir tout le chemin parce que vous devez faire face au fait que vous ne sais pas tout .

ducofgaming
la source
0

Eh bien ... Je pense que vous avez besoin d'une nouvelle carrière ou d'un ensemble d'attentes complètement nouvelles. Bien que cela ne soit certainement pas fréquent, prendre 3, 4, 8, 10 ou 40 heures pour faire ce que vous pensiez initialement être un travail de 10 minutes n’est certainement pas inhabituel dans le secteur des logiciels. Je suis sûr que la plupart des développeurs qui travaillent sur des projets de complexité même modérée ont eu des tâches de 2 jours qui se sont transformées en tâches de 1 mois une fois qu’ils ont approfondi et compris le problème.

Pour être un bon développeur, il faut faire preuve de patience, sinon l'ordinateur va gagner et vous allez intégrer une sorte de solution rapide qui semble à peine fonctionner mais qui va inévitablement faire échouer un projet auquel vous n'aviez pas pensé. Si des retards mineurs vous causent beaucoup de stress, alors vous ne devriez probablement pas travailler dans ce domaine.

Tremper
la source
0

Deux suggestions:

  1. La personne la plus intelligente que je connaisse, qui a deux doctorats et porte le titre "Chercheur", dans une petite entreprise privée, dit ceci

    Si vous y réfléchissez depuis 15 minutes et que vous n'avez pas la réponse, vous vous y trompez.

    Arrêtez d'y penser.

    Faire une sieste. (faire une promenade ou quelque chose)

    La réponse sera là quand vous vous réveillez.

  2. Obtenez le livre "Debugging" de David J Agan . Il vous en apprendra probablement plus sur le débogage afin que, lorsque les choses ne fonctionneront pas, vous pourrez le déboguer rapidement.

Tim Williscroft
la source
0

Quand je suis confronté à quelque chose qui ne fonctionne pas, je me souviens toujours de cette citation:

En enfer, continuez à marcher car c'est la meilleure chose à faire à ce moment-là.

Faites une pause, essayez de vous rafraîchir et concentrez-vous sur le problème avec un nouveau niveau d'énergie.

Rachel
la source
0

faisant écho aux recommandations des autres:

  • cette situation est presque toujours une chose banale que vous ne voyez pas ; prendre une pause
  • une autre paire d'yeux ou même simplement expliquer le problème à votre chat peut aider

et en ajoutant:

  • réexaminez vos hypothèses, en particulier celles non énoncées; les chances sont que vous avez aboyé le mauvais arbre
  • inversez la situation: supposez que le comportement actuel est le résultat souhaité, que devez-vous donc faire pour que le code fonctionne?
  • écrivez du code de test (assertions ou journalisation, ou points d'arrêt conditionnels - restez simple) pour vérifier vos hypothèses le long du chemin d'exécution
Steven A. Lowe
la source
0

Parfois, il est préférable de ne pas simplement essayer de résoudre un problème. Prenez le temps nécessaire et écrivez dans un pseudo-code ce que vous devez faire. Je sais que des pressions sont exercées pour que les choses soient faites le plus rapidement possible, mais d'après ce que j'ai vu, ce style de codage conduit au type de situation que vous décrivez. Si quelqu'un écrit du code qui ne fonctionnera qu'en fonction d'un petit ensemble de conditions et des modifications apportées, le code se cassera ou fera des choses inattendues.

Aussi (je déteste admettre que mes professeurs avaient raison sur ce point ...), la documentation et les tests unitaires aident. Cela rendrait plus facile de savoir ce qu'une section de code afficherait en fonction de l'ensemble des entrées. Ensuite, il serait plus facile de voir quel effet une modification apportée à cette entrée de section causera.

John
la source
0

La fatigue ou le manque de sommeil ne sont jamais un problème avec moi. Je suis plus frustré par le manque d'organisation au sein de l'industrie dans son ensemble et par les normes peu élevées que nous nous sommes fixées. Voici cinq choses qui me frustrent:

  1. Des API compliquées dans leur conception. C'est comme apprendre un tout nouveau langage de programmation. En fait, certaines API sont beaucoup plus difficiles à apprendre que l’apprentissage de nouveaux langages de programmation. J'admire votre intelligence, mais vous auriez pu me faire gagner du temps en indiquant que j'avais besoin d'un doctorat en génie logiciel ou en informatique pour la comprendre.

  2. Manque de bonne documentation. Je ne peux jamais oublier le fait que tant de concepteurs d'API passent beaucoup de temps à créer une API uniquement pour la publier avec une documentation minimale. Merci, mais comment puis-je l'utiliser? que-faire dans cette situation? etc.

  3. Implémentations propriétaires. Certaines mises en œuvre propriétaires sont acceptables, mais si des normes existent, veuillez respecter ces normes dans l’intérêt de l’humanité. Rien de plus frustrant que de passer du temps à se demander pourquoi quelque chose ne fonctionne pas uniquement pour découvrir que la mise en œuvre ne respecte pas les normes habituelles.

  4. Sandboxed environnements / Restrictions. Ok, peut-être que cela aide à garder les mauvais, mais à mon avis, les restrictions sur ce qu'un programmeur peut faire ne limitent que la créativité et le progrès technologique. Beaucoup des bonnes idées que j'ai eues ont été mises au rebut après avoir découvert que je ne suis pas autorisé à faire quelque chose. L’industrie de la programmation est vraiment faite pour la création d’applications quotidiennes, et non de logiciels novateurs. Donc, si vous décidez d’être un programmeur, vous choisissez vraiment d’être un jeune homme moderne, à moins que vous ne souhaitiez devenir un universitaire solitaire.

  5. Discussions modernes. Les gens d'aujourd'hui discutent encore de la laideur de la parenthèse Lisp, du mérite de la propreté des pythons, ou de la disparition de certaines langues comme le cobol ou le fortran, etc. Vraiment les gens? C'est ce dont on discute? Parlons de parallélisme, ou de meilleures façons de concevoir des systèmes plus sûrs, ou de la façon dont la programmation logique peut améliorer nos vies. Cessons de penser comme des codeurs et commençons à penser comme des designers du monde de demain.

Donc, personnellement, je ne programme plus beaucoup à cause de ces frustrations. Jusqu'à ce que le secteur décide qu'il veut faire plus que simplement créer le prochain Facebook ou réinventer le traitement de texte, je suis prêt à tout. Je vais vous laisser les gars. Honnêtement, aucune offense ne voulait dire, c'est de l'argent bien.

annoying_squid
la source