Creating a UX Workflow for a Business

UX Workflows are great to have for anyone doing UI/UX work as it can help set standards for design as well as create an environment for true user-centered design to help solve actual problems.

Why I Made a UX Workflow

As the Lead UX Designer at my company, I’m in charge of all UX related work that’s done for the entire product line up of the company. Seeing that as a potential blocker for myself due to the sheer amount of design work I would have to oversee, instilling a UX workflow across the product teams was a big goal of mine.

Introducing a UX workflow into a company that had never even heard of UX design until 2018 proved to be very difficult as explaining the process of UX can be difficult if others don’t understand the benefits behind UX. That was one of my major pitfalls in my goal to set up a UX workflow as I tended to assume that others held the same value for UX as I myself do.

What I Learned

I had to start at the ground level and learn to communicate the reasons why we should follow a UX workflow, to begin with, and explain the differences between a wireframe and a prototype. I also had to collaborate with a freshly minted Product team and fit the new UX workflow I created into their Kanban and scrum-based project structures.

What I learned in this process is that at the end of the day, UX will always have to balance the needs of stakeholders, product teams, and most importantly users.

UX fights for the user and a UX workflow can help companies make products that users actually want to use.

Overview

My plan with this post is to help others that are in the same boat as I was, trying to create a UX workflow for a company that doesn’t have one or is brand new, and go through the steps that ended up working for my unique situation. The end goal is that you take something away from those steps and apply it to your own process.

Step 1: Strategy

As a group, define the long term goals and strategy of the project at hand. Set priority for the project as well so UX can allow the appropriate time to the project needed to meet the requirements.

This helps UX understand the product team’s road-map for the project as well as align both teams on the goals of that project to ensure collaboration and users are at the core of each project.

Step 2: Research

Research allows UX to be able to properly identify and solve the problem that a product manager is trying to solve with the ask of the project. This helps make sure that UX is truly solving the problem from the start, reducing the amount of time to launch the new project.

Research takes many forms:

  • Competitive Analysis
  • User Research
  • User Feedback
  • Technical Documentation

All of these help UX find where the true pain points are which helps align the project more with a user-focused point of view which results in better adoption and user satisfaction when the project is complete.

Step 3: Analysis

With strategy and research, UX is able to thoroughly define the “what” and “why” of the project.

The “what” are the insights from collected data found during research. The “why” confirms the assumptions made during the initial ask of the project.

Proper strategy and research make sure that both teams are aligned on the project and that as a whole we’re solving the true problems that we’ve identified.

Step 4: Definition

Given the what and why of the project, UX takes that information and creates user stories or personas to base the designs created in the next phase off of.

This creates acceptance criteria for the designs to make sure we meet the requirements for the implementation of the project as well as user testing and validation.

We’re able to streamline design with the above outlined which allows us to understand all the aspects of the project that needs to be designed out.

Step 5: Design

Given all of the above, a UX Designer now knows what is required to fully implement the ask of the project. Things like what pages are required, what the layout should be based on, what kinds of actions a user needs to make, and what users will be using the project make the design phase much more efficient.

Depending on the maturity of the project the Designer will determine whether a low-fidelity wireframe or high-fidelity mock/prototype is required for the project.

The end product of this phase is what will be used for user testing and/or development implementation.

Step 6: Validate

Throughout the entire process above we try to fit in testing and validation wherever possible. This makes sure the project is always aligned with solving the end-users problems to create an enjoyable and desirable product.

What it looks like through the different phases:

  • Strategy: User feedback to ensure project ask is an actual issue
  • Research: User insights into current problems and pain points
  • Analysis: Framing the what and why in a manner that will properly solve the problems and pain points
  • Definition: Matching user personas/stories to real users to ensure proper definition of the design work required
  • Design: testing wireframes/mocks/prototypes to validate design direction

Designing User Interfaces with Figma

Figma is a well-known design and prototyping tool, kind of like Adobe XD, but it does some seriously awesome things.

Overview

At its core, Figma is a design tool that allows you to collaborate with other designers, stakeholders, and users in real-time. It’s fully web-based, meaning your projects go with you wherever you log into your Figma account. Not only can you design, but you can also fully prototype your designs into functional mocks.

Why should you use it?

In order to fully explain why I think others should use Figma, I think I should go over my background and experience with the product.

Throughout my career, I’ve primarily worked out of the Adobe Suite of applications. It’s widely known throughout the design industry and serves as the gold standard for design tools such as Photoshop and  Illustrator. While XD is awfully powerful, there are some things that don’t translate well to UX Designers that are working collaboratively on projects together in a team format.

One major flaw I find with XD is that while you can create your own design system and asset libraries, there’s no true way to work with other designers in real-time. If I make an update to the main design system file that my team pulls from, other designers can’t see that update until I save or let them know that it’s been updated.

While XD has a lot of functionality, it doesn’t bode well for modern design teams that work on the same project.

Ok, here’s why you really should use it.

