Stuff & Nonsense product and website design

Trying and failing

We’re half-way through a project, designing a web ‘application’ for a client. This means writing lots of HTML and making plenty of template pages.


Hammer For Mac, a Mac app that I’ve spoken and written about a lot, makes that easier, in particular the way it allows for HTML ‘includes.’ Still, I was curious to find out if there was another, possibly more flexible and more efficient way to create our templates. I’ve heard of template languages and the one I remembered most clearly was Jekyll, as Anna wrote a widely admired article about it and Github pages last December. I decided to step out of my comfort zone and give it a try. Sadly, my enthusiasm was soon dashed.

gem install jekyll

My first command threw up a permissions error. Undaunted and remembering a previously unsuccessful attempt at using Terminal, I knew that sudo might help me, and it did, but my next move was thwarted when the installation failed and I was lost in Terminal error messages I had no hope in understanding. Frustrated, I took to Twitter. “Just Google the error message” someone said helpfully. Sadly the search just led to a Stack Overflow thread that was as confusing as the error message. So I abandoned the attempt feeling angry and that I must just be stupid.

If you follow me, you’ll likely have heard me express these sentiments about developer tools before.

This week a potential Unfinished Business sponsor asked me to look at their new product, a tool for responsive design testing. Before I can talk authentically about a product in a sponsor read, I need to have used it, so yesterday evening I sat down to install it on my desktop Mac.

“First things first, you’ll need a recent version of Node.js installed, which also comes with the npm package manager. Node.js is totally free & open source and installation only takes a few minutes.”

I clicked the link to Node.js and stared:

“Node.js is a platform built on Chrome’s JavaScript runtime for easily building fast, scalable network applications. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.”

I pressed the install link and watched the download start, then I froze. I thought about the anger and feelings of stupidity that I’d felt on every other attempt at using developer tools like this. I thought about how, if things went wrong, I wouldn’t know how to solve them. I knew that I really didn’t know what I was doing and I bailed. I cancelled the download, closed the browser and opened up a new email to the sponsor.

“You won’t be happy with me. I’m already lost.

I wrote.

What I enjoy about tools like Ghostlab and Hammer For Mac etc. is that I feel confident that they are just apps on my Mac. (I worry about installing things I can’t ‘see.’)

I think there’s a huge gap between my knowledge and confidence levels with “developer tools” and what developers expect me to know to use these tools. Mostly they just make me feel angry and stupid. Maybe I should stick to what I’m good at. Crayons.”

Reading this, you’ll probably think that I’m stupid too. Stupid for giving up, for not persevering. But if you write software, technical tools, I need you to understand why I feel the way I do, irrational as my feelings may be.

When I install a ‘normal’ app on my computer, I feel comfortable because I can see its icon in the applications folder. I can press it, use the app and when I don’t need it anymore I can drag it to the Trash and know that it’s gone. Sure, I understand that may leave a preference file or two, but I can live with that. My machine still feels ‘clean.’

Whenever I’ve tried, and failed, to install software through Terminal I don’t have that comfort. If it installs correctly, I can’t ‘see’ it. If it doesn’t, I have no idea if I’m filling up a part of my computer that I can’t see with the remnants of half-installed files. I worry that if something does wrong, I could damage my computer in some way, the way I remember damaging my PC when I once made a mistake with the Windows registry.

Trying and failing to use software like this makes me feel, angry, helpless, frustrated, stupid, even scared.

I get angry, not at the people who make the software I don’t know how to use—even though it might appear that way way on Twitter—but at myself. I don’t like to feel any of the feelings I feel. I’m angry at myself because it seems like everyone else either has learned or can learn this stuff and I can’t.

I’m frustrated because I ‘want’ to know and I feel stupid because the barrier to entry to using tools that I know will be helpful seems so high. I don’t understand the terminology and people seem to be expected that I should. So I feel stupid that I don’t know what the “npm package manager” does, nor what “uses an event-driven, non-blocking I/O model” means because I design web sites, not “scalable network applications.”

I’m scared, not just because I fear I might ‘break’ something, but because I’m frightened that if I do encounter a problem, that not knowing how to solve it will make me feel everything else.

I feel all these things, even though that I know I shouldn’t. Because I’m trying to use software.


Written by Andy Clarke .


Would you like advice and inspiration on making better designs for the web?

Get monthly design inspiration and insights based on my 25+ years of experience. View some recent emails, sign up today, and get:

    I promise never to share your email address and you can unsubscribe with just one click.

    Free set of Layout Love grid templates when you sign up.

    Hire me. I’m available for coaching and to work on design projects.