Don’t leave windows broken

Don’t leave broken windows (bad designs, wrong decisions, or poor code) unrepaired. Fix each one as soon as it is discovered. If there is insufficient time to fix it properly, then board it up. Perhaps you can comment out the offending code, or display a “Not Implemented” message, or substitute dummy data instead. Take some action to prevent further damage to show that you’re on top of the situation.
— The Pragmatic Programmer: From Journeyman to Master

I can’t reiterate this more.

Every time I see a pixel off, a indentation wrong, a word mispelt, I just correct it. I couldn’t just watch things continue to be wrong when I know I can fix it.

And once everything looks tidied, your peers do want to make a positive contribution too. And hopefully, just hopefully, they perform a similar level of upkeep after a while.

The broken windows theory is a criminological theory of the norm-setting and signaling effect of urban disorder and vandalism on additional crime and anti-social behavior. The theory states that maintaining and monitoring urban environments in a well-ordered condition may stop furthervandalism and escalation into more serious crime.
— Wikipedia

Singapore hires a lot of cleaners to sweep up our road sides. It’s quite the same idea, the theory is that once there is litter, people would mind lesser adding more litter to the roads.

And therefore, if you want clean code to look at, why not start with yourself.

Why CSS buttons aren’t used enough

I know CSS buttons exists, are really faster and not enough sites are using it. Let me try to explain on the different point of views. I am a Web UI Developer in situated in Singapore. I do tons of frontend work.

UI Designer

They care the most on the look and feel of the button. They add shadows, a gradient and a beautiful texture. It’s the perfect button, in PNG. Well they send you in PNG, they design it in Photoshop. They most likely wouldn’t know CSS. They send you the button as part of a larger image to slice and implement. Their job is to make the UI look great, not to be concerned with speed of page rendering and assets delivery. They believe someone will take care of it.

Web UI Developer

Our interest is to finish up the task and make it look like the design. We could implement a button with CSS but we don’t know the shadow and border radius involved. We could ask the UI Designer but that takes an email and we might have to tone down the UI Designer’s button design. It’s a lot easier to deliver the button in an image format than to go through the hassle. We are slightly more concern with the speed but we don’t want to compromise on other’s work.

QA Engineer

This person is there to make sure that the Web UI Developer implements stuff correctly. That means the design of the button must look right in various browsers and platforms. The image format would look exactly like the mockup, it’s something QA Engineers would prefer. QA’s priority is to make sure the button is implemented as specified. Often speed of delivery is not in the specification.

DevOps Engineer

DevOps Engineer will look at the page and scan through and announce that image compression is needed to speed up the delivery of the webpage. He or she will then announced that after compression, the website is now 23% smaller and provide advice on compress images and CSS during the build process. The CSS button issue will fade away because everyone things compression is good enough a solution.

How to make it work better

The UI Developer probably has to step up and advice the changes being the interface between all parties. Perhaps they can be incentives towards better speed and performance. It’s a metrics that is not emphasized.