I tweeted this yesterday and it seemed to resonate with some folks:
Just a little reminder that it’s about 100 times more important what you build than how you build it.
— Chris Coyier (@chriscoyier) December 10, 2017
What I was feeling when I wrote that was a little tired of endless discussions on tech minutia and yearning for more focus on what we are building and discussion about why.
If you’re a reader of this site, you and I live in the same bubble. It’s a nice bubble. It’s full of smart people who like to chat about web design and development. I live it and love it.
It’s easy to get into a heated discussion about frameworks, what type of class names make the most sense, which optimization techniques are most important, or what part of your code base is should be responsible for styling. Those are great discussions that guide our industry.
But what is more important? The naming convention you chose or if your user can actually book a flight? Which state store library you picked or if you actually had the scarf your user was looking for? Which command line tool pulled your dependencies or whether someone was able to find and read the instructions to send in their court appeal?
I was trying to encourage people to build and think about what they are building rather than get too discouraged about the how. You’re building things for people and that’s such a big responsibility. One that outweighs technical choices, as important as they seem.
I enjoyed the pushback I got on it though.
Most of it centered around the fact that if you make poor tech choices, that limits the quality of what you build and slows your ability to change and adapt to changing user needs. Fair enough.
Good tech just might lead to directly better features and UX for your users. Fair enough. Good tech might be a differentiator between you and your competition. Fair enough.
My favorite was calling out the story of the three little pigs. If you aren’t familiar, there is a Big Bad Wolf that is trying to eat the piggies. Each of them built a house to protect themselves. I imagine you can guess which of the pigs did better: the one who built their house out of hay, or the pig who built their house out of bricks.
Fair enough.
Drew McLellan gets into this in All That Glisters, but focuses on the old vs new tech issue:
There are so many new tools, frameworks, techniques, styles and libraries to learn. You know what? You don’t have to use them. You’re not a bad developer if you use Grunt even though others have switched to Gulp or Brunch or Webpack or Banana Sandwich. It’s probably misguided to spend lots of project time messing around with build tool fashions when your so last year build tool is already doing what you need.
And this gem:
Software, much like people, is born with a whole lot of potential and not much utility. Newborns — both digital and meaty — are exciting and cute but they also lead to sleepless nights and pools of vomit.
He goes on to say that what you are building might help dictate your tech choices. Ah yes, the what. Not only is what your things does litearlly the only thing people care about, it also helps guide tech choices.
Making a web site useful is like buying a house. Location Location, Location or in web terms translates into Information, information, information. I am a hobby web designer. I sell a small booklet by the thousands and it not built on any grid, npn or any other framework. Just bog basic layout. You have got to supply what people need. I can’t understand why people have to get the latest tools that jiggle things around on the page and make things pop out from the side of the page that make you jump. It only make things more technical and as you pointed out sleepless night and pools of vomit. It must be a living hell. I am only 73 of age what do I know?
Great post. I always beat myself up over this kind of stuff: is this class name appropriate, should I use a section or article tag for this element, why am I using jQuery for this and not vanilla JS.
The end user doesn’t actually care about any of those things. They care whether something looks nice and that it works.
I don’t think that’s an excuse to be lazy or to not do things properly. We should all take pride in what we do. But sometimes tech decisions can end up eating valuable time when nobody else actually cares, providing it works.
And the corollary to this is that good tech doesn’t gurantee your ability to change and adapt, and it doesn’t guarantee better features and UX for your users.
I liken this phenomenon to old craftsmen, using 1600 era tools to build beautiful furniture. Compare that to the super high tech tools used to create IKEA furniture. Both have their uses, and in many ways IKEA is superior to the handcrafted stuff (quick response to changing needs is one), but it doesn’t last and does not have the same quality.
Maybe software doesn’t equate in the same way, but one reason I didn’t jump on so many bandwagons over the years that have come and gone, or been replaced or upgraded with the “next greatest thing” is because I’ve seen the time and money wasted going into just trying these new tools out. Let alone getting proficient at them.
I make a habit of always buying 2 year old hardware, because everything new today is paid at a premium, and none of my users have it, so it’s no good for live/in-time testing. I include time invested into brand new systems. Let someone else work out the kinks.
I will sit back with our solid systems, that are indistinguishable from the super duper fancy modern stuff (we focus on response time, UI design, not frameworks, solid base of support across the board, no hacks, etc…) and in as super awesome features gain parity, we upgrade our system, consistently. Always modern and always looking to the future a small piece at a time, and always away from the bleeding edge.
Hey Chris,
Great Article as ever, even if it is just a short one.
I routinely use Aurelia, on the dotnet core stack, with Bootstrap for layout, and well that’s pretty much it, oh and Font Awesome is my go to font set mostly.
Point is, this easy to use combination, get’s me up and running with most apps that I need to write in about 30 seconds, top that with the fact that everything is done in Type Script, so I’m working back and front in two environments that are very similar, so no mind bending paradigm shifts when I’m working, and you know what….. This set up just works perfectly for me.
It does what I need, when I need it to, how I need it too, and for most of the things my clients ask me to build, it does the job perfectly.
The problem (as I see it anyway) comes from the Clients and Business/Stake holders most of the time.
Iv’e seen it time and time again, where they buy into the marketing, and the flashy sales tactics, then they go back to their technology partners or employees, and tell them they have to use technology X because it’s the best thing ever.
As a well know member of the .NET developer community, I spend a lot of time trying to educate developers, that it’s not about the code, the framework, or indeed what someone with very little technical expertise decrees, but that it’s about the project, and what works for the project.
For instance, a small single page brochure site, I’ll quite happily do in raw HTML with Vanilla JS and no framework, or a simple 2/3 page simple site, I’ll deploy on wordpress.
Many stake holders however, only understand marketing or market driven approaches, and so they “Think With Their Eyeballs”, and not with the grey matter as they should be.
This leads to many developers who won’t or can’t push back, either because they lack the confidence, the communication skills, or just work in a toxic environment, which in turn empowers the requesting party more, because they feel that the approach is correct, given that there is “No Problems” with it.
So many developers are stuck in ruts that they just cannot escape from, they have clients that push to use the new stuff, when really they should be using the not so new stuff, and the only way it stops is if we try to change it from the inside. But the inside is an ugly place, and for what ever reason we just don’t seem to ever be able to break the vicious circle.