Figma does everything I mentioned above about XD but does something XD really misses out on. Collaboration is at the soul of this application. Not only can I create design systems, but I can also share that system with other projects and have designers see those changes in real-time. You can share the design you working on, while you’re working on it, with other designers, stakeholders, or users with see-only access. Basically, it speeds up the design process an insurmountable amount.

The controls and shortcuts are second nature to fellow XD/Sketch users and allow you to do the same work you would do within XD right out of the box. It’s also free to start your own account with them so I urge you to tinker with the app if you have time. Of course, you have to pay to play if you really want to use it at an enterprise level, but some would say it’s still cheaper than XD making it pretty affordable.

One of the great things about Figma is that it is a standalone product. The Figma team is dedicated to only updating one application, unlike XD. I think this could be huge for the future of collaborative design teams.

Check it out

So if I’ve provided any sort of interest or you’re curious about the app in general, I implore you to check Figma out and let me know what you think!

Designing Complex Applications

As I’m getting involved with more complex design projects at my company, I researched how other UI/UX-ers are going about designing for large enterprise apps.

It’s Easy to Over Design

The more I find myself designing applications, the more I start to understand this famous quote:

It seems that perfection is attained not when there is nothing more to add, but when there is nothing more to remove.
– Antoine de Saint Exupery

When presented with a new project that has multiple purposes and performs complex tasks, it’s very easy to start designing things for every instance of the task that you feel is important. What you end up with is just that, things. Things that the user will be overwhelmed with and therefore remove any sort of value your app could possibly give to them.

So how does a designer go about designing a complex application with tons of functionality in a minimal, effective yet unique way?

Research. Research. RESEARCH!

After wondering about the projects on my agile board, I was overwhelmed by the mountain of possible screens I’d have to design for. I kept thinking to myself there has to be a way to go about designing huge enterprise apps in an efficient way. Alas, I was correct. Turns out that there’s plenty of articles out there from more experienced designers discussing this very topic.

Some of the main points I pulled from the article linked above are:

  • Come up with a simple, high-level user story that describes the purpose of the app.
  • Break down the high-level user story into smaller task sized stories
  • Eliminate user stories that don’t truly provide value to your users
  • Whiteboard task flows and watch the user stories start to gel

If you want to learn more about designing for complex apps here are some helpful articles:

 

Remaking Slack with Vue.js & Bootstrap

Recently, my company switched from Hipchat to Slack for our internal chat system. Unimpressed with the lack of a dark theme, I decided to make my own Slack.

The Result:

See the Pen Vue.js Message App | Chatty by Michael Lewallen (@michael-lewallen) on CodePen.

How it works

The main things I wanted to focus on for this little side project was to be able to add messages to different chats as well as let the user edit their information as well as the background color.

I figured Vue.js would be an easy way to implement a chat-like interface without access to a database to store and retrieve data from (although I plan on hooking up Firebase to the project in the future). So I set up a data structure that stores the users info, chat rooms as well as allowed the user to push their own chats to the chat rooms.

In order to help with getting the main elements styled without having to custom style everything I hooked up Bootstrap 4 to the project. It helps a lot to have helper classes already set up for you to make smaller design changes easier so you don’t have to write extra CSS.

Speaking of CSS and Vue let’s go over the stack I used for the project.

The Stack

To make this thing work I’ve got my main HTML template that Vue refers to on it’s initial load, CSS with Stylus as my pre-processor to help with auto-prefixing for browser support and of course Vue.js to work with the data and binding the user data to the project. I also have Font Awesome in there for the icons.

Overall, I’m pretty happy with the outcome after getting it to work in one (late) night! Let me know what you think of it or if you have your own chat like project!

Solving Layouts

UI/UX Design is built upon the visual hierarchy of how data or information is laid out and presented to a user. In order to fix even the most common design issues, your job as a UI/UX designer must first be to understand why the current design is an issue in the first place.

The Problem

Say you have a project where, over many sprints and development cycles, new features and feature requests have been added to an existing piece of software without any sort of design considerations, due to time constraints and/or lack of proper workflow. This is a common issue when dealing specifically with legacy applications.

The application, and unfortunately the user, are now overwhelmed with new data or information that looks to be a mix of different one-off ideas a developer had while taking care of a small bug or feature request.

As a UI/UX designer, you must now take all of this new information and data that’s been applied to a once fully consistent application, and seamlessly match the look and feel to make it appear as if it was designed that way from the start.

But, how do you do that?

The Workflow

Now that you’ve been presented with the issue, you’ve probably already started scribbling down some quick wireframes that pop into your head. Maybe you’ve already jumped into your favorite rapid prototyping or wireframing tool and started clicking away at possible layouts to remedy the issue.

Whatever your first step, run with it. Always trust your initial gut reaction, and see what comes out on paper. You’re a designer, so however you go about designing just remember, this is kind of what you’re good at!

Let’s say you’ve gone through a couple of iterations and ideas, yet something just isn’t sticking. You’re designing new layouts but nothing feels cohesive. There’s just an unbalanced feeling with the space available and all of the elements that need to fit in it.

