With software, it's hard for people to tell that the finished product for Team B is as good as (or better than) that made by Team A, and therefore all they can look at is often effort. They see team A responding to alerts, alarms, production issues, etc, all night and weekend, and then see you cruise out at 5.
Sometimes comparing one piece of software to another piece of software is like comparing a garden shed to a skyscraper.
The wall example is similar to "Write a simple calculator capable of doing addition, substraction, division and multiplication". Anyone can tell if that software works as expected or not and have some idea if it's well done or not.
A similar comparison would be a team designing and building a fully functional house on a budget. In that example it's not easy at all to assert how well they are working, as happens in software development.
[1] only because I got the boards for wholesale price.
Does the software solve your problem? Then it's good software. If not, then what are you paying the programmers for, anyway?
"Bricklayer A" was constantly rewarded for working hard. I was constantly reprimanded for wasting my time since I was deemed to have a much larger "potential," despite producing more output and with a higher quality than most others on my team.
This ended up with my leaving that team. So I can't agree that "bricklayer B" is always preferred, but I would say that a good manager would usually prefer that choice. Good managers are not easy to find.