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?