On Being A Designer And A Developer: Not Quite Unicorn Rare
diogenes.squarespace.com
diogenes.squarespace.com
What's actually happening here is that many people now erroneously use the word "design" to mean "visual design in the tradition of waterfall-centric, industrial graphic design where ideation and production are separate," which in the context of software is extremely ambiguous, anyway, since it could refer to illustration, user experience design, graphic design, information architecture, and plenty of other things.
Yes, there are specializations. But the stereotypes of technologically illiterate "designers" and neckbeard, tasteless "developers" are outdated, though unfortunately still pervasive in the industry. There's no reason that anyone identifying as a "designer" can't gain a deep understanding of modern web or native development technologies and environments. There's no reason that someone identifying as a "developer" can't learn about "design" and the creative process.
And vice versa.
But many people have a narrow view on _design_.
They think of it as something graphical. Like deciding what something should look like. So a software engineer won't call himself a software designer. It just sounds like he makes wireframes all the day and won't programm one line of code.
So, you could call me a designer. A poorly skilled designer. I find most developers, if they even do design at all, it is at a similar level as me. And some designers do a little coding but they tend to find the code rather tedious and boring.
Not sure what my point is except that I do think it is a rare creature who is excellent at both - regardless of what this article implies. They are both tough skills to master and generally require focusing on one or the other.
I think it's a new age, where the stereotypes of designers being afraid to read/pore over code are gone. Code is becoming more and more commonplace. Almost everyone at my university fulfills their 2 classes of foreign language by taking 2 classes of CS (you have to do one or the other), and one of those classes is usually an HTML/JS variant. I also believe that in this new age, making ugly but functional software has gone by the wayside too. People are utilizing software ALL DAY because of smartphones now - where the bar for great visual design has been raised so much higher due to the big name brands like FB and Twitter investing so much in great products. Because of this, software engineers that have (even a small amount of) front end work to accomplish are forced to make more conscious visual design considerations than they have in the past. And this is a good thing.
Just as developers specialize in different fields, so do designers. And designers...don't really need to code. Its not that they can't, they just don't have time to. Its more likely that the programmer lacks design resources and must make decisions on their own. And ya, those decisions will suck until we've made them a few times.
Most apps on the app store are crappily designed; the ones that are well designed had enough money behind them to hire a designer.
The thing is, as a creative individual, I don't pigeonhole myself as a "developer" or a "designer." On some projects, the majority of coding is handled by someone else and I slip into frontend dev and graphic design roles, and product vision. In others, I'll do more backend stuff as I'm the most competent person on that project. And in others I'll do the whole shabang, because it's my project and mine alone.
"And ya, those decisions will suck until we've made them a few times."
You're right, but that's with everything. Practice, and learn why what you you've made/done isn't top-notch and then think about how to get it there the next time. Rinse, repeat.I think many are quite surprised about what professional IxDs do, design isn't all about pretty visuals. Wire frames, story boards, specifications...
> The thing is, as a creative individual, I don't pigeonhole myself as a "developer" or a "designer."
There is a lot of diversity in design, so pigeonholing isn't quite useful. Many people specialize vertically (development and design within a narrower product space). But I also don't think being a generalist is a good answer, as the practice/experience element is important and so shouldn't be diluted too much.
But anyway, don't confuse my saying I'm an adequate designer to mean that I have no taste or that I produce fugly apps. Nor am I rotting away in an ancient IT department with no clue about the current state of software development. I work on a team & we all have our own specialties. I need to have rudimentary design skills, but it would usually be a waste of resources for me to get overly involved in the actual graphic design.
The problem is that one person cannot possibly learn about everything. One has to make choices. If you spend time learning graphical design rules, you cannot use that time to learn some new algorithm, or how to do business, or some other thing life asks of you. The idea that everyone can be a jack of all trades is equally misguided. I agree that learning everything around your trade up to a certain level is a good idea (to have a clue what people are talking about), but people that specialize in an area tend to underestimate how much time it took them to become experienced in that area, and trivialize how easy others can learn to be adept in their area of expertise.
For what it is worth, in my misspent youth, I started learning about design in elementary school and started learning about development early in high school. I do believe you are correct, but perhaps underestimate just how much time is at one's disposal.
My advice for any developer who wants to do their own start-up is - once you have reached a good standard - to forget honing your development skills and start learning to design.
Learning another programming language or mastering another object orientated design pattern does not bring you much closer to being able create a product yourself. Learning an entirely new but relevant skill like design does.
I'd leave design for last and advise people to learn the other skills ("other" means "skills they don't already have", so development for market-people, marketing for developers, etc) first.
It's like building a working memory of design that you can pull from when you wish to be creative. Kind of like when you learn to code, you need to look at code examples and you need to eventually write it yourself.
I'm pretty good at telling if a design is good or not, but I can't for the life of me create my own. I just get lost in the space of possibilities, or don't consider alternatives an experienced designer would.
This is painfully evident in the WordPress themes. Gripes about WP's code aside, the themes are generally poorly developed and usually rely on hacked together code instead of utilizing what the WP core gives you.
I made a sizable piece of my freelance income in the past few years fixing those themes.
Edit: This is probably caused by designers trying to hack together a theme using spaghetti PHP more than anything else. I've used several of the admin templates for my own projects as well as client work and the code there rarely has any glaring issues.
In practice, however, I've noticed 3 things: 1. You're best at what you do, so if you want to do both, find time for both. 2. Most managers I've worked with take design for granted and will think of you as a programmer if you can code, or a designer if you can't. 3. You can't do both at peak potential at the same time -- there's a designer mindset and a developer mindset. Actually this reminds me of DevOps as well, which I've gotten into recently. I'd also point to positions like "Software Developer in Test" as another example of this interdisciplinary work. Actually I'd probably try to poke fingers at anybody saying that IT is specialized (as in the comments here) since if anything, IT is also more generalized than ever before, given how many different ways there are to solve problems and how varied technology is today, in use.
From my childhood on, I was playing around with electrical circuits. It was just a game for me to switch things on and off etc.
Then I got my shiny new PC with programs like PaintShop Pro on it. I wasn't bored for a moment and played with it for hours without interruption. Although I had no classical art techniques mastered, I could digitally create all what I wanted.
Later I also studied business administration to keep everything in balance.
When I started working, I didn't fit anywhere with my skills. I had to choose and nobody saw the added value of combining disciplines.
Common wisdom was that it was impossible that there could exist generalising specialists. If I told someone that I had the knowledge in all three aspects, then people casted doubt and began trying to convince me that it isn't possible.
Currently the combination of my skills are very useful.
I think it is the same with developer and designer. A talented person would be able to do both. However, you are not going to be able to do both on a world class basis. At least for developers, it seems the top developers are 10x better than an average developer. There may be something similar for designers, I don't know. Hiring a world class developer and a world class designer is going to make better sense than hiring 2 people who do a bit of both.
It seems everything is becoming more specialized. In IT, we are now at the point where you can't be a "generalist" developer-designer but need to specialize in one or the other to be productive.
If this is something of interest to you, aim a little higher.
Clearly, the difficult in becoming a designer and a developer at the same time is similar to that of obtaining Nobel Prizes in Physics and Chemistry.
The tools have made it such that it's now much, much easier to get enough competence at both to ship profitable product but what it hasn't done is made any easier the essential complexity of both design and engineering.
To me, it actually seems absurd to claim that people can only be great in one thing.
Just because I'm a great developer doesn't mean it's the only thing I can be great in. I'm learning to be a great marketer as well, and so far it hasn't taken away from my programming skills.
Not sure why, just an interesting anecdote. I suspect different types of thinking are required for each, illustration is quite a bit closer to "art".
But that raises the question of how do we even begin to measure greatness? On the developer side, is a programmer who can pump out reasonably bug-free CRUD apps with speed a good programmer, or does it take someone who can implement a Helmholtz machine on a microcontroller to be good programmer? Perhaps you have to invent brand new CS concepts to achieve greatness? Or maybe the aforementioned ability to write maintainable code is what defines a good programmer? Something else entirely? Consider similar parallels for what defines a great designer.
As far as the article is concerned, a great developer or designer seems to be someone who is good enough to hire. That makes things easier to prove. With that said, most people working in industry, whether they have cross-domain skills or not, are mediocre at best, but they are still exceedingly good when compared to the general public.
The real problem is in thinking that "designer" and "developer" are things. They're not. They're a massive collection of skills, techniques, practices, etc. Two groupings of which we've drawn arbitrary circles around and applied the labels "designer" and "developer" too.
Those labels aren't real - we made them up. We can draw different circles around different groups of skills.
If we want to.
Memo Atken is one, http://memo.tv/ John Maeda etc.
The problem is that people confound "design" with "artistic styling". Real design is at its essence a left-brain activity - whereas successful art evokes emotion, successful design communicates a message. The practice of design is about communicating something to a group of people, in a way that is repeatable and quantifiable, it should be more science than art.
The basic tenets of design are quite simple, anyone can pick it up. I've tried convincing the developers around me to give it a go, but the most common response has been "I'm a techie, I won't be good at art, thus I won't even try". The same kind of thinking that causes the imbalance of women in STEM fields. We should all try to broaden our horizons, I think many developers would be surprised at their design skills if they could only break through their bubble.
Design is about communication, and science invariably involves design, but they aren't otherwise very equivalent. Nor is design equal to art, though some art activities involve design and vice versa.
As a researcher, I've practiced much more design than development, and would definitely go the IxD path rather than the SDE path if I ever left research. I've never felt like I was actually doing science.
Where does "great developer" sit. Can you have an individual who is genius level at operations, scaling, databases, machine learning, front-end development, game AI, automated testing, etc. etc?
Nobody, or only a very, very, few extraordinarily talented individuals, are great at everything in development. Ditto for design. People have preferences and specialities.
Why not pick from both baskets?
Design and development are both complicated. However, in some places (e.g. figuring out what people need, requirements gathering, etc.) they are complicated in the same kind of way. In other places (spotting patterns, simplifications, etc.) they involve similar sorts of skills.
The real problem is with the labels "designer" and "developer". They're not "real" things. They're reifications. They're arbitrary labels we apply to certain communities of practices.
I'm very happy in my career and skillset - which involves chunks from the dev camp and chunks from the design camp. I'm not a unicorn. I don't know everything. My visual design skills are pretty lousy for example. But I am expert in some things in both design and development. Like the OP I find that there is often a synergy between those skill sets. Some bits from my "design" world make me a much more effective developer. Some bits from my "developer" world make me a much more effective designer.
The split between the domains is a false one IMHO - and fortunately many more folk seem to be realising that.
Pretty much at "person who has spent the same amount of time at acquiring skills as the 'great designer' has at theirs".
I have been programming in one way or another for 32 years - all the time basically building creative programs, UIs, programs that help me make music or do graphics and now I don't need to program those - I can concentrate on what my business needs.
People often mix up design and usability. Usability is something that is tangible and measurable, code is tangible but also highly creative output and good looking design is neither something that can be measured (expect in sales) or can be actually taught - its a factor of a good eye plus extreme amounts of practise.
I spend my spare time at the moment looking at design, architecture, or reading about chip design, and languages so that I can understand better how my code runs and how my environment around me is beautiful.
It takes an almost obsessive willingness to learn to be good at more than one thing at once but it is possible.
On the one hand you need a broad scope, an interest in everything that affects and inspires your work. But on the other you need the ability to focus and use all that information to create better work.
Compare it to the scope of an architect. An architect needs to be knowledgeable about all facets of building creation: from the limitations and innovations on the engineering side (a new type of concrete, etc), to art history and trends in design. Therefore, an architect's education is often much broader in scope than that of a programmer or designer.
Being in the center to me means to have good comprehension of the back-end, being comfortable with frameworks like Rails, having great front-end skills and on the design side having a good feel for user behaviour (UX facets).
Abstracting this, it depends where your rational comfort zone is (logic -> irrational). I have a good feel for user behaviour and can use my analytic skills on UX challenges, but also foresee and implement these on UX – dev challenges.
The biggest benefit of these center positions, is the ability to converse with both departments and to voice new insights and concepts which are often outside the scope of these departments.
Unfortunately the job market has little understanding of this profile. Department stake holders (CD or senior devs) are protective of their area and recruiters have a hard time profiling you. This might be anecdotal though, being from Europe, which is not so innovative as some areas in the US.
* who hasn't made it to the big time yet. I masquerade in the meantime as a researcher.
These days I'm working on putting together a language that supports live programming, trait inference, and has a rich typography experience that can transcend the smalltalk-ish IDE rutt we are stuck in.
Now, it really boils down to the type of feedback that you get as a designer is much different than the type of feedback that you get as a developer. Usually "it does not look right" vice "it does not work". One is aesthetic and the other is logical.
As a developer, I find that I usually only really trust decisions made by data (via A/B testing, or what have you). Otherwise, there is a quote paraphrased as "If we are going to use someone's opinion, it may as well be mine." (< not sure who said that originally).
I think that is the chasm between the two disciplines; really why someone can't be a great brain-surgeon and psychiatrist. As a self-characterized developer, I do not want to spend time arguing about the superiority of my artistic opinions. If this is a characteristic of the 'fixed' mindset that the article linked, well then.
Likewise, there are a lot of rules that apply to design. It's not simply about what something looks like — it's just as much about whether "it works" or not. If users can't find your "sign up" button, then no amount of engineering and optimizing the way it works will make click rates better.
Developers and designers both have to think about usability, and there are numerous overlapping technical and aesthetic considerations for both to arrive at the final product.
Interface patterns have their best use cases and the designer needs to pick the right one for each part of the design, making sure it works as a whole.
Typography is based on making text easily readable - there's always some leeway for opinionated typography but a designer shouldn't stray far from best practices.
While the exact colors in a palette can be opinionated, they too have characteristics that should be assessed without opinion. Are there enough contrast between the colours? What if the user is colorblind? Will people with low vision be able to see everything clearly, especially text? Are the colors appropriate for their intended use, for example a red hue for alert, green for success)?
"It does not look right" and "it does not work" are the kind of feedback you get from people who don't know the inner logics of a design. Feedback from an experienced designer might not mention aesthetics at all.
As someone who both designs and codes, your premise is uninformed and inaccurate.
Like design, there are definite development trends: some based on data and a lot based on emotion and feeling/herd mentality.
"World class" to me means the top 5-10 in the world, so is hardly worth talking about. I do believe you can easily be a good designer and 'X', where X may be Web developer, Systems Architect or PM. Even a programmer - occasionally.
I strongly recommend the reading of The Non Designer's Design Book[1]. It does a good job of explaining the basic principles of design (Contrast, Repetition, Alignment, Proximity) and constitutes a good start for those like me who have no prior formal education in design and want to learn how dissect a web page in its parts.
[1]http://books.google.it/books/about/The_Non_Designer_s_Design...
I urge all developers who haven't taken a look at Photoshop or Illustrator to at least learn your way around it enough to cut out images, do basic touch-up work, etc. You'll thank yourself for it, and you'll be a better coder in the end.
People use "designer" as a synonym of "graphical designer" or "photoshop pilot" only, when the design discipline is present in anything human-made.
A great designer needs to be able to foresee the impact his/her work will have on the lives, perceptions, and interactions of real people.
There are enough easy third party tools to allow anyone with the willpower to be passable at both.
Examples of masterworks of design and development created by one person are rare.
Design has always been a subset of a craft. I think when this changed was when every fucking celebrity would start calling them self clothing designers without ever been using a sewing machine. So they change their own title from some kind of manager to DESIGNER because it sounded cool...
And now all fucking hipsters think they can be designers without knowing shit about the craft in the field they are working in...