Nick Stevens

  • ui developer
  • ux designer

Human-Centered Design

Desirability, Feasability and Viability Venn Diagram
Graphic Inspired by IDEO’s HCD Toolkit

By trade, I am a coder. I build web and mobile apps. But the process of getting from idea to app requires more than code. Creating a meaningful app is best achieved through a process called Human-Centered Design (HCD).

Human-Centered Design is a product design process that creates solutions that are desired, feasible and financially viable through a holistic consideration of user and business needs. HCD creates sustainable businesses because users are more loyal to products that respond to their needs, not just the needs of the business.

research

design

build

I practice HCD in three phases: research, design and build. These stages are iterative and should be repeated until a solution is achieved. The most effective HCD team is reasonably sized, multidisciplinary and highly collaborative. Every team member contributes at every stage. Though as a developer most of my responsibilities are in the build phase, I’ve practiced every phase of the process.

Research

Research is essential to designing solutions that meet the needs of the user and the business. The goal of this phase is to uncover actionable insights that can guide design.

Secondary research is great for understanding an industry or environment, but the most valuable insights come from primary research. Interviewing stakeholders and users can reveal the requirements or constraints of the final solution. Once research is complete, actionable insights are conveyed through one or more personas. Personas are a summary of the intended user’s behaviors, attitudes, needs and environment.

It’s incredibly important to manage personal bias and genuinely listen to user needs. Designing a meaningful solution can’t be done without a genuine understanding of the user.

Design

The design stage applies actionable insights learned in the research stage to create solutions that are desired, feasible and financially viable. Creating a meaningful solution requires paying strict attention to the needs of the user while balancing the scope, available resources and business requirements. A meaningful solution should not distract a user or impede their progress towards what they deem meaningful.

Depending on the stakeholders, audience and available resources the design phase can look very different with each project.

Example Deliverables
  • competitive analysis
  • business model canvas
  • key messages
  • content examples
  • flow charts
  • style guides
  • wireframes
  • style tiles
  • interface comps
  • systems diagrams
Areas of Consideration
  • business strategy
  • content strategy
  • visual branding
  • experience design
  • interface design
  • systems architecture

Build

After the design phase has produced one or many solutions, a prototype is built and the process returns to the research phase for testing. Or, if the solution has been vetted the product is built and released to be tested in the real world.

Design decisions are constantly made while coding. Just because the product is being built doesn’t mean that design is done. A developer who can recognize potential user experience fails is essential to reducing development time, or worse, avoiding the release of a bad product.

Early builds are often a clickable prototype using a tool such as Flinto or Invision. However, as a developer I prefer to move to code as soon as possible. Occasionally, I code a quick prototype with Bootstrap, but if a visual design language already exists I can quickly create a framework using custom tools and pre-built libraries from npm.

Web apps are built using HTML, CSS and JavaScript. For mobile apps I have used HTML, CSS and JavaScript in Phonegap, but I’ve recently been learning Objective-C, Swift and Xcode to build native iOS apps. I have experience with PHP for server-side code, but more recently I’ve been using Node.js. Everything I code is modular and semantic so that it can be reused and easily understood by other developers.