I'm a software engineer working as a contractor for various clients, most of them established and "big" companies. Besides hands-on software development, a big part of my job is to bring in new thoughts, help the other colleagues learn new techniques, improve software quality, etc. Usually I'm part of a team (mixed with employees and contractors), resembling a real employee for some months.
In all of my projects so far I experienced the same issue, at varying intensities. In short, I often feel unhappy and sometimes frustrated at how bad the whole environment influences my own work.
As an example, there is a software tool which is used company wide, with the purpose to find quality issues in software and help fixing those. However, this tool is not well maintained and runs analyses which were deprecated years ago (due to false positives, leading to extra work for each developer using the tool). My criticism was answered along the lines of "we have reasons", which boils down to "we don't feel like fixing it", meaning "deal with it". Besides the actual unnecessary work on my side, I have negative feelings because these issues do not only affect me, but every single developer in the company. In this case, software quality is also affected in a negative way.
I have a long history of support tickets (network too slow to do proper tests, local software installation slowing down the workflows I'm used to, unable to do local tests due to missing software, ...), which in most cases just tell me that I'm one of few (the only one?) voicing these concerns and that there's no real solution to my issues. I also received positive feedback that I'm challenging such issues, and I consider this an important aspect of my job.
I could try to come up with many concrete examples, but basically I often find myself in situations where I'd like to give my 110%, do good work, and instead I find myself blocked, slowed down, or just annoyed by millions of tiny issues. I don't feel that I can do professional work in such environments, and I don't know what I can do about it. I write this waiting for a critical configuration fix, after slacking off for a while. Instead of being bored and browsing through SO, I'd love to write software and solve real engineering issues.
Quitting this kind of job is an obvious alternative. I'd also like to know if there is anything I can do - either to work on myself, or to help change the clients for the better.
I already know that I am more demanding and impatient than average.
Finding other things to do also is a great idea. However, I tend to be finished with those before the original issue is resolved, or run into new issues that make it impossible to continue with the NEW work. Besides, most of the "side quests" are boring, unimportant, distracting, unpleasant compared to the actual job I'd like to do.
PS: The clients are (very) happy with my work. I am not.