Read time 3 min
Developers: when coding, you are not only creating user experience (UX) for the end user. All your code actually is UX.
The gym I go to just moved to new premises. In the old premises they used to have an ordinary membership card, but it got replaced with this cool rubber wristband. In order to get into the gym, you show the band to a machine in the reception. It also works as a key to the dressing room lockers.
Since the wristband replaced the numbered locker door keychains used in the old place, I have absolutely no idea what my locker number was when I return to the locker room from the gym. I just need to remember it. I also tend to forget the wristband at home quite often because I can’t carry it in my wallet like I could with the old membership card.
There’s a button on the dressing room locker door you need to press with the wristband in order to close it. Or a certain spot of the wristband, to be more exact – apparently there’s a microchip of some sort inside the band. The locker will lock only if the button is pushed with the exact right spot of the band, so the door is quite hard to lock, but hey! It’s a cool scifi wristband…
In general, the new gym is really cool, but the cumbersome locker system lowers the quality of the customer experience. Seems like the main motive behind the design of this product was the technology, not the desire to make people’s lives easier.
Good code is poetry
What about code? Why do we aim to write “readable code”? For the very same reason the wristband access control system should have been designed: to make people’s lives easier. We write readable code for the sake of developers who will read it and make changes to it later on – be it you yourself or someone else.
However, I want to point out that the term “readable code” is an understatement. Instead of creating just readable code, you are actually creating a full-blown user experience for the next developer. Same goes for higher level software design choices; all of it is user experience. As stated in the Reaktor Full Solution video, good code is poetry.
So aim for poetry, not rubber wristbands.
Well-written code will speak to you in the same way a spoken language does, telling you a story. Some programming languages make this easy, others a bit harder (good luck trying to “tell a story” with Brainfuck). Regardless of the programming language, all code is UX.
The rubber wristband example might seem insignificant to some, but remember this: it is the attention to detail that takes your user experience from good to almost perfect. I’m saying almost perfect, because there is always room for improvement, but that’s a whole other story (check out kaizen). It is the details that shape the way your identity and brand are perceived, no matter whether it is your company’s brand or your personal brand as a developer.
To summarize, do keep the user in mind, no matter if you’re constructing an access control system based on rubber wristbands, a user interface, or code. Picture yourself as the user and think about the optimal experience you could have carrying out the task your software or service is enabling.
The good old Golden Rule applies perfectly in this context as well: treat the users as you would like yourself to be treated.