There’s an old saying that you’ve probably heard of that goes “there’s many ways to skin a cat”. I’m not sure where the phrase originated, but I imagine a time where cat skinning professionals across the world discussed and debated techniques, best practice, process and theory, in search for a zen-like, ultimate, optimum way to skin a cat.
I propose that we update the saying for the 21st Century to “there’s many ways to skin a website”. Maybe not as catchy (sorry), but surely there has never been a profession before where best practice, technique and theory is debated so feverishly?
Searching for the one true way
On the face of it, HTML and CSS are very simple technologies that are really not that difficult to learn. Like many people have done in this industry, I taught myself HTML over 14 years ago. Back then, CSS and web standards weren’t even a twinkle in Zeldman’s eye, and since then I’ve seen best practice come, to be superseded by even better practice, time and time again.
You’d think after having built a few hundred [web sites] I’d have discovered the “one true way” of doing it. I don’t think there is one true way.
Jonathan Snook, Smacss
Yet, in all these years, and despite my best efforts to do so, I’ve yet to reach that zen-like, optimum web design approach that our cat-skinning cousins from yesteryear also strove to achieve. Every new project I begin, I approach and structure differently from the last, as I optimise my approach project by project.
I am of course echoing the sentiments of Jonathan Snook who is striving to document the impossible — a holistic and flexible best practice style guide for writing code that is easier to build and maintain.
As Snook himself acknowledges, there is no one true way of doing this thing. We all develop our own approaches to tackling similar problems. Sometimes these approaches cross over, sometimes they contrast, but very often there is no clear right or wrong way.
Take for example the recent debates surrounding whether or not to use ID selectors in CSS. All the arguments I’ve heard in this debate assume one specific approach — one philosophical overarching view of web design. Both sides of the argument are as right as the other, depending on how you approach building websites. And that often amounts to nothing more than personal choice.
Don’t get me wrong, I welcome that we debate these things. I welcome that we question the most semantic way to mark up a logo, what makes an efficient CSS selector, or what “responsive” actually means. But often these conversations lack any appreciation of the myriad factors that dictate or direct our decisions. What software, tools or frameworks we use? Who our clients are and what their requirements and budgets are? What legacy systems and content are we working with?
The list goes on, and what is right for one person may not be for the next. Like I say, there’s many ways to skin a website.