I'm in this software company, and funny thing is, I've only experienced two managers so far, but both these two managers view programming jobs not much different than laying bricks. They always emphasized, you guys should take on each others jobs at any time.
As the result, our code has a "group-ownership" -- no one owns anything, and no one is responsible for anything either. Or, in other words, everyone owns everything, and everyone is responsible for everything. If anything breaks, anyone may be dispatched to put out the fire, regardless who created the problem. If you open up the code, it is quite a chaos, because different people have different ways doing things. Moreover, fixing other's code without much time allocated understanding them first, will quickly ends up with patches upon patches upon patches. This never bothers our bosses, because they are result oriented. I.e., they never bother to look at anything down at the code level.
Someone might just couldn't believe it, but it is absolutely true, and we are a pure software company!
The justification they have is that, when everyone is responsible for everything, when anyone takes a vacation, others can/should just swap right in and cover him/her, so s/he can enjoy vacation any time. Once a guy had been preparing for a new module for more than a month, then took a vacation, and right before he left, he told our boss all issues settled, and it was ready to start coding. So on the next day scrum, my boss told me, we've got to get this done next week, can you pick it up please?
I just can't believe what I heard, that guy prepared it for more than a month, but has never shared his finding with anybody else, now my boss wants me to pick it up, out of the blue, without any prior knowledge, and finish it within a week.
I can't remember the detailed but I was lucky to find some logistic reasons/excuses to dodge the lethal bullet. I.e., he doesn't even have the concept that taking over others' work midway is the most painful thing for programmers.
Is this common for software company? How would you suggest for me to break the bad news to these (clueless) guys, that programming are much different than laying bricks, without them being felt embarrassing, and also convince them, because they both strongly believe in everyone should be responsible for everything?