Article summary
Designers are more valuable to software product development efforts than programmers. Designers will continue to fuel and shape innovative product development efforts as programmers fall by the wayside as a commodity to be cost managed.
Web and mobile application distribution driven by lean development practices are allowing businesses to prototype and iterate on concepts faster than ever before. The growing integration of design thinking in the business world is bringing designers closer to the business front.
- Design lights a torch of vision in the fog of ambiguity at every layer of a software product development project.
- It is the spirit of design that is alive in the entrepreneur who perceives a market need, validates that need and tests a concept.
- Design is the bridge between market research and product definition.
- Design is what makes interfaces usable and intuitive to their intended users.
- Design is what directs visual style guidelines that provide clarity for expected usage patterns.
- Design motivates customers to engage in behaviors congruent with business success and ensures that value is created on both sides of the equation.
Ultimately, design is what drives business rules and software requirements.
Software allows for the automation of business rules and provides a platform for the pleasurable and immediate consumption of products and services.
The Role of Programmers
A programmer codifies the vision of designers into a technology platform that will deliver a product or service to end consumers.
Sadly, the programmer is stuck following the rule sets of two realms.
Programmers must satisfy the definition of the rules and standards defined by business thinkers and designers. Programmers know they will probably get the vision wrong. Programmers sometimes blame designers and business stakeholders for not being able to define the requirements concretely enough to succeed. Agile methodologies helped programmers communicate with designers and stakeholders more frequently to make sure the product didn’t drift too much from the vision. Practices like behavior driven development help programmers prove to stakeholders that they are satisfying the specified rules.
Programmers must also satisfy the rules of the technology platform they are using to codify the product vision. Designers have created the language and development toolset used by programmers. Any time a programmer makes a mistake, the development environment will remind them that they have not followed the rules. Progress is halted until the programmer determines what rules have been broken and realigns their approach.
I believe that the spirit of design is alive in everyone. It is human nature to innovate and create solutions in response to need.
I suspect any individual’s level of creative productivity is correlated with their self perspective and environment. I also think that self perspective can change through a reevaluation of one’s identity and purpose, including their profession or career.
Can a programmer be a designer?
I believe they can. I like to call programmers who bring a design mindset to their work, “developers” or “makers.”
- Developers apply their design skills in the product definition and technical realms.
- I commonly see developers prefer to focus their design capabilities in the technical domain.
- Developers strive for sustainable and testable application architectures.
- Developers create tooling and automation to minimize repetitive and mundane coding tasks.
- Developers create languages, libraries and helper code that makes their coding more expressive and aligned with an application’s domain.
- Developers also apply themselves in the product definition process.
Developers use agile development practices to help hone the product vision incrementally and advise stakeholders of the best path forward given financial and time constraints. Developers understand overarching business goals and help bring aligned form to detailed product behavior over the course of a project.
Skilled developers are very valuable because they can apply their design skills across both the product and technical realms while they bring the product to life in code.
I believe that many developers don’t view themselves as designers in the broader context of product development teams.
I suspect developers confuse designers as artists and that pushes developers’ creativity more strongly into the technical realm.
Perhaps there is a correlation of personality type to the preference or comfort with solving technical problems versus solving human-centered problems. The design possibilities in the technical realm are more definitive than the high degree of ambiguity present in activities like ethnography.
I encourage developers to view user-centered design as a systematic process that includes readily learnable practices. Design is not art or magic.
With the exceptions of graphic design and specialized design tools expertise, there are many parts of the design process that developers can easily participate in.
Developers are great at detailed observation, organization and pattern recognition. That makes developers very capable to participate in:
- research and needs analysis
- product vision building and feature definition
- product roadmaps and release planning
- customer experience strategies
- business modeling
- context scenarios and storyboarding
- information architecture and content design
- application flow mapping, navigation and interaction design
I believe developers can grow their value by growing their design skill sets.
Programmers who prefer to be given detailed requirements and push syntax into a terminal or prefer to isolate themselves from the broader product team will have decreasing value in the world of innovation and product development. Pure programming jobs will be outsourced to the lowest bidder because there is diminishing value in maintaining relationships that are not associated with growth or opportunity.
Are you a developer? If so, what are you doing to participate in your team’s design process? How are you growing your design skills?
When you say:
“I believe developers can grow their value by growing their design skill sets.”
Could (and/or should) it go the opposite direction as well? I feel like gaining programming knowledge after learning how to design is useful since you can know details about implementation and improve design based on that knowledge. I’ve worked with designers who have no idea how a design will be implemented and lots of it will need to change to work out.
> Could (and/or should) it go the opposite direction as well?
Absolutely.
Your observation is spot on David.
At Atomic, we strive to develop our specialized backgrounds and grow our abilities in the shared space of design process.
Drew recently wrote a post that describes how we work together:
https://spin.atomicobject.com/2011/09/16/poly-skilled-teams-deliver-products/
I agree completely with Shawn. There is another level of abstraction away from the specific skills of writing code that are extremely useful for designers and help create great software. For example, the ability to recognize and build patterns, simplify complex interactions, and work systematically toward a goal.
That kind of thinking builds substantial common language for developers and designers to collaborate on all aspects of a product.
What I’m wrestling with, is whether you can LEARN design, or if it’s just innate talent. I’d consider myself a developer, and I think my designs are clean and functional (not fancy). However, there’s a whole other world of design chops that I see from time-to-time, and I just don’t see myself being able to get to that visual level. And there we go again lumping designers in the same category as artists (I feel that’s not totally unfair anyway).
Thanks for your comment David.
I do think design practices can be learned.
Some of the practices I’ve listed are not tied to visual design in any way.
I’m hoping I can entice developers to explore and learn more about user-centered design practices so they can participate in product development more broadly and make better decisions when exercising their programming skills.
Here are links to a few books you might find interesting:
About Face 3: The Essentials of Interaction Design
The Elements of User Experience
Human-Centered Design Toolkit: An Open-Source Toolkit To Inspire New Solutions in the Developing World
Designing for Growth: A Design Thinking Toolkit for Managers
I couldn’t agree more but also I couldn’t hate your article more.
By saying “X is better than Y” you sure as hell will get a lot of clicks on your blog but truth be told: No product without either of those participants (and probably a lot more).
But the thing is not that designers are more valuable than programmers, the thing is that people that actually think about how to solve problems will always be more valuable than those who don’t. Call those people what you like: hackers, out-of-the-box-thinkers, leaders, …
What I really hate is that “Designer” implies something like UI-design or some graphical thingie – that may be my fault – but to me it falls in the same category as “Programming is an art” — I don’t want it to be an art, I want programming — the “good” programming (designing) — to be programming nothing more or less. I don’t need to be an artist or a physical doctor or a DevOp or Captain Buzz Lightyear (that would be tempting thou) or a whatever the hype is now.
I want to be good at what I do, and to achieve that I can’t sit in front of my computer and consider it the only problem in the world. I have to “steal” from other sciences and knowledge areas, combine stuff (and hopefully have the chance to some day create something that is genuine). I strongly believe that looking at other areas is the way to be better than the best expert that only knows his one and only field.
Thanks for the excellent feedback.
Obviously the title of the post is inflammatory and intended to get a conversation started.
I like your statement that “people that actually think about how to solve problems will always be more valuable than those who don’t.” That is absolutely true. Being able to connect a need to solution and then build the solution is of much greater value than just building what you are told to do without any insight into why.
I think it’s great when developers can think about how to solve the technical problems, meet end user needs and create business success.
Your last paragraph is great. I totally agree that “… looking at other areas is the way to be better than the best expert that only knows his one and only field.”
[…] https://spin.atomicobject.com/2012/01/24/designers-are-more-valuable-than-programmer/ Category(s): Design, Learning, Programming 9 things that motivate employees more than money […]
[…] https://spin.atomicobject.com/2012/01/24/designers-are-more-valuable-than-programmer/ Category(s): Design, Learning, Programming 9 things that motivate employees more than money […]
Designers can do nothing without the countless layers of abstraction that we engineers (and no, designers are not engineers) have built for them. Are they important? Of course. More important than good engineers? No way in hell. Get a grip on reality bud.
Thanks for your comment Ed.
I have a grip on reality and I think you do too.
I agree with your comment.
The point of my post is encourage engineers to broaden their creative perspective and abilities. Engineers have a lot to offer and shouldn’t allow themselves to be painted into a corner.
Alright… well now I feel like a jerk after your gracious response. :)
I don’t actually disagree with much in your article aside from that statement that one is more important than the other. I think that both are important, but there are all kinds of engineers. Don’t forget that the vast majority of the software in existence today does not even have a UI.
This software is extremely important and, even if those who write it (myself included) don’t have a lick of “design sense”, we make it possible for everyone else to create great things on the back of our (highly technical) work.
I’m not a design guy. I work with a few of them and they are great at what they do. However, they are not great at what I do. They don’t understand the low level mechanics of what they are doing 99% of the time, but they don’t have to, I do. I wouldn’t want them debugging and changing the code that I maintain and likewise they would probably not appreciate me changing around their UI.
Anyway, it was the title that irked me the most.
Linkbait titles do generate more discussion, just the way of life :)
*ponders what the next “____ is dead” post from HN will be*
True enough David :)
It’s a bummer that a year of thoughtful and practical titles have received very little feedback or engagement.
I’m really passionate about building balanced teams and having developers and designers find common ground.
I’m happy to see people engaged and sharing their thoughts.
Thanks Ed.
The title is irksome. I’m sorry for that.
I wanted to get the juices flowing and have people dig into what I was trying to get across.
It sounds like you are working on some very interesting projects.
I love working on headless software or software that communicates devices.
Even in the realm of software having no UI, I think developers are using their “design” skills.
It’s not trivial to provide flexible programmatic interfaces that allow others to build upon your work. In some ways, your programmatic interface design choices may be more difficult than creating a slick UI for a specific task because you may not know exactly how your end product may be extended.
Good points – however people also need to realize that just because they can’t program, does not automatically make them a designer… Everywhere I go, I hear constantly “oh I am a product guy”. No you aren’t. You are someone with ideas. Someone in a big sea of people with ideas,
Thanks Mike.
I agree with your stance on the pure idea people.
Derek Sivers wrote a great post on the value of ideas and how they are multiplied by execution.
I do think that great product people are hard to come by. Great product managers commonly have a background as a maker/doer or in sales.
No matter a product manager’s background, they have their heads in many worlds:
* business sponsors
* sales and marketing team
* product development team
* customers
* project management
* suppliers and vendors
Great product managers balance the abilities, needs and constraints of these worlds to hopefully ship desirable and profitable products, on time and on budget.
I’ve really enjoyed reading Rich Mironov’s blog and the thinking of Enthiosys. Both sites are excellent product management resources.
Design? That term is unfortunately so vague and overloaded that it basically eschews meaning. The listed processes for developers to participate in are all over the place, from what is sometimes referred to as “product management” to interaction design and user experience.
Although I agree that it would be beneficial for developers to participate in these processes, I am getting somewhat annoyed by the use of the word “design” to mean anything and nothing at all ever since Apple’s and Steve Job’s rise. (“Let’s create a design-centric company”… what does that even mean).
Thanks Mark.
I agree that the term “design” is horribly overloaded.
I suspect that many developers think that design is mostly related to visual design and information architecture and I’d like broaden that perspective.
I agree that the listed processes are all over the place. The list is intentionally broad and definitely not exhaustive. I wanted to include a broad variety to drive home the point that there many areas that developers can use their strengths outside of writing code.
I agree that it’s annoying to have design mean anything and nothing. That’s why I wanted to provide a variety of specific processes that might sound appealing for developers to check out. Yes, most of the processes fall under the greater, vague, umbrella of design :)
I think the statement “let’s start a design centric company” means you should run out of the door! The statement is empty and foolish.
At Atomic, we’ve been working since 2007 to integrate specific design practices (interaction design, information architecture, visual design) into our agile development process. The transformation has been hard and we still see new plateaus.
I don’t think someone can just start a design centric company that builds and ships great products. It takes hard work to grow incrementally and build balanced teams and processes honed around members’ strengths (not magic-bullet tools, magic processes or design/dev geniuses).
[…] Shawn recently posted, design isn’t art or even a mystery. It’s a lot of hard work, but there is a process […]
[…] « Designers are more valuable than programmers Mining our passions for the “why” By Jason Porritt | Published: January 25, 2012 […]
Wow, one of the most pretentious and insulting articles I’ve read in a long time, I’d hate to be a developer working for you guys.
Hi Rick,
Please read the article again. I would be disappointed to have you think that Atomic doesn’t value our developers.
In fact, we value passionate makers coming from both programming and design backgrounds.
I intentionally positioned the intro of the blog post to get programmers upset and wonder why I’d make such a crazy claim.
I go on to praise the effort, talents and design capabilities of developers to get developers acknowledging they are valuable and do practice design.
I then encourage developers to use their design skills from a broadened perspective.
Atomic has a strong development culture. We only employed developers from 2001 to 2009.
We have been trying to broaden our product development skills outside of programming since 2007.
The growth we’ve had internally is valuable and I think any programmer can benefit from growing a balanced team perspective.
Ok, I read the article again. I think I’m going to add condescending to the list of adjectives that describe this article.
Rick,
You seem to be preoccupied with the intentional inflammatory slant of the article that was used as a marketing hook and to drive engagement.
Did you miss the ultimate line of praise? “Skilled developers are very valuable because they can apply their design skills across both the product and technical realms while they bring the product to life in code.”
Developers are uniquely positioned to grow into either product or technical design after mastering their programming craft.
I’m encouraging developers to grow their breadth and increase their value.
I’m sorry if my message doesn’t connect with you.
I hoped people would have a good laugh and then focus on the very practical point.
Thanks for engaging though. It’s great to have people care deeply and speak up.
“Developers are uniquely positioned to grow into either product or technical design after mastering their programming craft.”
I’m not sure how you can say things like that and claim that you are not being condescending.
Herp derp. This guy needs to study logical fallacies. You can tell he’s not a very good programmer.
Hi Kamek437.
The intent of my post is to get developers thinking about how they currently apply their design skills to programming and to motivate them to broaden their skills into other important aspects of product development.
I was not presenting a formal, logical argument to justify the ridiculous title of the post.
I don’t clearly see a connection between the content of my post and your assessment of my logic and programming skills.
I suspect my post made you upset because you misunderstood the point and that motivated you to leave insulting remarks.
If you understand and agree with the point I’m conveying, I’m happy to include any clarifying contributions you’d like to provide.
There seems to be a strong ongoing desire to de-value the practice of software development, to always seek some role besides “programmer” to put in the spotlight role in the software development process. The overall message is always the same: Programmers are interchangeable commodities, with no value. The real action happens in the [insert other role (business analyst, designer, architect, project manager, etc.) here] space. An article like this might have appeared at some point with all occurrences of “Designer” and “Design” replaced with “Architect” and “Architecture”. The message would have been the same.
Perhaps I misunderstand what you’re calling a “programmer”. If you’re talking about someone who merely takes someone’s vision and types it in, then okay. That’s a dying role. But is there anyone who actually does that anymore?
In any case, my role is to design and *build* the functioning software that customers actually pay for and use. I can do that without the help and “creative vision” of a designer. Can you put your creative vision on the market and make money from it without software developers? No? Ok.
Thanks for sharing your thoughts Kelly.
I’m not trying to devalue the practice of software development. Atomic Object has been a successful software development consultancy since 2001. We are currently opening a new office. I’m betting my future happiness on the strength and value of premier software development services.
Your role exemplifies what I am asking programmers to do. You don’t need a designer’s help because you are clearly satisfying that role.
I’m asking programmers to do more than just build software. I’m encouraging programmers to build skills that help them connect their efforts to end users and how the software will be marketed and sold.
I do think there are many programmers who are insulated from end user needs and the business goals of projects. Lot’s of programmers (mostly in corporate IT) still have to live under the veto power of architects.
Design and Business are getting increasingly cozy (just glance at the last year of Inc. and HBR). Business stakeholders rarely understand or recognize developers’ technical creativity and design skills.
I want developers to apply their design skills to the overarching product design process to stay relevant and connected.
My post asked readers what they are doing to participate in the design process and how they are growing their design skills. Would you be willing to share how you have grown as a designer and why you don’t need a design specialist’s help with your projects? I think you might be able to share some great insights.
see any erp,they sold eventhough the software design is crap.
Thanks for commenting hafizan.
Your comment rings true from the UI and VizD standpoint.
I suspect that ERP products focus their design efforts in the market research and product management realms so they build the right features to position the software well in the market.
It goes to show that you can underperform when you solve specialized problems in an underserved market.
I think the stickiness of ERP systems would prevent most companies from considering a switch if a competitor emerged with differentiating features and an excellent end user experience. ERP migrations can shut a business down.
If anyone reading this works on an ERP product, please share your experience.
[…] Shawn recently posted, design isn’t art or even a mystery. It’s a lot of hard work, but there is a process […]
[…] mieltä on mainiota Atomic Spin -blogia kirjoittava Shawn Crowley, joka esittää erään viimeisimmän kirjoituksensa otsikossa ykskantaan designerien olevan ohjelmoijia arvokkaampia. Hetki – miten tämä on […]
Wow, well, that’s one way to generate talk. But I was happy that you at least qualified your inflammatory assertions by specifying mobile and web development.
However, I take exception with your following statement that, “Designers have created the language and development toolset used by programmers.” Let’s take any modern UI SDK out there: WPF, Silverlight, iOS, Android, et al. Sure, the designer may say how UI elements should look and behave, but it’s the computer scientist – the programmer – that writes the underlying framework that allows for the most efficient and performance-oriented implementation of visual application development.
What does a designer know about the best way to lay out a graphical hierarchy? Or how best to manipulate UI objects? Or how best to design the SDK for maximum use and reuse value? Or the best garbage collecting strategy? (I can go on and on.) These are core programming disciplines that are the heart of any worthwhile SDK.
In fact, if you allow me my own inflammatory comment, I would say that designers have only benefited from the emergence of these toolkits while contributing little to nothing to their creation.
[…] Shawn, a colleague, recently posted, design isn’t art or even a mystery. It’s a lot of hard work, but there is a process that good […]
The irony is that despite of low monetary inputs; a software development company can earn high monetary gains and maintain a good reputation along side.
Have you ever created anything in code? It is a creative process in itself. There are 100 ways to tackle the same problem.
As a manager who overseas both programmers and designers, a designer is much easier to outsource for the cheaper price.
A great design is a commodity.
A great design that performs well at completing business goals and has the right conversion metrics, is not a commodity.
But then what designers actually go through the trouble and do A/B tests on their design to squeeze the most business effectiveness out of their creations? Very little. And if they do they are going to rely on developers to program a testing process for this.
Designer’s Role: Make me something that looks amazing in Photoshop/Illustrator
Developer’s Role: Everything else.
Thanks for you comment Sean.
I have a computer science undergraduate degree and I’ve written code professionally for years. I agree there are many creative liberties when it comes to the design of application architecture. Atomic prides itself on patterns and code organization that lends themselves to testability.
Your description of outsourcing design leads me to suspect that you have a narrow understanding of designers and the design profession. I suspect you might think of outsourcing design as outsourcing visual design.
I agree with you that, “A great design that performs well at completing business goals and has the right conversion metrics is not a commodity.” That’s why designers who collaborate well with business stakeholders and developers are so valuable. It’s also why developers who can help design user experiences that align with business goals are so valuable.
You ask, “… what designers actually go through the trouble and do A/B tests on their design to squeeze the most business effectiveness out of their creations?” I believe the good ones do. The designers I work with at Atomic do. The designers I interact with at Balanced Team get togethers do.
All of the designers at Atomic also pair with developers and are great at CSS, HTML and some JavaScript.
If you manage designers and believe their role is only produce graphic design artifacts in Adobe tools, you have a responsibility to educate yourself about the broader field of design and make a better work environment for your people. Doing so will create more opportunities for your company’s success.
I suggest you start your journey of design education by reading Kedron’s blog post design 101. I’m happy to get you more resources or answer any questions you may have about design. Feel free to email at crowley @ atomicobject.com