Je ne peux pas parler pour tous les ingénieurs logiciels, seulement pour moi après 20 ans. Mes frustrations viennent de :
1) La façon dont les logiciels sont gérés. Pas nécessairement les gestionnaires eux-mêmes, mais l'insistance des entreprises et/ou des clients à mesurer des choses qui ne peuvent pas être mesurées. Lorsqu'on me confie l'écriture d'un logiciel, je n'ai jamais écrit ce logiciel auparavant, il est donc impossible de donner une estimation honnête du temps que cela prendra, et pourtant on me la demande toujours... puis lorsque je ne la respecte pas, on me le reproche. En revanche, si je respecte l'estimation ou que je termine en avance, il n'y a jamais de prime, de récompense, ni même de remerciement.
C'est l'une de mes analogies préférées. Lorsque vous construisez une maison, vous pouvez dire à la direction exactement combien de temps il vous faudra pour monter à mur parce que vous'avez monté ce mur exactement des centaines de fois. Je n'ai jamais écrit le logiciel que vous me demandez d'écrire. Je peux deviner, mais il y a une forte probabilité que je me trompe... dans un sens comme dans l'autre.
2) La déception dans le travail. La plupart des gens qui se lancent dans le logiciel pour l'amour du logiciel s'y lancent avec des visions de travailler soit sur de grands produits importants comme des vaisseaux spatiaux ou des équipements scientifiques ou des jeux ou des produits commerciaux qu'ils peuvent trouver sur les étagères des magasins et dont ils se vantent, puis se retrouvent à passer des années à écrire un logiciel interne à une entreprise pour déplacer des données ou faire d'autres choses moins stimulantes. Les gens veulent produire quelque chose dont ils peuvent être fiers... mais la plupart des logiciels ne sont tout simplement pas comme ça.
3) Les logiciels trop traités. Bien que je croie qu'un bon processus est nécessaire pour faire un bon logiciel, beaucoup d'endroits sont tellement trop rigides sur leur processus que les développeurs se retrouvent à passer la plupart de leur temps dans des réunions, à écrire des documents ou d'autres tâches non codées. Cela semble être le fait de projets gérés par des personnes ayant un MBA ou d'autres gestionnaires professionnels qui n'ont aucune expérience ou connaissance des logiciels, seulement ce qu'ils ont lu dans des livres sur la gestion des logiciels.
4) Se retrouver coincé dans la maintenance. Bien souvent, un développeur entre dans un emploi dans une entreprise avec un beau produit ou même simplement parce qu'il a besoin d'un emploi et se retrouve relégué dans l'enfer des 10 000 corrections de bugs. Les corrections de bugs sont importantes, mais elles ne sont pas épanouissantes et la plupart des gens veulent faire du développement nouveau frais où ils peuvent utiliser leur créativité pour concevoir et construire le logiciel à partir de rien.
Je ne me suis pas lancé dans le logiciel pour être riche, je m'y suis lancé pour faire quelque chose que j'aime dans ma vie. Si votre raison de faire du logiciel est d'être riche, je dirais que vous êtes dans le mauvais domaine et très probablement que vous n'êtes pas un bon développeur. Oui, j'apprécie de bien gagner ma vie, mais ce n'est pas mon moteur. Je ne'sais pas si quelqu'un d'autre a les mêmes frustrations qui l'empêchent de tirer le maximum de plaisir de son travail, mais les écrire a au moins été un peu cathartique pour moi.