Good stuff. The point of your article is well taken, Terence, and so are your concerns and frustrations.
You mention a couple of interesting things such as, why would you spend 30 minutes on a design decision that, from your point of view, no one will notice. Well, in my experience, fine-tuning the design might not be noticeable at first, but it all adds up in the end.
So if all the buttons look properly sized and aligned – with regards to each other and the other design elements – nobody will take offense. I have no special insights into the mind of the designer of the screenshots you’ve chosen as test subjects, but most likely there’s more to it than meets the eye.
Who knows, perhaps the designer chose sizes and aligned elements with the intention of achieving consistency, not only on this particular screen, but on other screens of the app as well. Sometimes, I come up with comps that look good to everyone else who is not a designer. Then I’m sweating bullets, because five minutes before the meeting to show my stuff, I realize that all the right-aligned buttons don’t quite match up with other elements above or below. Perhaps just by one pixel. Nobody else notices, most of the time, but as soon as that meeting is over, I’ll hurry and fix any discrepancies I’ve detected “after the fact.”
Sounds crazy right? Especially when you operate on the premise that most end-users look at your design on somewhat impaired screens (sweaty, cracked, etc.). Still, I would worry about trying to get it right for the best-case scenario (clean & clear screen), because, as a designer especially, you don’t ever want to get a call from your CEO, telling you that one of his best buddies noticed that the button size in your design is not consistent with the buttons in that buddy’s favorite thing-a-ma-jig app.
It has happened.
In the end, I think that there’s a balance designers and developers should accomplish. “Perfect” is a nice goal for a designer and a developer, but “80% good” is more realistic in terms of getting a product shipped out the door on time and within budget.
PS: If it is necessary to shave 5ms of load time (or display rendering time), I would pursue that after v 1.0 has been shipped. It’s one of those balancing acts when you know that shaving off 5ms here, 2ms there will ultimately result in a faster responding app, but you already need to get the next version out the door, and can’t afford the time it takes to optimize your app.