This is completely normal, and almost to be expected if you haven’t considered one thing by now…

The Solution

We have a problem, maybe a couple of half-baked ideas on how to fix the problem, but how do we truly go about solving it?

Before you can fix something, you normally need some instructions on how and when things are supposed to be put together. This is the missing secret ingredient.

In order to start truly solving the UI/UX problem, you need to figure out the most important pieces of information the user is in need of—given what that page or layout is presenting. We can then make a list of key data points, ranked from highest to lowest importance, which allows us to build a layout for the information to be dealt with appropriately.

Find your problem. Start your workflow. Rank key data points.

BOOM! Problem solved.

My New, New Job

Last month I was given an opportunity to move to a new, internal focused, front end team called Creative Operatives as a UX Designer.

My New Responsibilities

As the principal UX Designer, I’m in charge of doing user research, wireframing, mock ups and prototyping for the companies new and current products. Focusing on providing a consistent and attractive user experience, I’m enjoying the change of focus from external customer design to internal software/web app based design.

While my main focus is on UI and UX, I’ve also been helping out on smaller front end development projects helping the team gain some traction with workload.

Currently my current tool set for designer consist of XD, Photoshop, Illustrator, Whimsical and Invision. Front end development is the basic HTML, CSS and JS stack, with a focus in Vue.js for our current framework.

My New Projects

In the past couple of months I’ve dug into all current Creative Operation projects to see if there was anything I could do to help the workflow or move things in the right direction.

Some of the projects I’ve been working on range from a dealer specials web app, a conditionally based content app, designing a new SRP for our platform websites and a new financing app for our users.

Looking forward to putting some new projects together to throw on the site.

Choosing a Career of Constant Learning

“In times of change learners inherit the earth; while the learned find themselves beautifully equipped to deal with a world that no longer exists.” –Eric Hoffer

This quote really sits with me as a Web Designer and Developer. Working in such a fast moving industry really makes me appreciate how much I actually find joy in learning.

If a designer or developer refuses to learn or progress with the industry, they unfortunately find themselves perfectly equipped to work in an industry that no longer cares for their skill set.

Working with many different designers and developers has taught me that most of the people who are passionate about their jobs are normally extremely passionate about learning.

Luxury Car Landing Page Design

As a fun project, my team was tasked with creating an interesting design related to cars that would make you want to buy something.

Naturally I went with my favorite car, the Jaguar F-Type, and created a luxury car landing page that would appeal more to high-end buyers. Things I wanted to include were an easier search form above the fold, an interactive trim slider that would allow users to cycle through multiple versions of the car, and a cleaner footer.

View my project below and let me know what you think!

Free Custom WordPress Slider

That’s right, a simple yet elegant and lightweight WordPress slider for FREE. Some DIY required.

No, there isn’t a sketchy download link for a plugin zip folder filled with questionable code. Yes, it really is going to be free – minus some elbow grease on your end – and best of all I’m going to show you how to set it up!

With all that said, I’m going to shed some light on the featured project slider you can find on my home page. Feel free to either use this snippet for your own project or better yet – fork it and make it better!

Let’s Get Started

For this slider/carousel I wanted something like Owl Carousel, but I wanted to build it myself. I also wanted something that was very specific in terms of functionality and super lightweight.

I set up this pen on CodePen to test out a couple ideas and to get the structure up and running. As you can see, it’s super simple, has no user controls and isn’t dynamic.

I’m essentially just making a list of images where each image is stacked on top of each other with a time delayed function cycling through classes to reveal each image.

Making it Dynamic

In order to get the ‘plain jane’ static version to work in my template, I had to create a counter in my main WP Query that would work in conjunction with the jQuery slider.

In the counter if/else statement I was able to to give the first dynamically pulled featured project a class of current starting the jQuery image slider I created earlier. The slider then takes care of looping through the projects pulled in from the WP Query.

Below is the PHP/HTML required in the template file of your choosing to be able to use it:

You can also reconfigure this WP Query to run through any other custom post types you may have set up or just normal posts. Some possibilities: staff slider, car slider, featured post slider, new real estate listings slider, testimonials, etc…

Pretty neat right? ¯\_(ツ)_/¯

Giving it Controls

To be able to loop through the projects that my WP Query pulls in, I used some jQuery CSS trickery to create some navigation arrows allowing you to go through the projects either forwards or backwards.

To do this, I created two global variables: counter and slideArray. The counter for keeping track of clicks on the navigation arrows and slideArray for getting the number of images in the slider.

Then I set up two functions rotateImages() and rotateImagesBack() that are attached to the right and left navigation arrows through a click function to initiate the functions.

Check out the jQuery below:

Making it Look Nice

Now that the HTML, PHP and jQuery are working together to make all of the moving parts orchestrated, it’s time to button up the slider with some CSS.

You can go about styling this however you want:

  • traditional image slider
  • slider like mine
  • testimonials/text slider
  • etc

To get the look that I have, copy the CSS below: