One of my co-workers spends big part of his time in analyzing the others work. He looks for glitches like forgotten outdated comments in the code, design decisions that could be more optimal while existing solutions work, some things that just look "inconsistent" for him and the like. Also, no software design document he ever seen looks for him complete enough to be acceptable. The problems he finds are real, but the importance of them is questionable. He basically raises the importance of every problem he spots to the most critical possible.
While I initially assumed management will tell him to stop and watch own work, this seems not happening much. Probably the management assumes that heavy criticism will make others to work better. From the other side, I do not feel happy at all when I also need to do his actual work, fix the bugs he also makes time to time, while he is preparing the ordinary portion criticism to pour over my head.
Maybe one of the approaches would be to start watching HIM on the possible mistakes, the problem is co-worker seems less and less active on the actual job tasks, there amount of code he still writes is very small so can be easily made perfect. However somebody still needs to complete the remaining parts.
Is there any way to control this situation? I have nothing against discussing criticism constructively but this seems already going well beyond of that could be normal in a well working team.