Not long after getting my graphic design degree (20 years ago) I started coding. It wasn't easy to learn at first but I think knowing a bit about design helped me learn to code. And knowing a little bit about coding helped me improve at design.
I think there are two distinct challenges that stop designers from learning development and stop developers from learning design.
1. Changing Mental Gear Takes Time & Energy
If you're a developer you'll be aware that thinking about the application architecture and writing out a specific function requires quite different thinking. If you try and multitask between architecture and writing a util function you'll notice you do both quite badly. It takes a bit of time to shift mental gear between the two and we're often aren't even aware why we're so bad and dropping one task and picking up another so quickly.
Another example developers might be familiar with: if you are writing code and someone taps you on the shoulder and tries to have a conversation, it often doesn't work well. Developers are often considered 'anti-social'. When really, it's just difficult to be polite to someone when every slot of your working memory is still holding onto part of an algorithm.
If you're a designer you might be more familiar with the difficulty of switching between thinking of a user journey and getting the padding just right on a button. You can't see the big picture and the small details at the same time, but you also can't quickly switch between the two. We kinda know this instinctively so we design the components as a different task to the wireframes.
If you try and switch from design to development or vicer-vercer, you'll find it really hard and it won't go well. Maybe do design on different days of the week to development.
And if you have to do some calls... do them on a design day :)
2. The Definition of Done is Completely Different
The common answer to the question "can someone be a designer and developer" is to point out that they're both problem-solving. While true, they're very different kinds of problems.
Writing code is a puzzle. It's like sudoku, if you put all the numbers in the correct place you can see it's done and you get a nice satisfying sense of completion. Design is a mystery. You're confident it was Professor Plum in the library with the wrench, but you never know for sure. There's never a satisfying sense of completion with design.
If your code improves and the web page load time by 0.3 seconds that's improved the website. If your average users can find where to click 0.3 seconds faster, it's not necessarily better because there are too many other variables that have changed, how do they feel when they're using it etc... the idea users want everything fast is often a myth created by developers who are treating design as a puzzle problem.
I think developers don't like to design because it's uncomfortable to never get told if you were correct or not, it's like playing a game and never getting the score at the end. Or even told that it is the end. And maybe designers don't like seeing the score you get at the end of a puzzle problem, then you can always assume you won!
I think it would benefit everyone to be a little uncomfortable and try the other kind of problem-solving. In my personal experience, it's not just possible to be a designer and a developer, it's better to be a designer and developer. You just need to know they're different kinds of problems that require different kinds of thinking and that it takes time to shift mental gears.
I agree, it's better to be a designer and developer, but unfortunately, very few people can do that. So, for a successful team, the ability to shift mental gears is essential.
I love the design part when I am building a site. Is where all my time goes actually, tweaking here and there...
Identity is what you are. You can be whatever the hell you want. These skills are complementary just like colors. When you build empathy, you start to understand more solutions to the problems you face.
Hi Rob,
I agree that being a designer and a developer is possible and preferable. However I don't think the biggest obstacle is shifting mental gears.
Let's say we compare it to sprinting versus long distance running. Yes definitely many athletes can do both and some of them can do both pretty well. But none of them can be best in class at both.
The real question is being able to find that line of diminishing returns. The same goes for developing and marketing or developing and most anything. There is some point, much further out than most think, at which it makes more sense to find a best in class alternative to yourself.
Agreed. you're probably not going to be best in class at two things or realistically at any things and you'll normally have to hire if you need the best of the best. I specialise in dev work now (according to my resume, always be a specialist on your resume, right!)
I did get kinda into running during the lockdown. Every plan I saw to improve your running distance involves doing sprints once a week. Every plan I saw to improve your speed involved doing endurance once a week. I guess the plans might be wrong, but they all say if you want to be a best in class runner, you need to mix up your training.