I’m a software developer and I’ve worked on over 40 different software projects over the last 12+ years and counting. Most of my experience with software development has never included a user interface (UI) designer or user experience (UX) designer on the project team. Over the last couple of years, I’ve had the opportunity to work on projects with designers and this has shown me that they are truly undervalued and underutilized. I personally believe that most software projects should have a dedicated designer that is on the team permanently. Let me explain why.
UI/UX Designers and Software Developers
Before we talk about why you should have a designer on your team, let’s first talk about what role they play from a high level. UI stands for user interface and is what the user sees when they look at your application. UX stands for user experience and defines the flow of the application as the user completes a task.
I have found throughout my career that software developers are confident that they have good enough skills when it comes to UI/UX design that they don’t feel that they need the help of a designer. Many clients have trouble seeing much value in paying for a dedicated designer on a team either. This sometimes leads to a rift or rivalry between software developers and designers.
I hope to show you that software developers working together with designers is advantageous for the team and the project as a whole.
Projects without a Designer
When a project team doesn’t have a designer on the team, the responsibility of design typically falls on the software developers. Many software developers don’t focus on application design and they don’t spend a lot of time researching user interface or experience patterns. What they do instead is find something that somebody already did that they think looks cool and use that with minor changes if possible. Sometimes they choose to use whole libraries of design elements on the application in order to create the same look and feel.
When they think about how the new feature will flow in the application, they will typically ask the client about what they are currently doing now and this will lead the developer to try and reflect a new design of the existing process in the application. This new design helps them develop different user stories for the feature before working on them.
The goal of the software developer usually ends up being identifying a design theme that can be reproduced throughout the application with ease so that the developer can implement new features faster. In the end, the theme of the application is largely based on a color scheme that matches the company’s colors and is conservatively used for different elements in the application.
The flow of the application normally only changes reactively when enough users have issues or the client adds a new feature that challenges the current flow. I find that developer-led design will generally run into problems in the future.
Developer-Led Design Problems
When a team operates without a UI/UX designer then eventually problems will arise. You could refer to these as User Experience Smells.
One problem that I’ve seen on projects without a designer is that when we release the application to the users, we end up having to create help documentation that provides them with instructions on how to do certain steps. This typically indicates that the application is not intuitive and is hard to use. If the user needs a whole document to help them use the application then the design is flawed.
Another problem that I’ve seen is when the application fills all the available space on the screen with as much functionality as possible while giving several different options for a user to choose from. On its face, this sounds like a great thing, but in the end, it usually leads to the user being overwhelmed with choices and being unsure what to do next on the page.
The biggest problem that I see developers experience is that we end up building features that users don’t actually use or we build a feature in a way that only supports one type of user’s viewpoint. This is usually a result of not understanding what brings value to all the different personas that will use the application and having that drive our design.
UI/UX Designer Solutions
I’m not an interface or experience designer and I’m not going to pretend that I’m an expert in the solutions they offer, but through working with them, I have found that their methods tend to offer really good solutions.
Who are the users of the application? That’s usually a simple question to answer. But not all users are the same and think the same way. Sometimes those users think differently based on their role, their age, or their background. Also, sometimes those users expect different things from the application. Designers focus on figuring out what are all those personas and what their pain points are. This helps the team focus on building an application that brings the most amount of value to everyone at the same time.
Usability testing is also one of those methods and I find that designers lean on completing usability testing to help provide a positive feedback loop with their design. Designers generally push for usability testing regularly and often on a project. They are also very good at setting up those user testing interviews to a point where they aren’t leading the user through the application. This helps with determining how intuitive the design is and whether the user needs any help knowing what to do next.
Any time that I’ve worked on a project with a designer, they have used some type of design tool to mock out the application look and feel. They use this to demo the interface and experience to the rest of the team before the developers actually start building it. This always helps provide a vision of where we're going when implementing new features. It also gives something that the team can use to break down the interface into user stories very easily.
Can these solutions above be completed without a UI/UX designer? Absolutely and a lot of project teams do these things without a designer. However, what I’ve noticed throughout my career is that any time a team tries to do these things themselves, they end up cutting corners, they end up devaluing the process, and they end up running into problems. By having a designer on the team, there is somebody dedicated to this role of focusing on the things mentioned above and they tend to be the voice of reason when it comes to making design decisions.
Projects with a Designer
The projects that I’ve been on where we have a designer on the team always seem to run very smoothly when it comes to adding new features. The following are possible experiences of a designer and software developers working together.
When a designer has had the opportunity to define the personas, mock up the interface and experience, and regularly completes usability testing, what you end up with is a design that the team can be confident in for moving forward with new features. When you have that, all of sudden, you’re reviewing the design and figuring what the next user stories are from that design very quickly.
The developers will take the design to determine what they need to do to implement it. That will drive the conversation for the developer to breakdown the design into smaller parts that can be easily defined user stories.
When the developers start working on implementing the design, the designer starts working on the next area of the application that needs to be defined. This helps make the team operate very smoothly because it keeps the design ahead of the implementation and allows the developer to put less thought into UI and UX design and focus more on just implementing the design.
I have found that the biggest issue where teams are reluctant to add a designer to their team is because they think they are doing a great job without one. I used to be in the same boat. I used to enjoy trying to create new designs of an application and put my creativity to use. However, I’ve found that when I lean on a designer whose role is dedicated to this part, then my role as a software developer is so much easier and the project is much more successful as a result.