Thriving
According to my experience I find that there are two simplified environments where people can work in. You will thrive in either one, but never* in both. This means you can ask this as a question when starting to work at a new place whether or not they will provide an environment where you will thrive in. The first environment I will describe by what the employees will need to do in order to thrive here.
This first environment requires that the employees constantly update their managers. Every detail they perform they need to send to their superiors and only then the managers (from now on I will call them overhead in reference to Dilbert) will be convinced that the employees are doing their job and doing actual work. The problem of course lies in the fact that you only have to give the update to the overhead and then all is well in the world. The actual work does not need to be done, as long as you communicated about it. It all boils down to the fact that the overhead does not trust the employees to do the work. So in a constant feedback loop if there is no update that means they are not working and therefore there is a constant positive reinforcement of the negative image. Onward to the next environment.
The other or second environment is one where you do not have to give constant updates to the overhead but instead they inform periodically with the employees about the progress or status. This of course boils down to the fact the overhead trusts their employees to do the work and in a constant feedback loop there is positive reinforcement of the positive image they have of their employees. Every time they ask are you hard at work if the answer is a resounding yes and you show actual progress, will make the overhead happy. If you say yes however your work is not up to par, the overhead will not be happy and can have a normal conversation with the employees.
Now for the statement that you can only thrive in one or the other. If you are of the type to constantly spam your managers you will thrive in the first one, but in the second one you will not. The overhead in the second one will find it annoying that constant updates are being sent and will view it with suspicion even though you might be doing the work. If you are of the type to never send updates to the overhead then in the first environment you will not thrive as they think you are not working but in the second the overhead will constantly get positive reinforced image of you as a hard worker. So far I have found that either you do the work and not inform whoever is your superior or you do not actually do a lot of work but you communicate a lot about it.
For me personally I cannot thrive in the first environment. I just sit down and do the work and I expect everyone around me in the company to do the same. We are all there to do our job and that is what I assume everyone is doing. If I find out someone is not doing their job it is quite simple, you are off the team. In contrast if you are doing your job I am very happy because I get that image constantly confirmed. I think it all has to do with trust and your outlook on work ethics of other people. Also for the couple of times there is not that much progress being made or I find that someone is starting to become complacent, then you can have a normal conversation built upon the experience that that is not the norm. It is easier to spot when things are difficult as well. As you can detect it quite easily by seeing that progress is slower than usual for example. In the first the updates about higher workload and pressure generally go unnoticed in the big pile of status updates and it is more difficult to act upon it.
* For those few instances, hardly ever.