A dev learns a bit of design

I code for 10 years now. I’m a self-taught software engineer and with those ~120 months of experience I’m pretty confident about my tech skills (in a certain tech stack in any case). If you need to shit-code something - I got it. But for all these years there was a dark emptiness within me with the name “UX”. I’ve always felt incompetent in the area of user experience design. Usually, devs do not need any design skills, but UX knowledge might turn out handy. Also, it’s much more interesting to be closer to the domain and to the end users. So one day I signed up for a UI course and after it for a UX one. This article would describe my journey.

Team is designing

Why care about design anyway

Want it or not but devs bump into design all the time. Frontend devs are implementing it directly. Backend devs don’t work in a vacuum - even though the end result of a sprint for them might be an API endpoint plus automated tests (which are technical details and have no interest to the users), backenders still know about the purpose of that API endpoint - at the end of the day it’ll be some useful functionality in the app. DevOps, being even farther away from the design world, know why they need to add autoscaling to some service. Yes, because they have a task in Jira, but also because, for instance, a lot of people tend to click the “buy” button on Black Fridays.

Dunno how about you but I suspect that the desire to know why are you doing it is universal. The world of developers is complicated enough without design already - programming languages, frameworks, protocols, patterns, best practices, TDD, BDD, DDD, {who knows what else}DD, naming freaking variables, and so on… But even though those are just ways of implementing something. The actual meaning is inside the something. And the design is the form of that something, it’s a visible thing that the team is united around.

Given all the above, design is pretty important. Should everybody care about it? I would say - certainly.

The format

One thing worth mentioning is that I was taking not online self-paced courses on Udemy, which all of us buy but never finish, - no-no, there were actual humans that you need to talk to. And I must say that experience of taking a “real” course (failed to come up with a better adjective) is totally different from online courses in terms of actual knowledge gains. I hear “duh, cap”. Well, yes, in the end, it’s all about you making an effort and practicing alone in the dark room dreaming about ruling the world after finishing the X course. But in reality, at least from my experience, at some point “something very important” emerges. You tackle this and that… Next thing you know - you haven’t touched your course for 2 months. With a “real” course it’s different - motivation tends to stay all the way, because you must remain accountable to the money you’ve paid, to the curators that ping you every now and then, and to your classmates (who you want to be better than).

UI design

So the first course taken was “Web UI Design - Beginning”. Here are some bits from it. The first would be grids. Probably anyone who sat close to the bootstrap web framework knows what they are for. But the UI course gives a better understanding of why it’s important for end users. In case something is not properly aligned on the page user instantly knows it. It’s not that he’s like “hmmm, I can see that grid is lame here” - of course end users don’t know about the existence of the grid and how many columns are there. But human’s eye is very sharp on that stuff - the user will feel dirtiness. So I think that better understanding of grids and technics of using them is really nice to have in the tool belt.

The next bit would be references. The essence is - before designing something it’s better (or maybe even absolutely necessary) to find similar solutions on dribble, behance, awwards, or elsewhere. For me formulation finding similar solutions seemed like an attempt to hide the fact of shameless stealing. But it has changed. Two reasons for that (at least): (1) there are trends designers must acknowledge and (2) the evolution of design happens with iterations - a design idea goes through many designers alternating and improving each time. Therefore “stealing” is not as bad as it might seem at first.

There was other stuff covered in the course, like typography, contrast, composition, etc, but I’ll not go into the detail on those. I can just state that having a slightly better feeling regarding what font size to choose in a particular case or what to emphasize on a particular screen seems like a useful hard skill in the context of web and mobile development.

UX design

The next stop is “UX Design - Beginning” course. I’ve always liked to read articles about UX - they are fascinating and have kindled a flame of curiosity in me. Usually, they have a lot about psychology and how is it all about designing for humans. It’s pretty easy to understand what UX design is for - convenience and ease of use. But at the same time, it’s very easy to become misguided about what UX designers actually do.

Going into the course I was expecting psychology tricks and some super-duper smartass technics. For someone who used to write code such an expectation is fair (devs do super-duper stuff all the time), but that turned out to be true only partially. The end result of the UX process indeed is a particular hierarchy of pages (screens) and components within them. But the most interesting part is “how do we get there”.

Without further ado - we get there by asking users what they want. I could easily leave it there because UX is mostly about communicating a lot (like a looot) with users of a product. So yeah, I was surprised when instead of super-duper technics and psychology tricks curators started throwing at us “first we gonna do stakeholder interview, then 6-8 in-depth interviews with potential customers, then you’ll need to run surveys and please leave some room for user testing”.

To be fully honest there is still “magic” stuff like usability evaluation, gestalt psychology principles, dark patterns of UX and so on. But for me, the surprise was that the main part of the UX is technics and processes of communication with end users to figure out what they need.

There is a huge amount of work going after communication - based on information designers get from users they form personas (generalized portraits of distinct user types), define user flow in the app (and possibly a customer journey map, which is a broader version of the user flow) and build information architecture. That’s not an exhaustive list, but we’ll leave it there.

UI vs UX

Just a few words about UI versus UX. They both are crucial. Functionally UX may seem dominant because it’s about the actual usability of the product, its convenience, and ease of use. But UI is also very important because of the aesthetic usability effect. It’s a bias in human psychology which tricks us to think that nice things are usable.

It stems from a similar belief about humans. There was a research where organizers showed photos with faces to a bunch of people and asked them to evaluate the IQ of people from photos. Only by checking the photo - without any other information whatsoever. The result was interesting - the vast majority of participants were giving higher IQ scores to attractive people. So UI ensures that users are not leaving the app after 30 seconds, and UX helps with keeping users later. Hence design must be both beautiful and usable.

The last point is about how it feels to work on UX versus UI. As I’ve already mentioned - UX is mostly about communication. It includes ready-to-use processes on how to communicate with end users, and what to do with that information. It doesn’t require much creativity. Creativity is nice to have at all times of course, but it’s not absolutely required for UX designers. UI, on the other hand, is more creative. There still are technics (including “stealing” ideas) mastering which you’ll be able to do beautiful things, but at the same time UI gives much more room for creativity.

Conclusions

Disclaimer - yes, there are different kinds of projects. In the case of IaaS, PaaS, IoT, etc, there are no frontends immediately, so there is no design. But I’m talking about the apps that are built for a vast amount of non-technical users.

When working on a project we get used to it. If you are using something every day you just know it. Including odd parts. Because of that, after some time, you stop noticing the odd parts, and your ability to come up with usability improvement ideas is close to zero. So, again, - it’s very very important to ask for feedback from your users.