Well there are a lot of cons. First of all, they do not know how to manage a project. Most of the people in the higher management do not know about computer science. One Assistant Manager asked me if to submit my changes in the source code. I did that and after a while he said, he does not see any difference in performance of the application. I asked him if he had compiled the code, he said why would he do that. That is the kind of stupidity you would see. One another instance, I asked my junior to create a class ( a particular need at one time) and write constructor and destructor of it. He literally wrote them down. (void constructor()). In one project, managers forbade us to ask clients regarding the code base they had sent us. So we were always on the dark as to a particular file can do or not do. Thanks to my initial experience it was easy to find the working of APIs. Now if a particular thing is do asked from the client, the whole management tends to feign as if they understood all things but have not understood any. They do not know operations of git. And most of all, higher management can blame programmers for their fallacies.