There is an interesting phrase in computer science that I learned during my time at coding bootcamp:
Garbage in, Garbage out
This phrase was historically used to demonstrate the fact that no matter how good a computer program is, given incorrect inputs it will always return incorrect outputs.
Garbage in, Garbage out
Put another way: no matter how skilled, output will always be dependent on the quality of inputs.
But what does all of this have to do with User Experience (UX) and Software Development?
Have you ever been asked to build a terrible website, app, or feature knowing it was just never going to work out?
In these instances, it really doesn’t matter how skilled you are or how much experience programming you have; if you’re only given poorly thought out designs you just won’t be able to build an amazing app; because your output can only ever be as good as the inputs you receive.
5-star chefs don’t rely on their training alone to cook delicious food, they find the freshest ingredients in order to elevate their dishes.
The same way that a chef cannot cook a great meal without fresh ingredients, a developer can’t build successful technologies without a well thought out experience design.
The success behind major companies like Amazon, Uber, AirBnB, and Spotify is not in the quality of the technology alone, but instead in the quality of the experience they deliver to their customers.
Countless companies have failed by putting their focus on the technology that runs their business, or assumptions made by their executives, instead of putting the needs of their users first.
User Experience exists in a sweet spot where the User’s needs are satisfied, the Business’s goals are met, and the Technology creates a pleasant experience that adds value for the user.
After finishing coding bootcamp and working as an engineer for about a year, I now understood the Technology behind some of the biggest companies in the world, but not how they were able to design and build such successful websites and applications…
That’s when I decided I needed to fill in some gaps in my knowledge by learning more about User Experience Design.
Before I learned how to code or what user experience was, I built and sold small-scale WordPress websites as a freelancer.
I had some experience in graphic design and marketing, but to be blunt I had no idea what I was doing.
Looking back though it’s surprising how many websites I was able to build by asking clients a few important questions:
- What can users do on this website? (Contact, More Info, Shop)
- What does the business do and how can the website help?
- What budget/timeline is available to work on this project?
This let me understand what the business goals were, what users expected to be able to do, and how to go about choosing themes/plugins that would meet the client’s expectations.
After the quote was accepted by the client, I’d sit down with all of my notes and draw out each of the individual page templates and patterns that needed to be built using a small notepad and a pencil.
These were not impressive wireframes by any means, more like boxes and scribbles with instructions on what should go where.
But this method proved effective for me, time and time again; it gave me a solid plan of attack for building small-scale websites despite not understanding the technology past basic HTML and some CSS.
I tried to come back to this method of planning and building after learning full-stack development, but I was again reminded that my output was directly related to the quality of inputs I was given (or could create).
Garbage in, Garbage out
Unless I was able to learn how these technologies get built from end to end and improve my understanding of User Experience Design, I’d be stuck as a jr developer until I could rack up enough experience to move up a step or two.
The developers who add real value to their teams understand much more than just programming, they understand how technology is made.
I’ve spent the last year working at a digital marketing agency that specializes in technical SEO, leveling up my skills and building scaleable UX, Design, and Development processes for our growing team.
My goal is to share what I’ve learned along with resources and content each week to help you develop the skills you’ll need to build your very own digital products!
Here are some of the things I’d like to cover:
- Understanding business goals and client expectations
- How to research and document user goals based on data
- Conducting UX research, competitive analysis and reporting
- Information architecture and sitemaps
- Building user journeys, user flows, and personas using data
- Wireframing, prototyping, and interaction design fundamentals
- User interface design, visual design & branding
- Using Google analytics, search console, and other testing tools
- Setting up marketing and automation tools for growth
- Understanding A/B testing, heatmaps, conversion funnels
- SEO basics every UI designer and front-end dev should know
- Creating a User Experience Design process that works
- Launch your very own digital product from start to finish
This content is meant to help you succeed in tech so you can engineer the career you’ve always dreamed of, just like I did.
But I need your help!
Will you help me by filling out this 2 minute survey and telling me how I can best help you succeed in the next few months?
One reply on “Understanding UX Design makes you a better Software Engineer 💻 📲”
David Martin published a fantastic article about the importance of understanding UX from a software developer’s point of view.