Craig MillerUX/UI Designer


My process incorporates the typical UX steps of Exploration, Design, Validation and Development. In many cases, I don't have the opportunity to complete all the steps for a given project. For some, I've carried out general research because the opportunity has presented itself, and it's not tied to a specific project. For others, I was brought in to validate a product that has already been developed. Often in Agile development when we're simply adding a feature to a given project, there isn't time or budget to carry out a full user study. Rather, we take what we've learned in "offline" research along with feedback from subject matter experts to guide the design.


In my experience, the exploration approach depends on the type of project. New or stand-alone projects typically allot enough time during "Sprint 0" to carry out traditional research tasks. Before conducting research, I make sure we establish some goals which will direct the collection of data. For example, we had one project where we wanted to replace an existing Windows application with a web application. We already had a solid understanding on what the application needed to do and the user's general workflow. But we heard in the field that the customer was experiencing issues that were causing friction to their operations. So, the focus of the research project was to understand the customer's pain points and ensure that we were addressing them in the new project.

For existing products where features are being enhanced or adding, there is generally not enough time between requirements gathering and implementation. In this situation, I draw from whatever resources are available such as customer-facing service engineers, support team members, and findings from previous research activities. Using these sources of information, I make informed design decisions that can be followed up by validation activities.

I've used the following approaches to research customer/user needs.

Once research has been completed, the observations, notes, and feedback are collected and organized via affinity diagrams to instruct in the creation of journey maps, scenario diagrams, and persona development. This information is presented either formally or informally as the customer/user portion of the requirements along with the business and technical ones. during my experience, this information was in the form of specifications -- functional specs and design specs. More recently, these requirements are incorporated into Agile stories.


New product or feature design takes as input the requirements defined earlier and outputs the result as workflow diagrams, wireframes, and/or mock-ups. The kind of output can depend on the experience of the team, the amount of time to spend on design, and the complexity of the project. I generally try to provide the highest fidelity mock-up possible to help development create the product as designed.

For new projects that chart unknown territory, I start with whiteboard sketches. Working with a cross-functional team, we try and work out how an application or process with flow. After several iterations, I develop wireframes to structure the parts of the application. In some cases, I flesh out these wireframes into medium fidelity click-through mock-ups and stop there. Otherwise, I skip the medium fidelity and go directly to the HTML mock-ups. In some cases, where the application is a non-web application, I've used Axure to create the mock-up or create a quick VB app in Visual Studio.


Validation occurs as part of both design and development. During design, validation ensures that the project stakeholders sign off on the design that it meets their requirements. Then there is the external validation which incorporates technical and tactical components. Technical validation ensures that the design works within the technical constraints and that it supports the workflow scenarios, min-max values, etc. The tactical review ensures that the design is understandable to its audience, its look-and-feel and terminology fits into the user's mental model of the application. Some validation can be conducted early in the design cycle. I have had the opportunity on some projects to incorporate the design into the product early enough to carry out usability testing. Since the front-end of the web application was separate enough from the back end, I could make incremental design changes between usability tests.


Development occurs after the design phase and my role is typically to consult with Engineering to clarify of the design or in some cases refactor the design to work around an unforeseen technical restraint. In cases where we could validate the production-version of the design, we may need to return to the design phase if there are issues or updated requirements needed change.

I am also involved in front-end development tasks such as implementing CSS, HTML, and in some cases, JavaScript tweaks to ensure that presentation side of the application meets design requirements.